2025-05-12 05:38:44 +09:00

44 lines
1.3 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const promise_1 = __importDefault(require("../utils/promise"));
const ignoreFiles_1 = __importDefault(require("../constants/ignoreFiles"));
const DEFAULT_IGNORES = [
// Skip Git stuff
".git/",
// Skip OS X meta data
".DS_Store",
// Skip stuff installed by plugins
"node_modules",
// Skip book outputs
"_book",
// Ignore files in the templates folder
"_layouts"
];
/**
Parse ignore files
@param {Book}
@return {Book}
*/
function parseIgnore(book) {
if (book.isLanguageBook()) {
return promise_1.default.reject(new Error("Ignore files could be parsed for language books"));
}
const fs = book.getFS();
let ignore = book.getIgnore();
ignore = ignore.add(DEFAULT_IGNORES);
return promise_1.default.serie(ignoreFiles_1.default, (filename) => {
return fs.readAsString(filename).then((content) => {
ignore = ignore.add(content.toString().split(/\r?\n/));
}, (err) => {
return (0, promise_1.default)();
});
}).then(() => {
return book.setIgnore(ignore);
});
}
exports.default = parseIgnore;