alwaysai
Version:
The alwaysAI command-line interface (CLI)
34 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFilteredFileNames = exports.parseAaiIgnoreToArray = void 0;
const ignore_1 = require("ignore");
const fs_1 = require("fs");
const logger_1 = require("./logger");
const constants_1 = require("../constants");
const path_1 = require("path");
function createIgnoreObject(rules) {
return (0, ignore_1.default)().add(rules);
}
function parseAaiIgnoreToArray(path) {
const aaiIgnorePath = path !== null && path !== void 0 ? path : constants_1.AAI_IGNORE_FILENAME;
if (!(0, fs_1.existsSync)(aaiIgnorePath)) {
logger_1.logger.info(`${aaiIgnorePath} not found.`);
return [];
}
return (0, fs_1.readFileSync)(aaiIgnorePath, 'utf-8')
.split('\n')
.filter((line) => {
const trimmed = line.trim();
return trimmed && !trimmed.startsWith('#');
})
.map((line) => line.trim());
}
exports.parseAaiIgnoreToArray = parseAaiIgnoreToArray;
async function getFilteredFileNames(source, ignore) {
const allFileNames = await source.walk();
const aaiIgnoreRules = parseAaiIgnoreToArray();
const ignoreChecker = createIgnoreObject(aaiIgnoreRules.concat(ignore));
return allFileNames.filter((file) => !ignoreChecker.ignores((0, path_1.join)(file)));
}
exports.getFilteredFileNames = getFilteredFileNames;
//# sourceMappingURL=ignore.js.map