| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- '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);
 
-     });
 
-   })));
 
- }
 
 
  |