| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | "use strict";const taskManager = require("./managers/tasks");const patternManager = require("./managers/patterns");const async_1 = require("./providers/async");const stream_1 = require("./providers/stream");const sync_1 = require("./providers/sync");const settings_1 = require("./settings");const utils = require("./utils");async function FastGlob(source, options) {    assertPatternsInput(source);    const works = getWorks(source, async_1.default, options);    const result = await Promise.all(works);    return utils.array.flatten(result);}// https://github.com/typescript-eslint/typescript-eslint/issues/60// eslint-disable-next-line no-redeclare(function (FastGlob) {    function sync(source, options) {        assertPatternsInput(source);        const works = getWorks(source, sync_1.default, options);        return utils.array.flatten(works);    }    FastGlob.sync = sync;    function stream(source, options) {        assertPatternsInput(source);        const works = getWorks(source, stream_1.default, options);        /**         * The stream returned by the provider cannot work with an asynchronous iterator.         * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.         * This affects performance (+25%). I don't see best solution right now.         */        return utils.stream.merge(works);    }    FastGlob.stream = stream;    function generateTasks(source, options) {        assertPatternsInput(source);        const patterns = patternManager.transform([].concat(source));        const settings = new settings_1.default(options);        return taskManager.generate(patterns, settings);    }    FastGlob.generateTasks = generateTasks;    function isDynamicPattern(source, options) {        assertPatternsInput(source);        const settings = new settings_1.default(options);        return utils.pattern.isDynamicPattern(source, settings);    }    FastGlob.isDynamicPattern = isDynamicPattern;    function escapePath(source) {        assertPatternsInput(source);        return utils.path.escape(source);    }    FastGlob.escapePath = escapePath;})(FastGlob || (FastGlob = {}));function getWorks(source, _Provider, options) {    const patterns = patternManager.transform([].concat(source));    const settings = new settings_1.default(options);    const tasks = taskManager.generate(patterns, settings);    const provider = new _Provider(settings);    return tasks.map(provider.read, provider);}function assertPatternsInput(input) {    const source = [].concat(input);    const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));    if (!isValidSource) {        throw new TypeError('Patterns must be a string (non empty) or an array of strings');    }}module.exports = FastGlob;
 |