@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
JavaScript
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
;