@nx/storybook 17.0.4 → 17.0.6

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 (39) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -9
  3. package/generators.json +2 -2
  4. package/migrations.json +0 -140
  5. package/package.json +7 -7
  6. package/presets/cypress.d.ts +20 -1
  7. package/src/executors/build-storybook/build-storybook.impl.js +1 -1
  8. package/src/executors/storybook/storybook.impl.js +1 -1
  9. package/src/generators/configuration/configuration.d.ts +1 -2
  10. package/src/generators/configuration/configuration.js +32 -69
  11. package/src/generators/configuration/lib/util-functions.d.ts +5 -11
  12. package/src/generators/configuration/lib/util-functions.js +69 -88
  13. package/src/generators/configuration/project-files/.storybook/main.js__tmpl__ +3 -23
  14. package/src/generators/configuration/project-files-ts/.storybook/main.ts__tmpl__ +3 -22
  15. package/src/generators/configuration/schema.d.ts +3 -9
  16. package/src/generators/configuration/schema.json +13 -6
  17. package/src/generators/cypress-project/cypress-project.d.ts +3 -3
  18. package/src/generators/cypress-project/cypress-project.js +8 -3
  19. package/src/generators/cypress-project/schema.json +1 -1
  20. package/src/generators/init/init.d.ts +0 -1
  21. package/src/generators/init/init.js +117 -47
  22. package/src/generators/init/schema.d.ts +4 -5
  23. package/src/generators/init/schema.json +33 -18
  24. package/src/migrations/update-16-5-0/move-storybook-tsconfig.js +0 -1
  25. package/src/utils/models.d.ts +1 -1
  26. package/src/utils/utilities.d.ts +0 -1
  27. package/src/utils/utilities.js +8 -30
  28. package/src/utils/versions.d.ts +7 -6
  29. package/src/utils/versions.js +8 -7
  30. package/plugin.d.ts +0 -1
  31. package/plugin.js +0 -6
  32. package/src/generators/configuration/lib/edit-root-tsconfig.d.ts +0 -8
  33. package/src/generators/configuration/lib/edit-root-tsconfig.js +0 -35
  34. package/src/generators/configuration/lib/ensure-dependencies.d.ts +0 -6
  35. package/src/generators/configuration/lib/ensure-dependencies.js +0 -70
  36. package/src/generators/init/lib/update-gitignore.d.ts +0 -2
  37. package/src/generators/init/lib/update-gitignore.js +0 -16
  38. package/src/plugins/plugin.d.ts +0 -9
  39. package/src/plugins/plugin.js +0 -232
@@ -1,28 +1,89 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initGeneratorInternal = exports.initGenerator = void 0;
3
+ exports.initGenerator = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const update_package_scripts_1 = require("@nx/devkit/src/utils/update-package-scripts");
6
- const semver_1 = require("semver");
7
- const plugin_1 = require("../../plugins/plugin");
8
- const utilities_1 = require("../../utils/utilities");
5
+ const js_1 = require("@nx/js");
9
6
  const versions_1 = require("../../utils/versions");
10
- const update_gitignore_1 = require("./lib/update-gitignore");
7
+ const utilities_1 = require("../../utils/utilities");
8
+ const semver_1 = require("semver");
11
9
  function checkDependenciesInstalled(host, schema) {
12
- const devDependencies = {
13
- '@nx/storybook': versions_1.nxVersion,
14
- '@nx/web': versions_1.nxVersion,
15
- };
16
- if (schema.addPlugin) {
17
- let storybook7VersionToInstall = versions_1.storybookVersion;
18
- if ((0, utilities_1.storybookMajorVersion)() >= 7 &&
19
- (0, utilities_1.getInstalledStorybookVersion)() &&
20
- (0, semver_1.gte)((0, utilities_1.getInstalledStorybookVersion)(), '7.0.0')) {
21
- storybook7VersionToInstall = (0, utilities_1.getInstalledStorybookVersion)();
10
+ const packageJson = (0, devkit_1.readJson)(host, 'package.json');
11
+ const devDependencies = {};
12
+ const dependencies = {};
13
+ packageJson.dependencies = packageJson.dependencies || {};
14
+ packageJson.devDependencices = packageJson.devDependencices || {};
15
+ // base deps
16
+ devDependencies['@nx/storybook'] = versions_1.nxVersion;
17
+ let storybook7VersionToInstall = versions_1.storybookVersion;
18
+ if ((0, utilities_1.storybookMajorVersion)() === 7 &&
19
+ (0, utilities_1.getInstalledStorybookVersion)() &&
20
+ (0, semver_1.gte)((0, utilities_1.getInstalledStorybookVersion)(), '7.0.0')) {
21
+ storybook7VersionToInstall = (0, utilities_1.getInstalledStorybookVersion)();
22
+ }
23
+ // Needed for Storybook 7
24
+ // https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-peer-dependencies-required
25
+ if (!packageJson.dependencies['react'] &&
26
+ !packageJson.devDependencies['react']) {
27
+ dependencies['react'] = versions_1.reactVersion;
28
+ }
29
+ if (!packageJson.dependencies['react-dom'] &&
30
+ !packageJson.devDependencies['react-dom']) {
31
+ dependencies['react-dom'] = versions_1.reactVersion;
32
+ }
33
+ devDependencies['@storybook/core-server'] = storybook7VersionToInstall;
34
+ devDependencies['@storybook/addon-essentials'] = storybook7VersionToInstall;
35
+ if (schema.uiFramework) {
36
+ if (schema.uiFramework === '@storybook/react-native') {
37
+ devDependencies['@storybook/react-native'] = versions_1.storybookReactNativeVersion;
38
+ }
39
+ else {
40
+ devDependencies[schema.uiFramework] = storybook7VersionToInstall;
41
+ const isPnpm = (0, devkit_1.detectPackageManager)(host.root) === 'pnpm';
42
+ if (isPnpm) {
43
+ // If it's pnpm, it needs the framework without the builder
44
+ // as a dependency too (eg. @storybook/react)
45
+ const matchResult = schema.uiFramework?.match(/^@storybook\/(\w+)/);
46
+ const uiFrameworkWithoutBuilder = matchResult ? matchResult[0] : null;
47
+ if (uiFrameworkWithoutBuilder) {
48
+ devDependencies[uiFrameworkWithoutBuilder] =
49
+ storybook7VersionToInstall;
50
+ }
51
+ }
52
+ }
53
+ if (schema.uiFramework === '@storybook/vue3-vite') {
54
+ if (!packageJson.dependencies['@storybook/vue3'] &&
55
+ !packageJson.devDependencies['@storybook/vue3']) {
56
+ devDependencies['@storybook/vue3'] = storybook7VersionToInstall;
57
+ }
58
+ }
59
+ if (schema.uiFramework === '@storybook/angular') {
60
+ if (!packageJson.dependencies['@angular/forms'] &&
61
+ !packageJson.devDependencies['@angular/forms']) {
62
+ devDependencies['@angular/forms'] = '*';
63
+ }
64
+ }
65
+ if (schema.uiFramework === '@storybook/web-components-vite' ||
66
+ schema.uiFramework === '@storybook/web-components-webpack5') {
67
+ devDependencies['lit'] = versions_1.litVersion;
68
+ }
69
+ if (schema.uiFramework === '@storybook/react-native') {
70
+ devDependencies['@storybook/addon-ondevice-actions'] =
71
+ versions_1.storybookReactNativeVersion;
72
+ devDependencies['@storybook/addon-ondevice-backgrounds'] =
73
+ versions_1.storybookReactNativeVersion;
74
+ devDependencies['@storybook/addon-ondevice-controls'] =
75
+ versions_1.storybookReactNativeVersion;
76
+ devDependencies['@storybook/addon-ondevice-notes'] =
77
+ versions_1.storybookReactNativeVersion;
78
+ }
79
+ if (schema.uiFramework.endsWith('-vite')) {
80
+ if (!packageJson.dependencies['vite'] &&
81
+ !packageJson.devDependencies['vite']) {
82
+ devDependencies['vite'] = versions_1.viteVersion;
83
+ }
22
84
  }
23
- devDependencies['storybook'] = storybook7VersionToInstall;
24
85
  }
25
- return (0, devkit_1.addDependenciesToPackageJson)(host, {}, devDependencies, undefined, schema.keepExistingVersions);
86
+ return (0, devkit_1.addDependenciesToPackageJson)(host, dependencies, devDependencies);
26
87
  }
27
88
  function addCacheableOperation(tree) {
28
89
  const nxJson = (0, devkit_1.readNxJson)(tree);
@@ -36,7 +97,6 @@ function addCacheableOperation(tree) {
36
97
  (0, devkit_1.updateNxJson)(tree, nxJson);
37
98
  }
38
99
  function moveToDevDependencies(tree) {
39
- let updated = false;
40
100
  (0, devkit_1.updateJson)(tree, 'package.json', (packageJson) => {
41
101
  packageJson.dependencies = packageJson.dependencies || {};
42
102
  packageJson.devDependencies = packageJson.devDependencies || {};
@@ -44,40 +104,50 @@ function moveToDevDependencies(tree) {
44
104
  packageJson.devDependencies['@nx/storybook'] =
45
105
  packageJson.dependencies['@nx/storybook'];
46
106
  delete packageJson.dependencies['@nx/storybook'];
47
- updated = true;
48
107
  }
49
108
  return packageJson;
50
109
  });
51
- return updated ? () => (0, devkit_1.installPackagesTask)(tree) : () => { };
52
- }
53
- function initGenerator(tree, schema) {
54
- return initGeneratorInternal(tree, { addPlugin: false, ...schema });
55
110
  }
56
- exports.initGenerator = initGenerator;
57
- async function initGeneratorInternal(tree, schema) {
58
- const nxJson = (0, devkit_1.readNxJson)(tree);
59
- const addPluginDefault = process.env.NX_ADD_PLUGINS !== 'false' &&
60
- nxJson.useInferencePlugins !== false;
61
- schema.addPlugin ??= addPluginDefault;
62
- if (schema.addPlugin) {
63
- (0, utilities_1.addPlugin)(tree);
64
- (0, update_gitignore_1.updateGitignore)(tree);
65
- }
66
- else {
67
- addCacheableOperation(tree);
111
+ /**
112
+ * This is a temporary fix for Storybook to support TypeScript configuration files.
113
+ * The issue is that if there is a root tsconfig.json file, Storybook will use it, and
114
+ * ignore the tsconfig.json file in the .storybook folder. This results in module being set
115
+ * to esnext, and Storybook does not recognise the main.ts code as a module.
116
+ */
117
+ function editRootTsConfig(tree) {
118
+ if (tree.exists('tsconfig.json')) {
119
+ (0, devkit_1.updateJson)(tree, 'tsconfig.json', (json) => {
120
+ if (json['ts-node']) {
121
+ json['ts-node'] = {
122
+ ...json['ts-node'],
123
+ compilerOptions: {
124
+ ...(json['ts-node'].compilerOptions ?? {}),
125
+ module: 'commonjs',
126
+ },
127
+ };
128
+ }
129
+ else {
130
+ json['ts-node'] = {
131
+ compilerOptions: {
132
+ module: 'commonjs',
133
+ },
134
+ };
135
+ }
136
+ return json;
137
+ });
68
138
  }
139
+ }
140
+ async function initGenerator(tree, schema) {
69
141
  const tasks = [];
70
- if (!schema.skipPackageJson) {
71
- tasks.push(moveToDevDependencies(tree));
72
- tasks.push(checkDependenciesInstalled(tree, schema));
73
- }
74
- if (schema.updatePackageScripts) {
75
- await (0, update_package_scripts_1.updatePackageScripts)(tree, plugin_1.createNodes);
76
- }
77
- if (!schema.skipFormat) {
78
- await (0, devkit_1.formatFiles)(tree);
79
- }
142
+ tasks.push(await (0, js_1.initGenerator)(tree, {
143
+ ...schema,
144
+ skipFormat: true,
145
+ }));
146
+ tasks.push(checkDependenciesInstalled(tree, schema));
147
+ moveToDevDependencies(tree);
148
+ editRootTsConfig(tree);
149
+ addCacheableOperation(tree);
80
150
  return (0, devkit_1.runTasksInSerial)(...tasks);
81
151
  }
82
- exports.initGeneratorInternal = initGeneratorInternal;
152
+ exports.initGenerator = initGenerator;
83
153
  exports.default = initGenerator;
@@ -1,7 +1,6 @@
1
+ import { UiFramework } from '../../utils/models';
2
+
1
3
  export interface Schema {
2
- skipFormat?: boolean;
3
- skipPackageJson?: boolean;
4
- keepExistingVersions?: boolean;
5
- updatePackageScripts?: boolean;
6
- addPlugin?: boolean;
4
+ uiFramework: UiFramework;
5
+ js?: boolean;
7
6
  }
@@ -5,26 +5,41 @@
5
5
  "$id": "init-storybook-plugin",
6
6
  "type": "object",
7
7
  "properties": {
8
- "skipFormat": {
9
- "description": "Skip formatting files.",
10
- "type": "boolean",
11
- "default": false
12
- },
13
- "skipPackageJson": {
14
- "description": "Do not add dependencies to `package.json`.",
15
- "type": "boolean",
16
- "default": false
17
- },
18
- "keepExistingVersions": {
19
- "type": "boolean",
20
- "x-priority": "internal",
21
- "description": "Keep existing dependencies versions",
22
- "default": false
8
+ "uiFramework": {
9
+ "type": "string",
10
+ "description": "Storybook UI Framework to use.",
11
+ "enum": [
12
+ "@storybook/angular",
13
+ "@storybook/html-webpack5",
14
+ "@storybook/nextjs",
15
+ "@storybook/preact-webpack5",
16
+ "@storybook/react-webpack5",
17
+ "@storybook/react-vite",
18
+ "@storybook/server-webpack5",
19
+ "@storybook/svelte-webpack5",
20
+ "@storybook/svelte-vite",
21
+ "@storybook/sveltekit",
22
+ "@storybook/vue-webpack5",
23
+ "@storybook/vue-vite",
24
+ "@storybook/vue3-webpack5",
25
+ "@storybook/vue3-vite",
26
+ "@storybook/web-components-webpack5",
27
+ "@storybook/web-components-vite",
28
+ "@storybook/react",
29
+ "@storybook/html",
30
+ "@storybook/web-components",
31
+ "@storybook/vue",
32
+ "@storybook/vue3",
33
+ "@storybook/svelte",
34
+ "@storybook/react-native"
35
+ ],
36
+ "x-prompt": "What UI framework plugin should storybook use?",
37
+ "x-priority": "important",
38
+ "aliases": ["storybook7UiFramework"]
23
39
  },
24
- "updatePackageScripts": {
40
+ "js": {
25
41
  "type": "boolean",
26
- "x-priority": "internal",
27
- "description": "Update `package.json` scripts with inferred targets",
42
+ "description": "Generate JavaScript story files rather than TypeScript story files.",
28
43
  "default": false
29
44
  }
30
45
  }
@@ -14,7 +14,6 @@ async function default_1(tree) {
14
14
  (0, util_functions_1.renameAndMoveOldTsConfig)(projectRoot, pathToStorybookConfigFile, tree);
15
15
  });
16
16
  (0, util_functions_1.addStorybookToNamedInputs)(tree);
17
- (0, util_functions_1.addStorybookToTargetDefaults)(tree, false);
18
17
  await (0, devkit_1.formatFiles)(tree);
19
18
  }
20
19
  exports.default = default_1;
@@ -1 +1 @@
1
- export type UiFramework = '@storybook/angular' | '@storybook/html-webpack5' | '@storybook/nextjs' | '@storybook/preact-webpack5' | '@storybook/react-webpack5' | '@storybook/react-vite' | '@storybook/server-webpack5' | '@storybook/svelte-webpack5' | '@storybook/svelte-vite' | '@storybook/sveltekit' | '@storybook/vue-webpack5' | '@storybook/vue-vite' | '@storybook/vue3-webpack5' | '@storybook/vue3-vite' | '@storybook/web-components-webpack5' | '@storybook/web-components-vite';
1
+ export type UiFramework = '@storybook/angular' | '@storybook/html-webpack5' | '@storybook/nextjs' | '@storybook/preact-webpack5' | '@storybook/react-webpack5' | '@storybook/react-vite' | '@storybook/server-webpack5' | '@storybook/svelte-webpack5' | '@storybook/svelte-vite' | '@storybook/sveltekit' | '@storybook/vue-webpack5' | '@storybook/vue-vite' | '@storybook/vue3-webpack5' | '@storybook/vue3-vite' | '@storybook/web-components-webpack5' | '@storybook/web-components-vite' | '@storybook/react-native';
@@ -40,4 +40,3 @@ export declare function findStorybookAndBuildTargetsAndCompiler(targets: {
40
40
  export declare function isTheFileAStory(tree: Tree, path: string): boolean;
41
41
  export declare function getTsSourceFile(host: Tree, path: string): ts.SourceFile;
42
42
  export declare function pleaseUpgrade(): string;
43
- export declare function addPlugin(tree: Tree): void;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addPlugin = exports.pleaseUpgrade = exports.getTsSourceFile = exports.isTheFileAStory = exports.findStorybookAndBuildTargetsAndCompiler = exports.dedupe = exports.storybookConfigExistsCheck = exports.safeFileDelete = exports.getInstalledStorybookVersion = exports.storybookMajorVersion = exports.Constants = void 0;
4
- const devkit_1 = require("@nx/devkit");
3
+ exports.pleaseUpgrade = exports.getTsSourceFile = exports.isTheFileAStory = exports.findStorybookAndBuildTargetsAndCompiler = exports.dedupe = exports.storybookConfigExistsCheck = exports.safeFileDelete = exports.getInstalledStorybookVersion = exports.storybookMajorVersion = exports.Constants = void 0;
5
4
  const fs_1 = require("fs");
6
5
  const js_1 = require("@nx/js");
7
6
  const ts = require("typescript");
@@ -93,6 +92,9 @@ function findStorybookAndBuildTargetsAndCompiler(targets) {
93
92
  '@nx/angular:webpack-browser',
94
93
  '@nx/esbuild:esbuild',
95
94
  '@nx/next:build',
95
+ '@nx/react-native:bundle',
96
+ '@nx/react-native:build-android',
97
+ '@nx/react-native:bundle',
96
98
  '@nrwl/js:babel',
97
99
  '@nrwl/js:swc',
98
100
  '@nrwl/js:tsc',
@@ -105,17 +107,15 @@ function findStorybookAndBuildTargetsAndCompiler(targets) {
105
107
  '@nrwl/angular:webpack-browser',
106
108
  '@nrwl/esbuild:esbuild',
107
109
  '@nrwl/next:build',
110
+ '@nrwl/react-native:bundle',
111
+ '@nrwl/react-native:build-android',
112
+ '@nrwl/react-native:bundle',
108
113
  '@nxext/vite:build',
109
- '@angular-devkit/build-angular:application',
110
114
  '@angular-devkit/build-angular:browser',
111
- '@angular-devkit/build-angular:browser-esbuild',
112
115
  ];
113
116
  for (const target in targets) {
114
117
  if (arrayOfBuilders.includes(targets[target].executor)) {
115
- if (targets[target].executor === '@angular-devkit/build-angular:browser' ||
116
- targets[target].executor ===
117
- '@angular-devkit/build-angular:browser-esbuild' ||
118
- targets[target].executor === '@angular-devkit/build-angular:application') {
118
+ if (targets[target].executor === '@angular-devkit/build-angular:browser') {
119
119
  /**
120
120
  * Not looking for '@nx/angular:ng-packagr-lite' or any other
121
121
  * @nx/angular:* executors.
@@ -222,25 +222,3 @@ function pleaseUpgrade() {
222
222
  `;
223
223
  }
224
224
  exports.pleaseUpgrade = pleaseUpgrade;
225
- function addPlugin(tree) {
226
- const nxJson = (0, devkit_1.readNxJson)(tree);
227
- nxJson.plugins ??= [];
228
- for (const plugin of nxJson.plugins) {
229
- if (typeof plugin === 'string'
230
- ? plugin === '@nx/storybook/plugin'
231
- : plugin.plugin === '@nx/storybook/plugin') {
232
- return;
233
- }
234
- }
235
- nxJson.plugins.push({
236
- plugin: '@nx/storybook/plugin',
237
- options: {
238
- buildStorybookTargetName: 'build-storybook',
239
- serveStorybookTargetName: 'storybook',
240
- testStorybookTargetName: 'test-storybook',
241
- staticStorybookTargetName: 'static-storybook',
242
- },
243
- });
244
- (0, devkit_1.updateNxJson)(tree, nxJson);
245
- }
246
- exports.addPlugin = addPlugin;
@@ -1,11 +1,12 @@
1
1
  export declare const nxVersion: any;
2
+ export declare const storybookReactNativeVersion = "^6.5.3";
3
+ export declare const reactNativeStorybookLoader = "^2.0.5";
2
4
  export declare const storybookTestRunnerVersion = "^0.13.0";
3
- export declare const storybookTestingLibraryVersion = "^0.2.2";
4
- export declare const storybookJestVersion = "^0.2.3";
5
+ export declare const storybookTestingLibraryVersion = "~0.2.0";
6
+ export declare const storybookJestVersion = "~0.1.0";
5
7
  export declare const litVersion = "^2.6.1";
6
8
  export declare const tsNodeVersion = "10.9.1";
7
- export declare const tsLibVersion = "^2.3.0";
8
- export declare const storybookVersion = "^7.5.3";
9
+ export declare const storybookVersion = "^7.5.1";
9
10
  export declare const reactVersion = "^18.2.0";
10
- export declare const viteVersion = "~5.0.0";
11
- export declare const coreJsVersion = "^3.36.1";
11
+ export declare const viteVersion = "~4.3.9";
12
+ export declare const coreJsVersion = "^3.6.5";
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.coreJsVersion = exports.viteVersion = exports.reactVersion = exports.storybookVersion = exports.tsLibVersion = exports.tsNodeVersion = exports.litVersion = exports.storybookJestVersion = exports.storybookTestingLibraryVersion = exports.storybookTestRunnerVersion = exports.nxVersion = void 0;
3
+ exports.coreJsVersion = exports.viteVersion = exports.reactVersion = exports.storybookVersion = exports.tsNodeVersion = exports.litVersion = exports.storybookJestVersion = exports.storybookTestingLibraryVersion = exports.storybookTestRunnerVersion = exports.reactNativeStorybookLoader = exports.storybookReactNativeVersion = exports.nxVersion = void 0;
4
4
  exports.nxVersion = require('../../package.json').version;
5
+ exports.storybookReactNativeVersion = '^6.5.3';
6
+ exports.reactNativeStorybookLoader = '^2.0.5';
5
7
  exports.storybookTestRunnerVersion = '^0.13.0';
6
- exports.storybookTestingLibraryVersion = '^0.2.2';
7
- exports.storybookJestVersion = '^0.2.3';
8
+ exports.storybookTestingLibraryVersion = '~0.2.0';
9
+ exports.storybookJestVersion = '~0.1.0';
8
10
  exports.litVersion = '^2.6.1';
9
11
  exports.tsNodeVersion = '10.9.1';
10
- exports.tsLibVersion = '^2.3.0';
11
- exports.storybookVersion = '^7.5.3';
12
+ exports.storybookVersion = '^7.5.1';
12
13
  exports.reactVersion = '^18.2.0';
13
- exports.viteVersion = '~5.0.0';
14
- exports.coreJsVersion = '^3.36.1';
14
+ exports.viteVersion = '~4.3.9';
15
+ exports.coreJsVersion = '^3.6.5';
package/plugin.d.ts DELETED
@@ -1 +0,0 @@
1
- export { createNodes, StorybookPluginOptions, createDependencies, } from './src/plugins/plugin';
package/plugin.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDependencies = exports.createNodes = void 0;
4
- var plugin_1 = require("./src/plugins/plugin");
5
- Object.defineProperty(exports, "createNodes", { enumerable: true, get: function () { return plugin_1.createNodes; } });
6
- Object.defineProperty(exports, "createDependencies", { enumerable: true, get: function () { return plugin_1.createDependencies; } });
@@ -1,8 +0,0 @@
1
- import { type Tree } from '@nx/devkit';
2
- /**
3
- * This is a temporary fix for Storybook to support TypeScript configuration files.
4
- * The issue is that if there is a root tsconfig.json file, Storybook will use it, and
5
- * ignore the tsconfig.json file in the .storybook folder. This results in module being set
6
- * to esnext, and Storybook does not recognise the main.ts code as a module.
7
- */
8
- export declare function editRootTsConfig(tree: Tree): void;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.editRootTsConfig = void 0;
4
- const devkit_1 = require("@nx/devkit");
5
- /**
6
- * This is a temporary fix for Storybook to support TypeScript configuration files.
7
- * The issue is that if there is a root tsconfig.json file, Storybook will use it, and
8
- * ignore the tsconfig.json file in the .storybook folder. This results in module being set
9
- * to esnext, and Storybook does not recognise the main.ts code as a module.
10
- */
11
- function editRootTsConfig(tree) {
12
- if (!tree.exists('tsconfig.json')) {
13
- return;
14
- }
15
- (0, devkit_1.updateJson)(tree, 'tsconfig.json', (json) => {
16
- if (json['ts-node']) {
17
- json['ts-node'] = {
18
- ...json['ts-node'],
19
- compilerOptions: {
20
- ...(json['ts-node'].compilerOptions ?? {}),
21
- module: 'commonjs',
22
- },
23
- };
24
- }
25
- else {
26
- json['ts-node'] = {
27
- compilerOptions: {
28
- module: 'commonjs',
29
- },
30
- };
31
- }
32
- return json;
33
- });
34
- }
35
- exports.editRootTsConfig = editRootTsConfig;
@@ -1,6 +0,0 @@
1
- import { type Tree } from '@nx/devkit';
2
- import type { StorybookConfigureSchema } from '../schema';
3
- export type EnsureDependenciesOptions = {
4
- uiFramework?: StorybookConfigureSchema['uiFramework'];
5
- };
6
- export declare function ensureDependencies(tree: Tree, options: EnsureDependenciesOptions): import("@nx/devkit").GeneratorCallback;
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ensureDependencies = void 0;
4
- const devkit_1 = require("@nx/devkit");
5
- const semver_1 = require("semver");
6
- const utilities_1 = require("../../../utils/utilities");
7
- const versions_1 = require("../../../utils/versions");
8
- function ensureDependencies(tree, options) {
9
- let storybook7VersionToInstall = versions_1.storybookVersion;
10
- if ((0, utilities_1.storybookMajorVersion)() >= 7 &&
11
- (0, utilities_1.getInstalledStorybookVersion)() &&
12
- (0, semver_1.gte)((0, utilities_1.getInstalledStorybookVersion)(), '7.0.0')) {
13
- storybook7VersionToInstall = (0, utilities_1.getInstalledStorybookVersion)();
14
- }
15
- const dependencies = {};
16
- const devDependencies = {
17
- '@storybook/core-server': storybook7VersionToInstall,
18
- '@storybook/addon-essentials': storybook7VersionToInstall,
19
- };
20
- const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
21
- packageJson.dependencies ??= {};
22
- packageJson.devDependencies ??= {};
23
- // Needed for Storybook 7
24
- // https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-peer-dependencies-required
25
- if (!packageJson.dependencies['react'] &&
26
- !packageJson.devDependencies['react']) {
27
- dependencies['react'] = versions_1.reactVersion;
28
- }
29
- if (!packageJson.dependencies['react-dom'] &&
30
- !packageJson.devDependencies['react-dom']) {
31
- dependencies['react-dom'] = versions_1.reactVersion;
32
- }
33
- if (options.uiFramework) {
34
- devDependencies[options.uiFramework] = storybook7VersionToInstall;
35
- const isPnpm = (0, devkit_1.detectPackageManager)(tree.root) === 'pnpm';
36
- if (isPnpm) {
37
- // If it's pnpm, it needs the framework without the builder
38
- // as a dependency too (eg. @storybook/react)
39
- const matchResult = options.uiFramework?.match(/^@storybook\/(\w+)/);
40
- const uiFrameworkWithoutBuilder = matchResult ? matchResult[0] : null;
41
- if (uiFrameworkWithoutBuilder) {
42
- devDependencies[uiFrameworkWithoutBuilder] = storybook7VersionToInstall;
43
- }
44
- }
45
- if (options.uiFramework === '@storybook/vue3-vite') {
46
- if (!packageJson.dependencies['@storybook/vue3'] &&
47
- !packageJson.devDependencies['@storybook/vue3']) {
48
- devDependencies['@storybook/vue3'] = storybook7VersionToInstall;
49
- }
50
- }
51
- if (options.uiFramework === '@storybook/angular') {
52
- if (!packageJson.dependencies['@angular/forms'] &&
53
- !packageJson.devDependencies['@angular/forms']) {
54
- devDependencies['@angular/forms'] = '*';
55
- }
56
- }
57
- if (options.uiFramework === '@storybook/web-components-vite' ||
58
- options.uiFramework === '@storybook/web-components-webpack5') {
59
- devDependencies['lit'] = versions_1.litVersion;
60
- }
61
- if (options.uiFramework.endsWith('-vite')) {
62
- if (!packageJson.dependencies['vite'] &&
63
- !packageJson.devDependencies['vite']) {
64
- devDependencies['vite'] = versions_1.viteVersion;
65
- }
66
- }
67
- }
68
- return (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies);
69
- }
70
- exports.ensureDependencies = ensureDependencies;
@@ -1,2 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- export declare function updateGitignore(tree: Tree): void;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateGitignore = void 0;
4
- function updateGitignore(tree) {
5
- if (!tree.exists('.gitignore')) {
6
- return;
7
- }
8
- const gitignore = tree.read('.gitignore', 'utf-8');
9
- const regex = /storybook-static/gm;
10
- const hasStorybookStatic = regex.test(gitignore ?? '');
11
- if (hasStorybookStatic) {
12
- return;
13
- }
14
- tree.write('.gitignore', `${gitignore}\n\nstorybook-static`);
15
- }
16
- exports.updateGitignore = updateGitignore;
@@ -1,9 +0,0 @@
1
- import { CreateDependencies, CreateNodes } from '@nx/devkit';
2
- export interface StorybookPluginOptions {
3
- buildStorybookTargetName?: string;
4
- serveStorybookTargetName?: string;
5
- staticStorybookTargetName?: string;
6
- testStorybookTargetName?: string;
7
- }
8
- export declare const createDependencies: CreateDependencies;
9
- export declare const createNodes: CreateNodes<StorybookPluginOptions>;