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>

71 lines 3.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GUIDE_BUILDER_TAG = exports.GUIDE_TEMPLATE_BUILDER_TAG = void 0; exports.guideTemplateBuilder = guideTemplateBuilder; const tslib_1 = require("tslib"); const builder_1 = require("@ng-doc/builder"); const path_1 = tslib_1.__importDefault(require("path")); const rxjs_1 = require("rxjs"); const helpers_1 = require("../../../helpers"); const core_1 = require("../../core"); const helpers_2 = require("../helpers"); const shared_1 = require("../shared"); const build_guide_keywords_1 = require("./keywords/build-guide-keywords"); exports.GUIDE_TEMPLATE_BUILDER_TAG = 'GuideTemplate'; exports.GUIDE_BUILDER_TAG = 'Guide'; /** * * @param config */ function guideTemplateBuilder(config) { const { context, mdFile, pageMetadata } = config; const mdPath = path_1.default.join(pageMetadata.dir, mdFile); const mdDir = path_1.default.dirname(mdPath); return (0, core_1.createBuilder)([(0, core_1.createMainTrigger)((0, core_1.watchFile)(mdPath, 'update'))], () => { const metadata = (0, helpers_2.createMarkdownMetadata)(pageMetadata, mdFile); const cacheStrategy = { id: `${metadata.path}#Template`, action: 'skip', files: () => [metadata.outPath], }; return (0, shared_1.pageComponentBuilder)((postProcess) => (0, core_1.factory)(exports.GUIDE_TEMPLATE_BUILDER_TAG, [ (0, shared_1.contentBuilder)({ tag: exports.GUIDE_BUILDER_TAG, context, mainFilePath: mdPath, cacheId: `${mdPath}#Guide`, metadata, getKeywords: (0, build_guide_keywords_1.buildGuideKeywords)(metadata), getContent: async (dependencies) => { const { content } = (0, helpers_2.markdownFrontMatter)(metadata.path); const mdContent = (0, builder_1.renderTemplateString)(content, { scope: metadata.dir, context: { NgDocPage: metadata.parent.entry, NgDocActions: new builder_1.NgDocActions(metadata, dependencies), NgDocApi: new builder_1.NgDocApi(metadata, dependencies), JSDoc: new builder_1.JSDoc(metadata, dependencies), }, dependencies, filters: false, }); return (0, helpers_1.markdownToHtml)(mdContent, mdDir, dependencies.add.bind(dependencies)); }, }), ], async (output) => { return { metadata, output: postProcess(output), }; }, cacheStrategy), { context, metadata, pageType: 'guide', entryPath: pageMetadata.path, entryHasImports: !!pageMetadata.objectExpression().getProperty('imports'), demoAssetsPath: path_1.default.join(pageMetadata.outDir, 'demo-assets.ts'), playgroundsPath: path_1.default.join(pageMetadata.outDir, 'playgrounds.ts'), }); }).pipe((0, rxjs_1.takeUntil)((0, core_1.watchFile)(mdPath, 'delete'))); } //# sourceMappingURL=guide-template.builder.js.map