.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / @mrmlnc / readdir-enhanced / lib / async / index.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/@mrmlnc/readdir-enhanced/lib/async/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/@mrmlnc/readdir-enhanced/lib/async/index.js
new file mode 100644 (file)
index 0000000..677e0b6
--- /dev/null
@@ -0,0 +1,48 @@
+'use strict';
+
+module.exports = readdirAsync;
+
+const maybe = require('call-me-maybe');
+const DirectoryReader = require('../directory-reader');
+
+let asyncFacade = {
+  fs: require('fs'),
+  forEach: require('./for-each'),
+  async: true
+};
+
+/**
+ * Returns the buffered output from an asynchronous {@link DirectoryReader},
+ * via an error-first callback or a {@link Promise}.
+ *
+ * @param {string} dir
+ * @param {object} [options]
+ * @param {function} [callback]
+ * @param {object} internalOptions
+ */
+function readdirAsync (dir, options, callback, internalOptions) {
+  if (typeof options === 'function') {
+    callback = options;
+    options = undefined;
+  }
+
+  return maybe(callback, new Promise(((resolve, reject) => {
+    let results = [];
+
+    internalOptions.facade = asyncFacade;
+
+    let reader = new DirectoryReader(dir, options, internalOptions);
+    let stream = reader.stream;
+
+    stream.on('error', err => {
+      reject(err);
+      stream.pause();
+    });
+    stream.on('data', result => {
+      results.push(result);
+    });
+    stream.on('end', () => {
+      resolve(results);
+    });
+  })));
+}