GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: //usr/local/lib/node_modules/firebase-tools/lib/fsAsync.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.readdirRecursive = void 0;
const path_1 = require("path");
const fs_extra_1 = require("fs-extra");
const _ = require("lodash");
const minimatch = require("minimatch");
async function readdirRecursiveHelper(options) {
    const dirContents = (0, fs_extra_1.readdirSync)(options.path);
    const fullPaths = dirContents.map((n) => (0, path_1.join)(options.path, n));
    const filteredPaths = fullPaths.filter((p) => !options.filter(p));
    const filePromises = [];
    for (const p of filteredPaths) {
        const fstat = (0, fs_extra_1.statSync)(p);
        if (fstat.isFile()) {
            filePromises.push(Promise.resolve({ name: p, mode: fstat.mode }));
        }
        if (!fstat.isDirectory()) {
            continue;
        }
        filePromises.push(readdirRecursiveHelper({ path: p, filter: options.filter }));
    }
    const files = await Promise.all(filePromises);
    let flatFiles = _.flattenDeep(files);
    flatFiles = flatFiles.filter((f) => f !== null);
    return flatFiles;
}
async function readdirRecursive(options) {
    const mmopts = { matchBase: true, dot: true };
    const rules = (options.ignore || []).map((glob) => {
        return (p) => minimatch(p, glob, mmopts);
    });
    const filter = (t) => {
        return rules.some((rule) => {
            return rule(t);
        });
    };
    return readdirRecursiveHelper({
        path: options.path,
        filter: filter,
    });
}
exports.readdirRecursive = readdirRecursive;