@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>
41 lines • 2.19 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.runDevServer = runDevServer;
const architect_1 = require("@angular-devkit/architect");
const dev_server_1 = require("@angular-devkit/build-angular/src/builders/dev-server");
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const build_ng_doc_1 = require("../engine/build-ng-doc");
const transform_index_html_1 = require("../engine/transform-index-html");
const create_builder_context_1 = require("../helpers/create-builder-context");
const patch_builder_context_1 = require("./patch-builder-context");
/**
* Attach NgDocBuilder and run DevServer
* @param options Builder configuration
* @param context Builder context
*/
function runDevServer(options, context) {
const contextWithPatch = (0, patch_builder_context_1.patchBuilderContext)(context, {
mock: ['@ng-doc/builder:application', './dist/libs/builder:application'],
with: '@angular-devkit/build-angular:application',
optionsTransform: (options) => {
delete options.ngDoc;
},
});
const target = options.buildTarget && (0, architect_1.targetFromTargetString)(options.buildTarget);
const options$ = target
? (0, rxjs_1.from)(context.getTargetOptions(target))
: (0, rxjs_1.of)(options);
return options$.pipe((0, operators_1.switchMap)((targetOptions) => {
const builderContext = (0, create_builder_context_1.createBuilderContext)(targetOptions, context, options.ngDoc?.config);
const buildNgDoc$ = (0, build_ng_doc_1.buildNgDoc)(builderContext).pipe((0, operators_1.shareReplay)(1));
return buildNgDoc$.pipe((0, operators_1.first)(), (0, operators_1.switchMap)(() => (0, rxjs_1.combineLatest)([
buildNgDoc$,
(0, dev_server_1.executeDevServer)(options, contextWithPatch, { indexHtml: transform_index_html_1.transformIndexHtml }),
]).pipe((0, operators_1.map)(([, devServerOutput]) => devServerOutput))));
}));
}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
exports.default = (0, architect_1.createBuilder)(runDevServer);
//# sourceMappingURL=index.js.map
;