| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });const fsScandir = require("@nodelib/fs.scandir");const common = require("./common");const reader_1 = require("./reader");class SyncReader extends reader_1.default {    constructor() {        super(...arguments);        this._scandir = fsScandir.scandirSync;        this._storage = [];        this._queue = new Set();    }    read() {        this._pushToQueue(this._root, this._settings.basePath);        this._handleQueue();        return this._storage;    }    _pushToQueue(directory, base) {        this._queue.add({ directory, base });    }    _handleQueue() {        for (const item of this._queue.values()) {            this._handleDirectory(item.directory, item.base);        }    }    _handleDirectory(directory, base) {        try {            const entries = this._scandir(directory, this._settings.fsScandirSettings);            for (const entry of entries) {                this._handleEntry(entry, base);            }        }        catch (error) {            this._handleError(error);        }    }    _handleError(error) {        if (!common.isFatalError(this._settings, error)) {            return;        }        throw error;    }    _handleEntry(entry, base) {        const fullpath = entry.path;        if (base !== undefined) {            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);        }        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {            this._pushToStorage(entry);        }        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);        }    }    _pushToStorage(entry) {        this._storage.push(entry);    }}exports.default = SyncReader;
 |