UNPKG

@selfage/cli

Version:

Basic CLI to buid, run and format TypeScript code.

46 lines 5.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.clean = clean; exports.cleanDir = cleanDir; const fs = require("fs"); const path = require("path"); const ignore_1 = __importDefault(require("ignore")); async function clean() { await cleanDir("."); } async function cleanDir(dir) { let [files, gitignore] = await Promise.all([ findFilesRecursively(dir), fs.promises.readFile(path.join(dir, ".gitignore")), ]); let ignorePatterns = (0, ignore_1.default)().add(gitignore .toString() .split("\n") .map((pattern) => pattern.trim())); let unwantedFiles = files.filter((file) => ignorePatterns.ignores(file)); let promisesToUnlink = unwantedFiles.map((file) => fs.promises.unlink(file)); await Promise.all(promisesToUnlink); } async function findFilesRecursively(dir) { let items = await fs.promises.readdir(dir, { withFileTypes: true }); let files = []; let promisesOfFiles = items.map(async (item) => { let fullPath = path.join(dir, item.name); if (item.isDirectory()) { if (item.name === "node_modules") { return; } let filesFromSubDirectory = await findFilesRecursively(fullPath); files.push(...filesFromSubDirectory); } else { files.push(fullPath); } }); await Promise.all(promisesOfFiles); return files; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsZWFuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxzQkFFQztBQUVELDRCQWNDO0FBdEJELHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFDOUIsb0RBQTRCO0FBRXJCLEtBQUssVUFBVSxLQUFLO0lBQ3pCLE1BQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFTSxLQUFLLFVBQVUsUUFBUSxDQUFDLEdBQVc7SUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDekMsb0JBQW9CLENBQUMsR0FBRyxDQUFDO1FBQ3pCLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ25ELENBQUMsQ0FBQztJQUNILElBQUksY0FBYyxHQUFHLElBQUEsZ0JBQU0sR0FBRSxDQUFDLEdBQUcsQ0FDL0IsU0FBUztTQUNOLFFBQVEsRUFBRTtTQUNWLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDWCxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUNwQyxDQUFDO0lBQ0YsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLElBQUksZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsS0FBSyxVQUFVLG9CQUFvQixDQUFDLEdBQVc7SUFDN0MsSUFBSSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRSxJQUFJLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFpQixFQUFFO1FBQzVELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztnQkFDakMsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLHFCQUFxQixHQUFHLE1BQU0sb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgPSByZXF1aXJlKFwiZnNcIik7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuaW1wb3J0IGlnbm9yZSBmcm9tIFwiaWdub3JlXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgY2xlYW5EaXIoXCIuXCIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xlYW5EaXIoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IFtmaWxlcywgZ2l0aWdub3JlXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBmaW5kRmlsZXNSZWN1cnNpdmVseShkaXIpLFxuICAgIGZzLnByb21pc2VzLnJlYWRGaWxlKHBhdGguam9pbihkaXIsIFwiLmdpdGlnbm9yZVwiKSksXG4gIF0pO1xuICBsZXQgaWdub3JlUGF0dGVybnMgPSBpZ25vcmUoKS5hZGQoXG4gICAgZ2l0aWdub3JlXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAubWFwKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRyaW0oKSlcbiAgKTtcbiAgbGV0IHVud2FudGVkRmlsZXMgPSBmaWxlcy5maWx0ZXIoKGZpbGUpID0+IGlnbm9yZVBhdHRlcm5zLmlnbm9yZXMoZmlsZSkpO1xuICBsZXQgcHJvbWlzZXNUb1VubGluayA9IHVud2FudGVkRmlsZXMubWFwKChmaWxlKSA9PiBmcy5wcm9taXNlcy51bmxpbmsoZmlsZSkpO1xuICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlc1RvVW5saW5rKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZEZpbGVzUmVjdXJzaXZlbHkoZGlyOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PHN0cmluZz4+IHtcbiAgbGV0IGl0ZW1zID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZGRpcihkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgbGV0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgcHJvbWlzZXNPZkZpbGVzID0gaXRlbXMubWFwKGFzeW5jIChpdGVtKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgbGV0IGZ1bGxQYXRoID0gcGF0aC5qb2luKGRpciwgaXRlbS5uYW1lKTtcbiAgICBpZiAoaXRlbS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBpZiAoaXRlbS5uYW1lID09PSBcIm5vZGVfbW9kdWxlc1wiKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBmaWxlc0Zyb21TdWJEaXJlY3RvcnkgPSBhd2FpdCBmaW5kRmlsZXNSZWN1cnNpdmVseShmdWxsUGF0aCk7XG4gICAgICBmaWxlcy5wdXNoKC4uLmZpbGVzRnJvbVN1YkRpcmVjdG9yeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzLnB1c2goZnVsbFBhdGgpO1xuICAgIH1cbiAgfSk7XG4gIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzT2ZGaWxlcyk7XG4gIHJldHVybiBmaWxlcztcbn1cbiJdfQ==