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