UNPKG

12.6 kBJavaScriptView Raw
1"use strict";
2/**
3 * @license
4 * Copyright Google LLC All Rights Reserved.
5 *
6 * Use of this source code is governed by an MIT-style license that can be
7 * found in the LICENSE file at https://angular.io/license
8 */
9var __importDefault = (this && this.__importDefault) || function (mod) {
10 return (mod && mod.__esModule) ? mod : { "default": mod };
11};
12Object.defineProperty(exports, "__esModule", { value: true });
13exports.runWebpack = void 0;
14const architect_1 = require("@angular-devkit/architect");
15const path_1 = require("path");
16const rxjs_1 = require("rxjs");
17const operators_1 = require("rxjs/operators");
18const webpack_1 = __importDefault(require("webpack"));
19const utils_1 = require("../utils");
20function runWebpack(config, context, options = {}) {
21 const { logging: log = (stats, config) => context.logger.info(stats.toString(config.stats)), shouldProvideStats = true, } = options;
22 const createWebpack = (c) => {
23 if (options.webpackFactory) {
24 const result = options.webpackFactory(c);
25 if ((0, rxjs_1.isObservable)(result)) {
26 return result;
27 }
28 else {
29 return (0, rxjs_1.of)(result);
30 }
31 }
32 else {
33 return (0, rxjs_1.of)((0, webpack_1.default)(c));
34 }
35 };
36 return createWebpack({ ...config, watch: false }).pipe((0, operators_1.switchMap)((webpackCompiler) => new rxjs_1.Observable((obs) => {
37 const callback = (err, stats) => {
38 if (err) {
39 return obs.error(err);
40 }
41 if (!stats) {
42 return;
43 }
44 // Log stats.
45 log(stats, config);
46 const statsOptions = typeof config.stats === 'boolean' ? undefined : config.stats;
47 const result = {
48 success: !stats.hasErrors(),
49 webpackStats: shouldProvideStats ? stats.toJson(statsOptions) : undefined,
50 emittedFiles: (0, utils_1.getEmittedFiles)(stats.compilation),
51 outputPath: stats.compilation.outputOptions.path,
52 };
53 if (config.watch) {
54 obs.next(result);
55 }
56 else {
57 webpackCompiler.close(() => {
58 obs.next(result);
59 obs.complete();
60 });
61 }
62 };
63 try {
64 if (config.watch) {
65 const watchOptions = config.watchOptions || {};
66 const watching = webpackCompiler.watch(watchOptions, callback);
67 // Teardown logic. Close the watcher when unsubscribed from.
68 return () => {
69 watching.close(() => { });
70 webpackCompiler.close(() => { });
71 };
72 }
73 else {
74 webpackCompiler.run(callback);
75 }
76 }
77 catch (err) {
78 if (err) {
79 context.logger.error(`\nAn error occurred during the build:\n${err instanceof Error ? err.stack : err}`);
80 }
81 throw err;
82 }
83 })));
84}
85exports.runWebpack = runWebpack;
86exports.default = (0, architect_1.createBuilder)((options, context) => {
87 const configPath = (0, path_1.resolve)(context.workspaceRoot, options.webpackConfig);
88 return (0, rxjs_1.from)((0, utils_1.getWebpackConfig)(configPath)).pipe((0, operators_1.switchMap)((config) => runWebpack(config, context)));
89});
90//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF93ZWJwYWNrL3NyYy93ZWJwYWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7OztBQUVILHlEQUF5RjtBQUN6RiwrQkFBOEM7QUFDOUMsK0JBQTBEO0FBQzFELDhDQUEyQztBQUMzQyxzREFBOEI7QUFDOUIsb0NBQTJFO0FBa0IzRSxTQUFnQixVQUFVLENBQ3hCLE1BQTZCLEVBQzdCLE9BQXVCLEVBQ3ZCLFVBSUksRUFBRTtJQUVOLE1BQU0sRUFDSixPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDbkYsa0JBQWtCLEdBQUcsSUFBSSxHQUMxQixHQUFHLE9BQU8sQ0FBQztJQUNaLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBd0IsRUFBRSxFQUFFO1FBQ2pELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksSUFBQSxtQkFBWSxFQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QixPQUFPLE1BQU0sQ0FBQzthQUNmO2lCQUFNO2dCQUNMLE9BQU8sSUFBQSxTQUFFLEVBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkI7U0FDRjthQUFNO1lBQ0wsT0FBTyxJQUFBLFNBQUUsRUFBQyxJQUFBLGlCQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUMsQ0FBQztJQUVGLE9BQU8sYUFBYSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxF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RUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQsIEJ1aWxkZXJPdXRwdXQsIGNyZWF0ZUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IHJlc29sdmUgYXMgcGF0aFJlc29sdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgRW1pdHRlZEZpbGVzLCBnZXRFbWl0dGVkRmlsZXMsIGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgUmVhbFdlYnBhY2tCdWlsZGVyU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgdHlwZSBXZWJwYWNrQnVpbGRlclNjaGVtYSA9IFJlYWxXZWJwYWNrQnVpbGRlclNjaGVtYTtcblxuZXhwb3J0IGludGVyZmFjZSBXZWJwYWNrTG9nZ2luZ0NhbGxiYWNrIHtcbiAgKHN0YXRzOiB3ZWJwYWNrLlN0YXRzLCBjb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbik6IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFdlYnBhY2tGYWN0b3J5IHtcbiAgKGNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uKTogT2JzZXJ2YWJsZTx3ZWJwYWNrLkNvbXBpbGVyPiB8IHdlYnBhY2suQ29tcGlsZXI7XG59XG5cbmV4cG9ydCB0eXBlIEJ1aWxkUmVzdWx0ID0gQnVpbGRlck91dHB1dCAmIHtcbiAgZW1pdHRlZEZpbGVzPzogRW1pdHRlZEZpbGVzW107XG4gIHdlYnBhY2tTdGF0cz86IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbjtcbiAgb3V0cHV0UGF0aDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bldlYnBhY2soXG4gIGNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgb3B0aW9uczoge1xuICAgIGxvZ2dpbmc/OiBXZWJwYWNrTG9nZ2luZ0NhbGxiYWNrO1xuICAgIHdlYnBhY2tGYWN0b3J5PzogV2VicGFja0ZhY3Rvcnk7XG4gICAgc2hvdWxkUHJvdmlkZVN0YXRzPzogYm9vbGVhbjtcbiAgfSA9IHt9LFxuKTogT2JzZXJ2YWJsZTxCdWlsZFJlc3VsdD4ge1xuICBjb25zdCB7XG4gICAgbG9nZ2luZzogbG9nID0gKHN0YXRzLCBjb25maWcpID0+IGNvbnRleHQubG9nZ2VyLmluZm8oc3RhdHMudG9TdHJpbmcoY29uZmlnLnN0YXRzKSksXG4gICAgc2hvdWxkUHJvdmlkZVN0YXRzID0gdHJ1ZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNyZWF0ZVdlYnBhY2sgPSAoYzogd2VicGFjay5Db25maWd1cmF0aW9uKSA9PiB7XG4gICAgaWYgKG9wdGlvbnMud2VicGFja0ZhY3RvcnkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG9wdGlvbnMud2VicGFja0ZhY3RvcnkoYyk7XG4gICAgICBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2Yod2VicGFjayhjKSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBjcmVhdGVXZWJwYWNrKHsgLi4uY29uZmlnLCB3YXRjaDogZmFsc2UgfSkucGlwZShcbiAgICBzd2l0Y2hNYXAoXG4gICAgICAod2VicGFja0NvbXBpbGVyKSA9PlxuICAgICAgICBuZXcgT2JzZXJ2YWJsZTxCdWlsZFJlc3VsdD4oKG9icykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKGVycj86IEVycm9yIHwgbnVsbCwgc3RhdHM/OiB3ZWJwYWNrLlN0YXRzKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvYnMuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFzdGF0cykge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIExvZyBzdGF0cy5cbiAgICAgICAgICAgIGxvZyhzdGF0cywgY29uZmlnKTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHNPcHRpb25zID0gdHlwZW9mIGNvbmZpZy5zdGF0cyA9PT0gJ2Jvb2xlYW4nID8gdW5kZWZpbmVkIDogY29uZmlnLnN0YXRzO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgICAgICBzdWNjZXNzOiAhc3RhdHMuaGFzRXJyb3JzKCksXG4gICAgICAgICAgICAgIHdlYnBhY2tTdGF0czogc2hvdWxkUHJvdmlkZVN0YXRzID8gc3RhdHMudG9Kc29uKHN0YXRzT3B0aW9ucykgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGVtaXR0ZWRGaWxlczogZ2V0RW1pdHRlZEZpbGVzKHN0YXRzLmNvbXBpbGF0aW9uKSxcbiAgICAgICAgICAgICAgb3V0cHV0UGF0aDogc3RhdHMuY29tcGlsYXRpb24ub3V0cHV0T3B0aW9ucy5wYXRoLFxuICAgICAgICAgICAgfSBhcyB1bmtub3duIGFzIEJ1aWxkUmVzdWx0O1xuXG4gICAgICAgICAgICBpZiAoY29uZmlnLndhdGNoKSB7XG4gICAgICAgICAgICAgIG9icy5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3ZWJwYWNrQ29tcGlsZXIuY2xvc2UoKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9icy5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgb2JzLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGNvbmZpZy53YXRjaCkge1xuICAgICAgICAgICAgICBjb25zdCB3YXRjaE9wdGlvbnMgPSBjb25maWcud2F0Y2hPcHRpb25zIHx8IHt9O1xuICAgICAgICAgICAgICBjb25zdCB3YXRjaGluZyA9IHdlYnBhY2tDb21waWxlci53YXRjaCh3YXRjaE9wdGlvbnMsIGNhbGxiYWNrKTtcblxuICAgICAgICAgICAgICAvLyBUZWFyZG93biBsb2dpYy4gQ2xvc2UgdGhlIHdhdGNoZXIgd2hlbiB1bnN1YnNjcmliZWQgZnJvbS5cbiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB3YXRjaGluZy5jbG9zZSgoKSA9PiB7fSk7XG4gICAgICAgICAgICAgICAgd2VicGFja0NvbXBpbGVyLmNsb3NlKCgpID0+IHt9KTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHdlYnBhY2tDb21waWxlci5ydW4oY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICBgXFxuQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBidWlsZDpcXG4ke2VyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLnN0YWNrIDogZXJyfWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICApLFxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVCdWlsZGVyPFdlYnBhY2tCdWlsZGVyU2NoZW1hPigob3B0aW9ucywgY29udGV4dCkgPT4ge1xuICBjb25zdCBjb25maWdQYXRoID0gcGF0aFJlc29sdmUoY29udGV4dC53b3Jrc3BhY2VSb290LCBvcHRpb25zLndlYnBhY2tDb25maWcpO1xuXG4gIHJldHVybiBmcm9tKGdldFdlYnBhY2tDb25maWcoY29uZmlnUGF0aCkpLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb25maWcpID0+IHJ1bldlYnBhY2soY29uZmlnLCBjb250ZXh0KSksXG4gICk7XG59KTtcbiJdfQ==
\No newline at end of file