@storybook/angular 6.5.0-alpha.29 → 6.5.0-alpha.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/ts3.9/builders/build-storybook/index.js +33 -84
  2. package/dist/ts3.9/builders/start-storybook/index.js +40 -91
  3. package/dist/ts3.9/builders/utils/build-standalone-errors-handler.js +13 -11
  4. package/dist/ts3.9/builders/utils/run-compodoc.js +19 -25
  5. package/dist/ts3.9/client/preview/angular/app.token.js +1 -1
  6. package/dist/ts3.9/client/preview/angular/components/app.component.js +55 -59
  7. package/dist/ts3.9/client/preview/angular/helpers.js +66 -80
  8. package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.js +77 -125
  9. package/dist/ts3.9/client/preview/angular-beta/CanvasRenderer.js +18 -81
  10. package/dist/ts3.9/client/preview/angular-beta/ComputesTemplateFromComponent.js +53 -73
  11. package/dist/ts3.9/client/preview/angular-beta/DocsRenderer.js +41 -127
  12. package/dist/ts3.9/client/preview/angular-beta/RendererFactory.js +30 -66
  13. package/dist/ts3.9/client/preview/angular-beta/StorybookModule.js +42 -46
  14. package/dist/ts3.9/client/preview/angular-beta/StorybookProvider.js +15 -17
  15. package/dist/ts3.9/client/preview/angular-beta/StorybookWrapperComponent.js +63 -92
  16. package/dist/ts3.9/client/preview/angular-beta/utils/NgComponentAnalyzer.js +29 -49
  17. package/dist/ts3.9/client/preview/angular-beta/utils/NgModulesAnalyzer.js +10 -10
  18. package/dist/ts3.9/client/preview/decorateStory.js +18 -40
  19. package/dist/ts3.9/client/preview/decorators.js +27 -46
  20. package/dist/ts3.9/client/preview/globals.js +2 -2
  21. package/dist/ts3.9/client/preview/index.js +8 -21
  22. package/dist/ts3.9/client/preview/render.js +17 -56
  23. package/dist/ts3.9/demo/button.component.js +31 -22
  24. package/dist/ts3.9/demo/welcome.component.js +85 -18
  25. package/dist/ts3.9/server/angular-cli-webpack-12.2.x.js +38 -81
  26. package/dist/ts3.9/server/angular-cli-webpack-13.x.x.js +42 -85
  27. package/dist/ts3.9/server/angular-cli-webpack-older.js +77 -123
  28. package/dist/ts3.9/server/angular-devkit-build-webpack.js +72 -133
  29. package/dist/ts3.9/server/angular-read-workspace.js +44 -78
  30. package/dist/ts3.9/server/build.js +10 -47
  31. package/dist/ts3.9/server/create-fork-ts-checker-plugin.js +2 -2
  32. package/dist/ts3.9/server/framework-preset-angular-cli.js +111 -186
  33. package/dist/ts3.9/server/framework-preset-angular-ivy.js +35 -92
  34. package/dist/ts3.9/server/framework-preset-angular.js +62 -115
  35. package/dist/ts3.9/server/index.js +2 -2
  36. package/dist/ts3.9/server/ngx-template-loader/index.js +15 -15
  37. package/dist/ts3.9/server/options.js +1 -1
  38. package/dist/ts3.9/server/preset.js +4 -13
  39. package/dist/ts3.9/server/ts_config.js +5 -5
  40. package/dist/ts3.9/server/utils/filter-out-styling-rules.js +4 -4
  41. package/dist/ts3.9/server/utils/module-is-available.js +1 -1
  42. package/dist/ts3.9/server/utils/normalize-asset-patterns.js +16 -31
  43. package/dist/ts3.9/server/utils/normalize-optimization.js +3 -3
  44. package/package.json +9 -9
  45. package/standalone.d.ts +3 -5
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,138 +8,103 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __spreadArrays = (this && this.__spreadArrays) || function () {
50
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
51
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
52
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
53
- r[k] = a[j];
54
- return r;
55
- };
56
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
57
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
58
13
  };
59
14
  Object.defineProperty(exports, "__esModule", { value: true });
60
15
  exports.getWebpackConfig = void 0;
61
- var node_logger_1 = require("@storybook/node-logger");
62
- var tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
63
- var architect_1 = require("@angular-devkit/architect");
64
- var angular_read_workspace_1 = require("./angular-read-workspace");
65
- var angular_devkit_build_webpack_1 = require("./angular-devkit-build-webpack");
66
- var filter_out_styling_rules_1 = require("./utils/filter-out-styling-rules");
16
+ const node_logger_1 = require("@storybook/node-logger");
17
+ const tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
18
+ const architect_1 = require("@angular-devkit/architect");
19
+ const angular_read_workspace_1 = require("./angular-read-workspace");
20
+ const angular_devkit_build_webpack_1 = require("./angular-devkit-build-webpack");
21
+ const filter_out_styling_rules_1 = require("./utils/filter-out-styling-rules");
67
22
  /**
68
23
  * Old way currently support version lower than 12.2.x
69
24
  */
70
25
  function getWebpackConfig(baseConfig, options) {
71
- return __awaiter(this, void 0, void 0, function () {
72
- var dirToSearch, workspaceConfig, error_1, project, target, confName, browserTarget, fondProject, angularCliWebpackConfig, error_2;
73
- return __generator(this, function (_a) {
74
- switch (_a.label) {
75
- case 0:
76
- dirToSearch = process.cwd();
77
- _a.label = 1;
78
- case 1:
79
- _a.trys.push([1, 3, , 4]);
80
- return [4 /*yield*/, angular_read_workspace_1.readAngularWorkspaceConfig(dirToSearch)];
81
- case 2:
82
- workspaceConfig = _a.sent();
83
- return [3 /*break*/, 4];
84
- case 3:
85
- error_1 = _a.sent();
86
- node_logger_1.logger.error("=> Could not find angular workspace config (angular.json) on this path \"" + dirToSearch + "\"");
87
- node_logger_1.logger.info("=> Fail to load angular-cli config. Using base config");
88
- return [2 /*return*/, baseConfig];
89
- case 4:
90
- try {
91
- // Default behavior when `angularBrowserTarget` are not explicitly defined to null
92
- if (options.angularBrowserTarget !== null) {
93
- browserTarget = options.angularBrowserTarget
94
- ? architect_1.targetFromTargetString(options.angularBrowserTarget)
95
- : {
96
- configuration: undefined,
97
- project: angular_read_workspace_1.getDefaultProjectName(workspaceConfig),
98
- target: 'build',
99
- };
100
- fondProject = angular_read_workspace_1.findAngularProjectTarget(workspaceConfig, browserTarget.project, browserTarget.target);
101
- project = fondProject.project;
102
- target = fondProject.target;
103
- confName = browserTarget.configuration;
104
- node_logger_1.logger.info("=> Using angular project \"" + browserTarget.project + ":" + browserTarget.target + (confName ? ":" + confName : '') + "\" for configuring Storybook");
105
- }
106
- // Start storybook when only tsConfig is provided.
107
- if (options.angularBrowserTarget === null && options.tsConfig) {
108
- node_logger_1.logger.info("=> Using default angular project with \"tsConfig:" + options.tsConfig + "\"");
109
- project = { root: '', extensions: {}, targets: undefined };
110
- target = { builder: '', options: { tsConfig: options.tsConfig } };
111
- }
112
- }
113
- catch (error) {
114
- node_logger_1.logger.error("=> Could not find angular project: " + error.message);
115
- node_logger_1.logger.info("=> Fail to load angular-cli config. Using base config");
116
- return [2 /*return*/, baseConfig];
117
- }
118
- _a.label = 5;
119
- case 5:
120
- _a.trys.push([5, 7, , 8]);
121
- return [4 /*yield*/, angular_devkit_build_webpack_1.extractAngularCliWebpackConfig(dirToSearch, project, target, confName)];
122
- case 6:
123
- angularCliWebpackConfig = _a.sent();
124
- node_logger_1.logger.info("=> Using angular-cli webpack config");
125
- return [3 /*break*/, 8];
126
- case 7:
127
- error_2 = _a.sent();
128
- node_logger_1.logger.error("=> Could not get angular cli webpack config");
129
- throw error_2;
130
- case 8: return [2 /*return*/, mergeAngularCliWebpackConfig(angularCliWebpackConfig, baseConfig)];
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const dirToSearch = process.cwd();
28
+ // Read angular workspace
29
+ let workspaceConfig;
30
+ try {
31
+ workspaceConfig = yield angular_read_workspace_1.readAngularWorkspaceConfig(dirToSearch);
32
+ }
33
+ catch (error) {
34
+ node_logger_1.logger.error(`=> Could not find angular workspace config (angular.json) on this path "${dirToSearch}"`);
35
+ node_logger_1.logger.info(`=> Fail to load angular-cli config. Using base config`);
36
+ return baseConfig;
37
+ }
38
+ // Find angular project target
39
+ let project;
40
+ let target;
41
+ let confName;
42
+ try {
43
+ // Default behavior when `angularBrowserTarget` are not explicitly defined to null
44
+ if (options.angularBrowserTarget !== null) {
45
+ const browserTarget = options.angularBrowserTarget
46
+ ? architect_1.targetFromTargetString(options.angularBrowserTarget)
47
+ : {
48
+ configuration: undefined,
49
+ project: angular_read_workspace_1.getDefaultProjectName(workspaceConfig),
50
+ target: 'build',
51
+ };
52
+ const fondProject = angular_read_workspace_1.findAngularProjectTarget(workspaceConfig, browserTarget.project, browserTarget.target);
53
+ project = fondProject.project;
54
+ target = fondProject.target;
55
+ confName = browserTarget.configuration;
56
+ node_logger_1.logger.info(`=> Using angular project "${browserTarget.project}:${browserTarget.target}${confName ? `:${confName}` : ''}" for configuring Storybook`);
57
+ }
58
+ // Start storybook when only tsConfig is provided.
59
+ if (options.angularBrowserTarget === null && options.tsConfig) {
60
+ node_logger_1.logger.info(`=> Using default angular project with "tsConfig:${options.tsConfig}"`);
61
+ project = { root: '', extensions: {}, targets: undefined };
62
+ target = { builder: '', options: { tsConfig: options.tsConfig } };
131
63
  }
132
- });
64
+ }
65
+ catch (error) {
66
+ node_logger_1.logger.error(`=> Could not find angular project: ${error.message}`);
67
+ node_logger_1.logger.info(`=> Fail to load angular-cli config. Using base config`);
68
+ return baseConfig;
69
+ }
70
+ // Use angular-cli to get some webpack config
71
+ let angularCliWebpackConfig;
72
+ try {
73
+ angularCliWebpackConfig = yield angular_devkit_build_webpack_1.extractAngularCliWebpackConfig(dirToSearch, project, target, confName);
74
+ node_logger_1.logger.info(`=> Using angular-cli webpack config`);
75
+ }
76
+ catch (error) {
77
+ node_logger_1.logger.error(`=> Could not get angular cli webpack config`);
78
+ throw error;
79
+ }
80
+ return mergeAngularCliWebpackConfig(angularCliWebpackConfig, baseConfig);
133
81
  });
134
82
  }
135
83
  exports.getWebpackConfig = getWebpackConfig;
136
- function mergeAngularCliWebpackConfig(_a, baseConfig) {
137
- var cliCommonWebpackConfig = _a.cliCommonWebpackConfig, cliStyleWebpackConfig = _a.cliStyleWebpackConfig, tsConfigPath = _a.tsConfigPath;
84
+ function mergeAngularCliWebpackConfig({ cliCommonWebpackConfig, cliStyleWebpackConfig, tsConfigPath }, baseConfig) {
138
85
  // Don't use storybooks styling rules because we have to use rules created by @angular-devkit/build-angular
139
86
  // because @angular-devkit/build-angular created rules have include/exclude for global style files.
140
- var rulesExcludingStyles = filter_out_styling_rules_1.filterOutStylingRules(baseConfig);
87
+ const rulesExcludingStyles = filter_out_styling_rules_1.filterOutStylingRules(baseConfig);
141
88
  // styleWebpackConfig.entry adds global style files to the webpack context
142
- var entry = __spreadArrays(baseConfig.entry, Object.values(cliStyleWebpackConfig.entry).reduce(function (acc, item) { return acc.concat(item); }, []));
143
- var module = __assign(__assign({}, baseConfig.module), { rules: __spreadArrays(cliStyleWebpackConfig.module.rules, rulesExcludingStyles) });
89
+ const entry = [
90
+ ...baseConfig.entry,
91
+ ...Object.values(cliStyleWebpackConfig.entry).reduce((acc, item) => acc.concat(item), []),
92
+ ];
93
+ const module = Object.assign(Object.assign({}, baseConfig.module), { rules: [...cliStyleWebpackConfig.module.rules, ...rulesExcludingStyles] });
144
94
  // We use cliCommonConfig plugins to serve static assets files.
145
- var plugins = __spreadArrays(cliStyleWebpackConfig.plugins, cliCommonWebpackConfig.plugins, baseConfig.plugins);
146
- var resolve = __assign(__assign({}, baseConfig.resolve), { modules: Array.from(new Set(__spreadArrays(baseConfig.resolve.modules, cliCommonWebpackConfig.resolve.modules))), plugins: [
95
+ const plugins = [
96
+ ...cliStyleWebpackConfig.plugins,
97
+ ...cliCommonWebpackConfig.plugins,
98
+ ...baseConfig.plugins,
99
+ ];
100
+ const resolve = Object.assign(Object.assign({}, baseConfig.resolve), { modules: Array.from(new Set([...baseConfig.resolve.modules, ...cliCommonWebpackConfig.resolve.modules])), plugins: [
147
101
  new tsconfig_paths_webpack_plugin_1.default({
148
102
  configFile: tsConfigPath,
149
103
  mainFields: ['browser', 'module', 'main'],
150
104
  }),
151
105
  ] });
152
- return __assign(__assign({}, baseConfig), { entry: entry,
153
- module: module,
154
- plugins: plugins,
155
- resolve: resolve, resolveLoader: cliCommonWebpackConfig.resolveLoader });
106
+ return Object.assign(Object.assign({}, baseConfig), { entry,
107
+ module,
108
+ plugins,
109
+ resolve, resolveLoader: cliCommonWebpackConfig.resolveLoader });
156
110
  }
@@ -5,17 +5,6 @@
5
5
  *
6
6
  * It uses code block of angular cli to extract parts of webpack configuration
7
7
  */
8
- var __assign = (this && this.__assign) || function () {
9
- __assign = Object.assign || function(t) {
10
- for (var s, i = 1, n = arguments.length; i < n; i++) {
11
- s = arguments[i];
12
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13
- t[p] = s[p];
14
- }
15
- return t;
16
- };
17
- return __assign.apply(this, arguments);
18
- };
19
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
9
  if (k2 === undefined) k2 = k;
21
10
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -44,53 +33,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
44
33
  step((generator = generator.apply(thisArg, _arguments || [])).next());
45
34
  });
46
35
  };
47
- var __generator = (this && this.__generator) || function (thisArg, body) {
48
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
49
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
50
- function verb(n) { return function (v) { return step([n, v]); }; }
51
- function step(op) {
52
- if (f) throw new TypeError("Generator is already executing.");
53
- while (_) try {
54
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
55
- if (y = 0, t) op = [op[0] & 2, t.value];
56
- switch (op[0]) {
57
- case 0: case 1: t = op; break;
58
- case 4: _.label++; return { value: op[1], done: false };
59
- case 5: _.label++; y = op[1]; op = [0]; continue;
60
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
61
- default:
62
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
63
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
64
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
65
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
66
- if (t[2]) _.ops.pop();
67
- _.trys.pop(); continue;
68
- }
69
- op = body.call(thisArg, _);
70
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
71
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
72
- }
73
- };
74
- var __spreadArrays = (this && this.__spreadArrays) || function () {
75
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
76
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
77
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
78
- r[k] = a[j];
79
- return r;
80
- };
81
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
82
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
83
38
  };
84
39
  Object.defineProperty(exports, "__esModule", { value: true });
85
40
  exports.extractAngularCliWebpackConfig = void 0;
86
- var path_1 = __importDefault(require("path"));
87
- var core_1 = require("@angular-devkit/core");
88
- var node_1 = require("@angular-devkit/core/node");
89
- var module_is_available_1 = require("./utils/module-is-available");
90
- var normalize_asset_patterns_1 = require("./utils/normalize-asset-patterns");
91
- var normalize_optimization_1 = require("./utils/normalize-optimization");
92
- var importAngularCliWebpackConfigGenerator = function () {
93
- var angularWebpackConfig;
41
+ const path_1 = __importDefault(require("path"));
42
+ const core_1 = require("@angular-devkit/core");
43
+ const node_1 = require("@angular-devkit/core/node");
44
+ const module_is_available_1 = require("./utils/module-is-available");
45
+ const normalize_asset_patterns_1 = require("./utils/normalize-asset-patterns");
46
+ const normalize_optimization_1 = require("./utils/normalize-optimization");
47
+ const importAngularCliWebpackConfigGenerator = () => {
48
+ let angularWebpackConfig;
94
49
  // First we look for webpack config according to directory structure of Angular 11
95
50
  if (module_is_available_1.moduleIsAvailable('@angular-devkit/build-angular/src/webpack/configs')) {
96
51
  // eslint-disable-next-line global-require
@@ -109,7 +64,7 @@ var importAngularCliWebpackConfigGenerator = function () {
109
64
  getStylesConfig: angularWebpackConfig.getStylesConfig,
110
65
  };
111
66
  };
112
- var importAngularCliReadTsconfigUtil = function () {
67
+ const importAngularCliReadTsconfigUtil = () => {
113
68
  // First we look for webpack config according to directory structure of Angular 11
114
69
  if (module_is_available_1.moduleIsAvailable('@angular-devkit/build-angular/src/utils/read-tsconfig')) {
115
70
  // eslint-disable-next-line global-require
@@ -122,92 +77,76 @@ var importAngularCliReadTsconfigUtil = function () {
122
77
  }
123
78
  throw new Error('ReadTsconfig not found in "@angular-devkit/build-angular"');
124
79
  };
125
- var buildWebpackConfigOptions = function (dirToSearch, project, target, confName) { return __awaiter(void 0, void 0, void 0, function () {
126
- var conf, projectBuildOptions, requiredOptions, workspaceRootNormalized, projectRootNormalized, sourceRootNormalized, tsConfigPath, tsConfig, ts, scriptTarget, buildOptions;
127
- return __generator(this, function (_a) {
128
- switch (_a.label) {
129
- case 0:
130
- conf = {};
131
- if (confName) {
132
- if (!target.configurations) {
133
- throw new Error('Missing "configurations" section in project target');
134
- }
135
- if (!target.configurations[confName]) {
136
- throw new Error("Missing required configuration in project target. Check \"" + confName + "\"");
137
- }
138
- conf = target.configurations[confName];
139
- }
140
- projectBuildOptions = __assign(__assign({}, target.options), conf);
141
- requiredOptions = ['tsConfig'];
142
- if (!requiredOptions.every(function (key) { return !!projectBuildOptions[key]; })) {
143
- throw new Error("Missing required options in project target. Check \"" + requiredOptions.join(', ') + "\"");
144
- }
145
- workspaceRootNormalized = core_1.normalize(dirToSearch);
146
- projectRootNormalized = core_1.resolve(workspaceRootNormalized, core_1.normalize(project.root || ''));
147
- sourceRootNormalized = project.sourceRoot
148
- ? core_1.resolve(workspaceRootNormalized, core_1.normalize(project.sourceRoot))
149
- : undefined;
150
- tsConfigPath = path_1.default.resolve(core_1.getSystemPath(workspaceRootNormalized), projectBuildOptions.tsConfig);
151
- tsConfig = importAngularCliReadTsconfigUtil().readTsconfig(tsConfigPath);
152
- return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('typescript')); })];
153
- case 1:
154
- ts = _a.sent();
155
- scriptTarget = tsConfig.options.target || ts.ScriptTarget.ES5;
156
- buildOptions = __assign(__assign({
157
- // Default options
158
- budgets: [], fileReplacements: [], main: '', outputPath: 'dist/storybook-angular', scripts: [], sourceMap: {}, styles: [], lazyModules: [] }, projectBuildOptions), { assets: normalize_asset_patterns_1.normalizeAssetPatterns(projectBuildOptions.assets || [], workspaceRootNormalized, projectRootNormalized, sourceRootNormalized), optimization: normalize_optimization_1.normalizeOptimization(projectBuildOptions.optimization),
159
- // Forced options
160
- statsJson: false, forkTypeChecker: false });
161
- return [2 /*return*/, {
162
- root: core_1.getSystemPath(workspaceRootNormalized),
163
- // The dependency of `@angular-devkit/build-angular` to `@angular-devkit/core` is not exactly the same version as the one for storybook (node modules of node modules ^^)
164
- logger: node_1.createConsoleLogger(),
165
- projectRoot: core_1.getSystemPath(projectRootNormalized),
166
- sourceRoot: sourceRootNormalized ? core_1.getSystemPath(sourceRootNormalized) : undefined,
167
- buildOptions: buildOptions,
168
- tsConfig: tsConfig,
169
- tsConfigPath: tsConfigPath,
170
- scriptTarget: scriptTarget,
171
- }];
80
+ const buildWebpackConfigOptions = (dirToSearch, project, target, confName) => __awaiter(void 0, void 0, void 0, function* () {
81
+ let conf = {};
82
+ if (confName) {
83
+ if (!target.configurations) {
84
+ throw new Error('Missing "configurations" section in project target');
172
85
  }
173
- });
174
- }); };
86
+ if (!target.configurations[confName]) {
87
+ throw new Error(`Missing required configuration in project target. Check "${confName}"`);
88
+ }
89
+ conf = target.configurations[confName];
90
+ }
91
+ const projectBuildOptions = Object.assign(Object.assign({}, target.options), conf);
92
+ const requiredOptions = ['tsConfig'];
93
+ if (!requiredOptions.every((key) => !!projectBuildOptions[key])) {
94
+ throw new Error(`Missing required options in project target. Check "${requiredOptions.join(', ')}"`);
95
+ }
96
+ const workspaceRootNormalized = core_1.normalize(dirToSearch);
97
+ const projectRootNormalized = core_1.resolve(workspaceRootNormalized, core_1.normalize(project.root || ''));
98
+ const sourceRootNormalized = project.sourceRoot
99
+ ? core_1.resolve(workspaceRootNormalized, core_1.normalize(project.sourceRoot))
100
+ : undefined;
101
+ const tsConfigPath = path_1.default.resolve(core_1.getSystemPath(workspaceRootNormalized), projectBuildOptions.tsConfig);
102
+ const tsConfig = importAngularCliReadTsconfigUtil().readTsconfig(tsConfigPath);
103
+ const ts = yield Promise.resolve().then(() => __importStar(require('typescript')));
104
+ const scriptTarget = tsConfig.options.target || ts.ScriptTarget.ES5;
105
+ const buildOptions = Object.assign(Object.assign({
106
+ // Default options
107
+ budgets: [], fileReplacements: [], main: '', outputPath: 'dist/storybook-angular', scripts: [], sourceMap: {}, styles: [], lazyModules: [] }, projectBuildOptions), { assets: normalize_asset_patterns_1.normalizeAssetPatterns(projectBuildOptions.assets || [], workspaceRootNormalized, projectRootNormalized, sourceRootNormalized), optimization: normalize_optimization_1.normalizeOptimization(projectBuildOptions.optimization),
108
+ // Forced options
109
+ statsJson: false, forkTypeChecker: false });
110
+ return {
111
+ root: core_1.getSystemPath(workspaceRootNormalized),
112
+ // The dependency of `@angular-devkit/build-angular` to `@angular-devkit/core` is not exactly the same version as the one for storybook (node modules of node modules ^^)
113
+ logger: node_1.createConsoleLogger(),
114
+ projectRoot: core_1.getSystemPath(projectRootNormalized),
115
+ sourceRoot: sourceRootNormalized ? core_1.getSystemPath(sourceRootNormalized) : undefined,
116
+ buildOptions,
117
+ tsConfig,
118
+ tsConfigPath,
119
+ scriptTarget,
120
+ };
121
+ });
175
122
  /**
176
123
  * Uses angular cli to extract webpack configuration.
177
124
  * The `AngularCliWebpackConfig` type lists the parts used by storybook
178
125
  */
179
126
  function extractAngularCliWebpackConfig(dirToSearch, project, target, confName) {
180
127
  var _a;
181
- return __awaiter(this, void 0, void 0, function () {
182
- var _b, getCommonConfig, getStylesConfig, webpackConfigOptions, cliCommonConfig, cliStyleConfig;
183
- return __generator(this, function (_c) {
184
- switch (_c.label) {
185
- case 0:
186
- _b = importAngularCliWebpackConfigGenerator(), getCommonConfig = _b.getCommonConfig, getStylesConfig = _b.getStylesConfig;
187
- return [4 /*yield*/, buildWebpackConfigOptions(dirToSearch, project, target, confName)];
188
- case 1:
189
- webpackConfigOptions = _c.sent();
190
- cliCommonConfig = getCommonConfig(webpackConfigOptions);
191
- cliStyleConfig = getStylesConfig(webpackConfigOptions);
192
- return [2 /*return*/, {
193
- cliCommonWebpackConfig: {
194
- plugins: cliCommonConfig.plugins,
195
- resolve: {
196
- modules: (_a = cliCommonConfig.resolve) === null || _a === void 0 ? void 0 : _a.modules,
197
- },
198
- resolveLoader: cliCommonConfig.resolveLoader,
199
- },
200
- cliStyleWebpackConfig: {
201
- entry: cliStyleConfig.entry,
202
- module: {
203
- rules: __spreadArrays(cliStyleConfig.module.rules),
204
- },
205
- plugins: cliStyleConfig.plugins,
206
- },
207
- tsConfigPath: webpackConfigOptions.tsConfigPath,
208
- }];
209
- }
210
- });
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const { getCommonConfig, getStylesConfig } = importAngularCliWebpackConfigGenerator();
130
+ const webpackConfigOptions = yield buildWebpackConfigOptions(dirToSearch, project, target, confName);
131
+ const cliCommonConfig = getCommonConfig(webpackConfigOptions);
132
+ const cliStyleConfig = getStylesConfig(webpackConfigOptions);
133
+ return {
134
+ cliCommonWebpackConfig: {
135
+ plugins: cliCommonConfig.plugins,
136
+ resolve: {
137
+ modules: (_a = cliCommonConfig.resolve) === null || _a === void 0 ? void 0 : _a.modules,
138
+ },
139
+ resolveLoader: cliCommonConfig.resolveLoader,
140
+ },
141
+ cliStyleWebpackConfig: {
142
+ entry: cliStyleConfig.entry,
143
+ module: {
144
+ rules: [...cliStyleConfig.module.rules],
145
+ },
146
+ plugins: cliStyleConfig.plugins,
147
+ },
148
+ tsConfigPath: webpackConfigOptions.tsConfigPath,
149
+ };
211
150
  });
212
151
  }
213
152
  exports.extractAngularCliWebpackConfig = extractAngularCliWebpackConfig;
@@ -8,85 +8,51 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
11
  Object.defineProperty(exports, "__esModule", { value: true });
39
12
  exports.findAngularProjectTarget = exports.getDefaultProjectName = exports.readAngularWorkspaceConfig = void 0;
40
- var node_1 = require("@angular-devkit/core/node");
41
- var core_1 = require("@angular-devkit/core");
13
+ const node_1 = require("@angular-devkit/core/node");
14
+ const core_1 = require("@angular-devkit/core");
42
15
  /**
43
16
  * Returns the workspace definition
44
17
  *
45
18
  * - Either from NX if it is present
46
19
  * - Either from `@angular-devkit/core` -> https://github.com/angular/angular-cli/tree/master/packages/angular_devkit/core
47
20
  */
48
- exports.readAngularWorkspaceConfig = function (dirToSearch) { return __awaiter(void 0, void 0, void 0, function () {
49
- var host, nxWorkspace_1;
50
- return __generator(this, function (_a) {
51
- switch (_a.label) {
52
- case 0:
53
- host = core_1.workspaces.createWorkspaceHost(new node_1.NodeJsSyncHost());
54
- try {
55
- /**
56
- * Apologies for the following line
57
- * If there's a better way to do it, let's do it
58
- */
59
- /* eslint-disable global-require */
60
- // catch if nx.json does not exist
61
- require('@nrwl/workspace').readNxJson();
62
- nxWorkspace_1 = require('@nrwl/workspace').readWorkspaceConfig({
63
- format: 'angularCli',
64
- path: dirToSearch,
65
- });
66
- // Use the workspace version of nx when angular looks for the angular.json file
67
- host.readFile = function (path) {
68
- if (typeof path === 'string' && path.endsWith('angular.json')) {
69
- return Promise.resolve(JSON.stringify(nxWorkspace_1));
70
- }
71
- return host.readFile(path);
72
- };
73
- host.isFile = function (path) {
74
- if (typeof path === 'string' && path.endsWith('angular.json')) {
75
- return Promise.resolve(true);
76
- }
77
- return host.isFile(path);
78
- };
79
- }
80
- catch (e) {
81
- // Ignore if the client does not use NX
82
- }
83
- return [4 /*yield*/, core_1.workspaces.readWorkspace(dirToSearch, host)];
84
- case 1: return [2 /*return*/, (_a.sent()).workspace];
85
- }
86
- });
87
- }); };
88
- exports.getDefaultProjectName = function (workspace) {
89
- var environmentProjectName = process.env.STORYBOOK_ANGULAR_PROJECT;
21
+ exports.readAngularWorkspaceConfig = (dirToSearch) => __awaiter(void 0, void 0, void 0, function* () {
22
+ const host = core_1.workspaces.createWorkspaceHost(new node_1.NodeJsSyncHost());
23
+ try {
24
+ /**
25
+ * Apologies for the following line
26
+ * If there's a better way to do it, let's do it
27
+ */
28
+ /* eslint-disable global-require */
29
+ // catch if nx.json does not exist
30
+ require('@nrwl/workspace').readNxJson();
31
+ const nxWorkspace = require('@nrwl/workspace').readWorkspaceConfig({
32
+ format: 'angularCli',
33
+ path: dirToSearch,
34
+ });
35
+ // Use the workspace version of nx when angular looks for the angular.json file
36
+ host.readFile = (path) => {
37
+ if (typeof path === 'string' && path.endsWith('angular.json')) {
38
+ return Promise.resolve(JSON.stringify(nxWorkspace));
39
+ }
40
+ return host.readFile(path);
41
+ };
42
+ host.isFile = (path) => {
43
+ if (typeof path === 'string' && path.endsWith('angular.json')) {
44
+ return Promise.resolve(true);
45
+ }
46
+ return host.isFile(path);
47
+ };
48
+ }
49
+ catch (e) {
50
+ // Ignore if the client does not use NX
51
+ }
52
+ return (yield core_1.workspaces.readWorkspace(dirToSearch, host)).workspace;
53
+ });
54
+ exports.getDefaultProjectName = (workspace) => {
55
+ const environmentProjectName = process.env.STORYBOOK_ANGULAR_PROJECT;
90
56
  if (environmentProjectName) {
91
57
  return environmentProjectName;
92
58
  }
@@ -96,23 +62,23 @@ exports.getDefaultProjectName = function (workspace) {
96
62
  if (workspace.extensions.defaultProject) {
97
63
  return workspace.extensions.defaultProject;
98
64
  }
99
- var firstProjectName = workspace.projects.keys().next().value;
65
+ const firstProjectName = workspace.projects.keys().next().value;
100
66
  if (firstProjectName) {
101
67
  return firstProjectName;
102
68
  }
103
69
  throw new Error('No angular projects found');
104
70
  };
105
- exports.findAngularProjectTarget = function (workspace, projectName, targetName) {
71
+ exports.findAngularProjectTarget = (workspace, projectName, targetName) => {
106
72
  if (!workspace.projects || !Object.keys(workspace.projects).length) {
107
73
  throw new Error('No angular projects found');
108
74
  }
109
- var project = workspace.projects.get(projectName);
75
+ const project = workspace.projects.get(projectName);
110
76
  if (!project) {
111
- throw new Error("\"" + projectName + "\" project is not found in angular.json");
77
+ throw new Error(`"${projectName}" project is not found in angular.json`);
112
78
  }
113
79
  if (!project.targets.has(targetName)) {
114
- throw new Error("\"" + targetName + "\" target is not found in \"" + projectName + "\" project");
80
+ throw new Error(`"${targetName}" target is not found in "${projectName}" project`);
115
81
  }
116
- var target = project.targets.get(targetName);
117
- return { project: project, target: target };
82
+ const target = project.targets.get(targetName);
83
+ return { project, target };
118
84
  };