44 lines
1.3 KiB
JavaScript
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;
|