UNPKG

@angular-builders/dev-server

Version:

Dev server generic builder for Angular build facade. Allows to run custom builder in serve target

39 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const build_angular_1 = require("@angular-devkit/build-angular"); const operators_1 = require("rxjs/operators"); const webpack_config_retriever_1 = require("../webpack-config-retriever"); const lodash_1 = require("lodash"); class GenericDevServerBuilder extends build_angular_1.DevServerBuilder { constructor(context) { super(context); this.buildServerConfig = (devServerConfig) => (root, options, browserOptions) => { const angularDevServerConfig = build_angular_1.DevServerBuilder.prototype['_buildServerConfig'].call(this, root, options, browserOptions); if (devServerConfig) { lodash_1.merge(angularDevServerConfig, devServerConfig); } return angularDevServerConfig; }; } run(builderConfig) { const architect = this.context.architect; const [project, target, configuration] = builderConfig.options.browserTarget.split(':'); const targetSpec = { project, target, configuration }; const targetConfig = architect.getBuilderConfiguration(targetSpec); // Before we run the dev server grab the target builder so that we have it synchronously // when we're ready to build the webpack config. return architect.getBuilderDescription(targetConfig).pipe(operators_1.tap((targetDescription) => this.targetBuilder = architect.getBuilder(targetDescription, this.context)), operators_1.switchMap(() => super.run(builderConfig))); } buildWebpackConfig(root, projectRoot, host, browserOptions) { // Check if we can use the generic webpack builder if so lets use it, otherwise we'll fall back to the DevServerBuilder's // implementation const webpackConfig = webpack_config_retriever_1.WebpackConfigRetriever.getTargetBuilderWebpackConfig(this.targetBuilder, root, projectRoot, host, browserOptions) || super.buildWebpackConfig(root, projectRoot, host, browserOptions); //Hack to override private base method _buildServerConfig this['_buildServerConfig'] = this.buildServerConfig(webpackConfig['devServer']); return webpackConfig; } } exports.GenericDevServerBuilder = GenericDevServerBuilder; exports.default = GenericDevServerBuilder; //# sourceMappingURL=index.js.map