"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const parseStructureFile_1 = __importDefault(require("./parseStructureFile")); const summary_1 = __importDefault(require("../models/summary")); const modifiers_1 = __importDefault(require("../modifiers")); const SummaryModifier = modifiers_1.default.Summary; /** Parse summary in a book, the summary can only be parsed if the readme as be detected before. @param {Book} book @return {Promise} */ function parseSummary(book) { const readme = book.getReadme(); const logger = book.getLogger(); const readmeFile = readme.getFile(); return (0, parseStructureFile_1.default)(book, "summary").spread((file, result) => { let summary; if (!file) { logger.warn.ln("no summary file in this book"); summary = new summary_1.default(); } else { logger.debug.ln("summary file found at", file.getPath()); summary = summary_1.default.createFromParts(file, result.parts); } // Insert readme as first entry if not in SUMMARY.md const readmeArticle = summary.getByPath(readmeFile.getPath()); if (readmeFile.exists() && !readmeArticle) { summary = SummaryModifier.unshiftArticle(summary, { title: "Introduction", ref: readmeFile.getPath() }); } // Set new summary return book.setSummary(summary); }); } exports.default = parseSummary;