UNPKG

@ng-doc/builder

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

64 lines 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pageComponentBuilder = pageComponentBuilder; const tslib_1 = require("tslib"); const core_1 = require("@ng-doc/core"); const path_1 = tslib_1.__importDefault(require("path")); const rxjs_1 = require("rxjs"); const helpers_1 = require("../../../helpers"); const build_indexes_1 = require("../../../helpers/build-indexes"); const core_2 = require("../../core"); const nunjucks_1 = require("../../nunjucks"); /** * * @param builder * @param config */ function pageComponentBuilder(builder, config) { const { context, metadata, pageType, entryPath, entryHasImports, demoAssetsPath, playgroundsPath, lineNumber, } = config; let removeIndexes = () => { }; return builder((html) => { removeIndexes(); // Replace keywords in the template at the end of the build process return async () => { try { const content = await helpers_1.UTILS.replaceKeywords(html, { getKeyword: core_2.keywordsStore.get.bind(core_2.keywordsStore), }); const editSourceFileUrl = context.config.repoConfig && (0, helpers_1.editFileInRepoUrl)(context.config.repoConfig, path_1.default.relative(context.context.workspaceRoot, metadata.path), metadata.route, lineNumber); const viewSourceFileUrl = context.config.repoConfig && (0, helpers_1.viewFileInRepoUrl)(context.config.repoConfig, path_1.default.relative(context.context.workspaceRoot, metadata.path), lineNumber); const indexes = await (0, build_indexes_1.buildIndexes)({ content, title: metadata.title, breadcrumbs: metadata.breadcrumbs(), pageType, route: metadata.absoluteRoute(), }); removeIndexes = core_2.IndexStore.add(...indexes); return { filePath: metadata.outPath, content: (0, nunjucks_1.renderTemplate)('./page.ts.nunj', { context: { id: (0, core_1.uid)(), content, metadata, editSourceFileUrl, viewSourceFileUrl, pageType, entryPath, entryHasImports, demoAssetsPath, playgroundsPath, }, }), }; } catch (cause) { throw new Error(`Failed to build page: file:///${metadata.path}`, { cause }); } }; }).pipe((0, rxjs_1.finalize)(() => removeIndexes)); } //# sourceMappingURL=page-component.builder.js.map