2 Object.defineProperty(exports, "__esModule", { value: true });
\r
3 var optionsManager = require("./managers/options");
\r
4 var taskManager = require("./managers/tasks");
\r
5 var reader_async_1 = require("./providers/reader-async");
\r
6 var reader_stream_1 = require("./providers/reader-stream");
\r
7 var reader_sync_1 = require("./providers/reader-sync");
\r
8 var arrayUtils = require("./utils/array");
\r
9 var streamUtils = require("./utils/stream");
\r
13 function sync(source, opts) {
\r
14 assertPatternsInput(source);
\r
15 var works = getWorks(source, reader_sync_1.default, opts);
\r
16 return arrayUtils.flatten(works);
\r
18 exports.sync = sync;
\r
22 function async(source, opts) {
\r
24 assertPatternsInput(source);
\r
27 return Promise.reject(error);
\r
29 var works = getWorks(source, reader_async_1.default, opts);
\r
30 return Promise.all(works).then(arrayUtils.flatten);
\r
32 exports.async = async;
\r
36 function stream(source, opts) {
\r
37 assertPatternsInput(source);
\r
38 var works = getWorks(source, reader_stream_1.default, opts);
\r
39 return streamUtils.merge(works);
\r
41 exports.stream = stream;
\r
43 * Return a set of tasks based on provided patterns.
\r
45 function generateTasks(source, opts) {
\r
46 assertPatternsInput(source);
\r
47 var patterns = [].concat(source);
\r
48 var options = optionsManager.prepare(opts);
\r
49 return taskManager.generate(patterns, options);
\r
51 exports.generateTasks = generateTasks;
\r
53 * Returns a set of works based on provided tasks and class of the reader.
\r
55 function getWorks(source, _Reader, opts) {
\r
56 var patterns = [].concat(source);
\r
57 var options = optionsManager.prepare(opts);
\r
58 var tasks = taskManager.generate(patterns, options);
\r
59 var reader = new _Reader(options);
\r
60 return tasks.map(reader.read, reader);
\r
62 function assertPatternsInput(source) {
\r
63 if ([].concat(source).every(isString)) {
\r
66 throw new TypeError('Patterns must be a string or an array of strings');
\r
68 function isString(source) {
\r
69 /* tslint:disable-next-line strict-type-predicates */
\r
70 return typeof source === 'string';
\r