UNPKG

vils

Version:

Recursively outputs file paths and contents in various formats

39 lines (38 loc) 1.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.walk = walk; const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); async function walk(config) { const results = []; let hadError = false; async function recurse(dir) { const entries = await fs_extra_1.default.readdir(dir, { withFileTypes: true }); for (const entry of entries) { const full = path_1.default.join(dir, entry.name); const rel = path_1.default.relative(config.source, full) || entry.name; if (config.ignore && config.ignore.some(pattern => typeof pattern === 'string' ? rel.startsWith(pattern) : pattern.test(rel))) continue; if (entry.isDirectory()) { await recurse(full); } else if (entry.isFile()) { try { const data = await fs_extra_1.default.readFile(full, 'utf-8'); results.push({ relativePath: rel, content: data }); } catch (err) { hadError = true; results.push({ relativePath: rel, content: { error: err.message } }); } } } } await recurse(path_1.default.resolve(config.source)); if (hadError) process.exitCode = 1; return results; }