@storybook/cli 7.0.0-alpha.21 → 7.0.0-alpha.25

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 (41) hide show
  1. package/dist/cjs/automigrate/fixes/builder-vite.js +1 -3
  2. package/dist/cjs/detect.js +2 -18
  3. package/dist/cjs/generators/RAX/index.js +1 -3
  4. package/dist/cjs/generators/baseGenerator.js +18 -14
  5. package/dist/cjs/initiate.js +10 -3
  6. package/dist/cjs/js-package-manager/JsPackageManager.js +59 -10
  7. package/dist/cjs/js-package-manager/JsPackageManagerFactory.js +25 -11
  8. package/dist/cjs/js-package-manager/NPMProxy.js +6 -0
  9. package/dist/cjs/js-package-manager/Yarn1Proxy.js +6 -0
  10. package/dist/cjs/js-package-manager/Yarn2Proxy.js +6 -0
  11. package/dist/cjs/js-package-manager/index.js +0 -13
  12. package/dist/cjs/repro-generators/scripts.js +1 -1
  13. package/dist/cjs/repro-templates.js +49 -14
  14. package/dist/cjs/versions.js +78 -75
  15. package/dist/esm/automigrate/fixes/builder-vite.js +1 -2
  16. package/dist/esm/detect.js +2 -17
  17. package/dist/esm/generators/RAX/index.js +1 -2
  18. package/dist/esm/generators/baseGenerator.js +18 -14
  19. package/dist/esm/initiate.js +10 -3
  20. package/dist/esm/js-package-manager/JsPackageManager.js +55 -9
  21. package/dist/esm/js-package-manager/JsPackageManagerFactory.js +25 -11
  22. package/dist/esm/js-package-manager/NPMProxy.js +6 -0
  23. package/dist/esm/js-package-manager/Yarn1Proxy.js +6 -0
  24. package/dist/esm/js-package-manager/Yarn2Proxy.js +6 -0
  25. package/dist/esm/js-package-manager/index.js +1 -2
  26. package/dist/esm/repro-generators/scripts.js +1 -1
  27. package/dist/esm/repro-templates.js +48 -15
  28. package/dist/esm/versions.js +78 -75
  29. package/dist/types/detect.d.ts +2 -2
  30. package/dist/types/js-package-manager/JsPackageManager.d.ts +13 -0
  31. package/dist/types/js-package-manager/JsPackageManagerFactory.d.ts +1 -1
  32. package/dist/types/js-package-manager/NPMProxy.d.ts +4 -0
  33. package/dist/types/js-package-manager/Yarn1Proxy.d.ts +6 -0
  34. package/dist/types/js-package-manager/Yarn2Proxy.d.ts +6 -0
  35. package/dist/types/js-package-manager/index.d.ts +0 -1
  36. package/dist/types/repro-templates.d.ts +54 -14
  37. package/dist/types/versions.d.ts +3 -0
  38. package/package.json +9 -16
  39. package/dist/cjs/js-package-manager/PackageJsonHelper.js +0 -33
  40. package/dist/esm/js-package-manager/PackageJsonHelper.js +0 -17
  41. package/dist/types/js-package-manager/PackageJsonHelper.d.ts +0 -3
@@ -13,8 +13,6 @@ var _csfTools = require("@storybook/csf-tools");
13
13
 
14
14
  var _coreCommon = require("@storybook/core-common");
15
15
 
16
- var _jsPackageManager = require("../../js-package-manager");
17
-
18
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
17
 
20
18
  const logger = console;
@@ -93,7 +91,7 @@ const builderVite = {
93
91
  if (!dryRun) {
94
92
  delete dependencies['storybook-builder-vite'];
95
93
  delete devDependencies['storybook-builder-vite'];
96
- (0, _jsPackageManager.writePackageJson)(packageJson);
94
+ packageManager.writePackageJson(packageJson);
97
95
  }
98
96
 
99
97
  logger.info(`Adding '@storybook/builder-vite' as dev dependency`);
@@ -19,8 +19,6 @@ var _project_types = require("./project_types");
19
19
 
20
20
  var _helpers = require("./helpers");
21
21
 
22
- var _jsPackageManager = require("./js-package-manager");
23
-
24
22
  var _detectNextjs = require("./detect-nextjs");
25
23
 
26
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -145,15 +143,8 @@ function isStorybookInstalled(dependencies, force) {
145
143
  return false;
146
144
  }
147
145
 
148
- function detectLanguage() {
146
+ function detectLanguage(packageJson) {
149
147
  let language = _project_types.SupportedLanguage.JAVASCRIPT;
150
- let packageJson;
151
-
152
- try {
153
- packageJson = (0, _jsPackageManager.readPackageJson)();
154
- } catch (err) {//
155
- }
156
-
157
148
  const bowerJson = (0, _helpers.getBowerJson)();
158
149
 
159
150
  if (!packageJson && !bowerJson) {
@@ -167,14 +158,7 @@ function detectLanguage() {
167
158
  return language;
168
159
  }
169
160
 
170
- function detect(options = {}) {
171
- let packageJson;
172
-
173
- try {
174
- packageJson = (0, _jsPackageManager.readPackageJson)();
175
- } catch (err) {//
176
- }
177
-
161
+ function detect(packageJson, options = {}) {
178
162
  const bowerJson = (0, _helpers.getBowerJson)();
179
163
 
180
164
  if (!packageJson && !bowerJson) {
@@ -7,8 +7,6 @@ exports.default = void 0;
7
7
 
8
8
  var _baseGenerator = require("../baseGenerator");
9
9
 
10
- var _jsPackageManager = require("../../js-package-manager");
11
-
12
10
  const generator = async (packageManager, npmOptions, options) => {
13
11
  const [latestRaxVersion] = await packageManager.getVersions('rax');
14
12
  const packageJson = packageManager.retrievePackageJson();
@@ -20,7 +18,7 @@ const generator = async (packageManager, npmOptions, options) => {
20
18
  packageJson.dependencies['rax-link'] = packageJson.dependencies['rax-link'] || raxVersion;
21
19
  packageJson.dependencies['rax-text'] = packageJson.dependencies['rax-text'] || raxVersion;
22
20
  packageJson.dependencies['rax-view'] = packageJson.dependencies['rax-view'] || raxVersion;
23
- (0, _jsPackageManager.writePackageJson)(packageJson);
21
+ packageManager.writePackageJson(packageJson);
24
22
  await (0, _baseGenerator.baseGenerator)(packageManager, npmOptions, options, 'rax', {
25
23
  extraPackages: ['rax']
26
24
  });
@@ -69,6 +69,7 @@ const getFrameworkDetails = (renderer, builder, pnp) => {
69
69
  return {
70
70
  packages: [rendererPackage],
71
71
  framework: rendererPackagePath,
72
+ rendererId: 'angular',
72
73
  type: 'framework'
73
74
  };
74
75
  }
@@ -77,6 +78,7 @@ const getFrameworkDetails = (renderer, builder, pnp) => {
77
78
  return {
78
79
  packages: [frameworkPackage],
79
80
  framework: frameworkPackagePath,
81
+ rendererId: renderer,
80
82
  type: 'framework'
81
83
  };
82
84
  }
@@ -86,6 +88,7 @@ const getFrameworkDetails = (renderer, builder, pnp) => {
86
88
  packages: [rendererPackage, builderPackage],
87
89
  builder: builderPackagePath,
88
90
  renderer: rendererPackagePath,
91
+ rendererId: renderer,
89
92
  type: 'renderer'
90
93
  };
91
94
  }
@@ -95,7 +98,7 @@ const getFrameworkDetails = (renderer, builder, pnp) => {
95
98
 
96
99
  const stripVersions = addons => addons.map(addon => (0, _jsPackageManager.getPackageDetails)(addon)[0]);
97
100
 
98
- const hasInteractiveStories = framework => ['react', 'angular', 'preact', 'svelte', 'vue', 'vue3', 'html'].includes(framework);
101
+ const hasInteractiveStories = rendererId => ['react', 'angular', 'preact', 'svelte', 'vue', 'vue3', 'html'].includes(rendererId);
99
102
 
100
103
  async function baseGenerator(packageManager, npmOptions, {
101
104
  language,
@@ -113,13 +116,23 @@ async function baseGenerator(packageManager, npmOptions, {
113
116
  addESLint,
114
117
  extraMain,
115
118
  extensions
116
- } = Object.assign({}, defaultOptions, options); // added to main.js
119
+ } = Object.assign({}, defaultOptions, options);
120
+ const {
121
+ packages: frameworkPackages,
122
+ type,
123
+ // @ts-ignore
124
+ renderer: rendererInclude,
125
+ // deepscan-disable-line UNUSED_DECL
126
+ rendererId,
127
+ framework: frameworkInclude,
128
+ builder: builderInclude
129
+ } = getFrameworkDetails(renderer, builder, pnp); // added to main.js
117
130
 
118
131
  const addons = ['@storybook/addon-links', '@storybook/addon-essentials', ...stripVersions(extraAddonPackages)]; // added to package.json
119
132
 
120
133
  const addonPackages = ['@storybook/addon-links', '@storybook/addon-essentials', ...extraAddonPackages];
121
134
 
122
- if (hasInteractiveStories(renderer)) {
135
+ if (hasInteractiveStories(rendererId)) {
123
136
  addons.push('@storybook/addon-interactions');
124
137
  addonPackages.push('@storybook/addon-interactions', '@storybook/testing-library');
125
138
  }
@@ -127,16 +140,7 @@ async function baseGenerator(packageManager, npmOptions, {
127
140
  const yarn2ExtraPackages = packageManager.type === 'yarn2' ? ['@storybook/addon-docs', '@mdx-js/react@1.x.x'] : [];
128
141
  const files = await _fsExtra.default.readdir(process.cwd());
129
142
  const packageJson = packageManager.retrievePackageJson();
130
- const installedDependencies = new Set(Object.keys(Object.assign({}, packageJson.dependencies, packageJson.devDependencies)));
131
- const {
132
- packages: frameworkPackages,
133
- type,
134
- // @ts-ignore
135
- renderer: rendererInclude,
136
- // deepscan-disable-line UNUSED_DECL
137
- framework: frameworkInclude,
138
- builder: builderInclude
139
- } = getFrameworkDetails(renderer, builder, pnp); // TODO: We need to start supporting this at some point
143
+ const installedDependencies = new Set(Object.keys(Object.assign({}, packageJson.dependencies, packageJson.devDependencies))); // TODO: We need to start supporting this at some point
140
144
 
141
145
  if (type === 'renderer') {
142
146
  throw new Error((0, _tsDedent.dedent)`
@@ -169,7 +173,7 @@ async function baseGenerator(packageManager, npmOptions, {
169
173
  } // FIXME: temporary workaround for https://github.com/storybookjs/storybook/issues/17516
170
174
 
171
175
 
172
- if (frameworkPackages.includes('@storybook/builder-vite')) {
176
+ if (frameworkPackages.find(pkg => pkg.match(/^@storybook\/.*-vite$/))) {
173
177
  const previewHead = (0, _tsDedent.dedent)`
174
178
  <script>
175
179
  window.global = window;
@@ -72,7 +72,14 @@ const installStorybook = (projectType, packageManager, options) => {
72
72
  installAsDevDependencies: true,
73
73
  skipInstall: options.skipInstall
74
74
  };
75
- const language = (0, _detect.detectLanguage)();
75
+ let packageJson;
76
+
77
+ try {
78
+ packageJson = packageManager.readPackageJson();
79
+ } catch (err) {//
80
+ }
81
+
82
+ const language = (0, _detect.detectLanguage)(packageJson);
76
83
  const generatorOptions = {
77
84
  language,
78
85
  builder: options.builder || (0, _detect.detectBuilder)(packageManager),
@@ -249,7 +256,7 @@ async function initiate(options, pkg) {
249
256
  process.exit(1);
250
257
  }
251
258
  } else {
252
- projectType = (0, _detect.detect)(options);
259
+ projectType = (0, _detect.detect)(packageJson, options);
253
260
  }
254
261
  } catch (ex) {
255
262
  done(ex.message);
@@ -266,7 +273,7 @@ async function initiate(options, pkg) {
266
273
  }
267
274
 
268
275
  await (0, _automigrate.automigrate)({
269
- yes: process.env.CI === 'true'
276
+ yes: options.yes || process.env.CI === 'true'
270
277
  });
271
278
  logger.log('\nTo run your Storybook, type:\n');
272
279
  (0, _helpers.codeLog)([packageManager.getRunStorybookCommand()]);
@@ -12,9 +12,11 @@ var _semver = require("@storybook/semver");
12
12
 
13
13
  var _crossSpawn = require("cross-spawn");
14
14
 
15
- var _helpers = require("../helpers");
15
+ var _path = _interopRequireDefault(require("path"));
16
+
17
+ var _fs = _interopRequireDefault(require("fs"));
16
18
 
17
- var _PackageJsonHelper = require("./PackageJsonHelper");
19
+ var _helpers = require("../helpers");
18
20
 
19
21
  var _versions = _interopRequireDefault(require("../versions"));
20
22
 
@@ -42,13 +44,31 @@ function getPackageDetails(pkg) {
42
44
  }
43
45
 
44
46
  class JsPackageManager {
45
- constructor() {
46
- this.type = void 0;
47
+ // NOTE: for some reason yarn prefers the npm registry in
48
+ // local development, so always use npm
49
+ setRegistryURL(url) {
50
+ if (url) {
51
+ this.executeCommand('npm', ['config', 'set', 'registry', url]);
52
+ } else {
53
+ this.executeCommand('npm', ['config', 'delete', 'registry']);
54
+ }
47
55
  }
48
56
 
57
+ getRegistryURL() {
58
+ const url = this.executeCommand('npm', ['config', 'get', 'registry']).trim();
59
+ return url === 'undefined' ? undefined : url;
60
+ }
61
+
62
+ constructor(options) {
63
+ this.type = void 0;
64
+ this.cwd = void 0;
65
+ this.cwd = options === null || options === void 0 ? void 0 : options.cwd;
66
+ }
49
67
  /**
50
68
  * Install dependencies listed in `package.json`
51
69
  */
70
+
71
+
52
72
  installDependencies() {
53
73
  let done = (0, _helpers.commandLog)('Preparing to install dependencies');
54
74
  done();
@@ -65,6 +85,28 @@ class JsPackageManager {
65
85
 
66
86
  done();
67
87
  }
88
+
89
+ packageJsonPath() {
90
+ return this.cwd ? _path.default.resolve(this.cwd, 'package.json') : _path.default.resolve('package.json');
91
+ }
92
+
93
+ readPackageJson() {
94
+ const packageJsonPath = this.packageJsonPath();
95
+
96
+ if (!_fs.default.existsSync(packageJsonPath)) {
97
+ throw new Error(`Could not read package.json file at ${packageJsonPath}`);
98
+ }
99
+
100
+ const jsonContent = _fs.default.readFileSync(packageJsonPath, 'utf8');
101
+
102
+ return JSON.parse(jsonContent);
103
+ }
104
+
105
+ writePackageJson(packageJson) {
106
+ const content = `${JSON.stringify(packageJson, null, 2)}\n`;
107
+
108
+ _fs.default.writeFileSync(this.packageJsonPath(), content, 'utf8');
109
+ }
68
110
  /**
69
111
  * Read the `package.json` file available in the directory the command was call from
70
112
  * If there is no `package.json` it will create one.
@@ -75,10 +117,10 @@ class JsPackageManager {
75
117
  let packageJson;
76
118
 
77
119
  try {
78
- packageJson = (0, _PackageJsonHelper.readPackageJson)();
120
+ packageJson = this.readPackageJson();
79
121
  } catch (err) {
80
122
  this.initPackageJson();
81
- packageJson = (0, _PackageJsonHelper.readPackageJson)();
123
+ packageJson = this.readPackageJson();
82
124
  }
83
125
 
84
126
  return Object.assign({}, packageJson, {
@@ -123,7 +165,7 @@ class JsPackageManager {
123
165
  packageJson.dependencies = Object.assign({}, packageJson.dependencies, dependenciesMap);
124
166
  }
125
167
 
126
- (0, _PackageJsonHelper.writePackageJson)(packageJson);
168
+ this.writePackageJson(packageJson);
127
169
  } else {
128
170
  try {
129
171
  this.runAddDeps(dependencies, options.installAsDevDependencies);
@@ -165,7 +207,7 @@ class JsPackageManager {
165
207
  delete packageJson.dependencies[dep];
166
208
  }
167
209
  });
168
- (0, _PackageJsonHelper.writePackageJson)(packageJson);
210
+ this.writePackageJson(packageJson);
169
211
  } else {
170
212
  try {
171
213
  this.runRemoveDeps(dependencies);
@@ -272,7 +314,7 @@ class JsPackageManager {
272
314
  var _packageJson$eslintCo;
273
315
 
274
316
  const packageJson = this.retrievePackageJson();
275
- (0, _PackageJsonHelper.writePackageJson)(Object.assign({}, packageJson, {
317
+ this.writePackageJson(Object.assign({}, packageJson, {
276
318
  eslintConfig: Object.assign({}, packageJson.eslintConfig, {
277
319
  overrides: [...(((_packageJson$eslintCo = packageJson.eslintConfig) === null || _packageJson$eslintCo === void 0 ? void 0 : _packageJson$eslintCo.overrides) || []), {
278
320
  files: ['**/*.stories.*'],
@@ -286,13 +328,20 @@ class JsPackageManager {
286
328
 
287
329
  addScripts(scripts) {
288
330
  const packageJson = this.retrievePackageJson();
289
- (0, _PackageJsonHelper.writePackageJson)(Object.assign({}, packageJson, {
331
+ this.writePackageJson(Object.assign({}, packageJson, {
290
332
  scripts: Object.assign({}, packageJson.scripts, scripts)
291
333
  }));
292
334
  }
293
335
 
336
+ addPackageResolutions(versions) {
337
+ const packageJson = this.retrievePackageJson();
338
+ const resolutions = this.getResolutions(packageJson, versions);
339
+ this.writePackageJson(Object.assign({}, packageJson, resolutions));
340
+ }
341
+
294
342
  executeCommand(command, args, stdio) {
295
343
  const commandResult = (0, _crossSpawn.sync)(command, args, {
344
+ cwd: this.cwd,
296
345
  stdio: stdio ?? 'pipe',
297
346
  encoding: 'utf-8'
298
347
  });
@@ -16,21 +16,31 @@ var _Yarn2Proxy = require("./Yarn2Proxy");
16
16
  var _Yarn1Proxy = require("./Yarn1Proxy");
17
17
 
18
18
  class JsPackageManagerFactory {
19
- static getPackageManager(forceNpmUsage = false) {
19
+ static getPackageManager(forceNpmUsage = false, cwd) {
20
20
  if (forceNpmUsage) {
21
- return new _NPMProxy.NPMProxy();
21
+ return new _NPMProxy.NPMProxy({
22
+ cwd
23
+ });
22
24
  }
23
25
 
24
- const yarnVersion = getYarnVersion();
25
- const hasYarnLockFile = (0, _findUp.sync)('yarn.lock');
26
- const hasNPMCommand = hasNPM();
26
+ const yarnVersion = getYarnVersion(cwd);
27
+ const hasYarnLockFile = (0, _findUp.sync)('yarn.lock', {
28
+ cwd
29
+ });
30
+ const hasNPMCommand = hasNPM(cwd);
27
31
 
28
32
  if (yarnVersion && (hasYarnLockFile || !hasNPMCommand)) {
29
- return yarnVersion === 1 ? new _Yarn1Proxy.Yarn1Proxy() : new _Yarn2Proxy.Yarn2Proxy();
33
+ return yarnVersion === 1 ? new _Yarn1Proxy.Yarn1Proxy({
34
+ cwd
35
+ }) : new _Yarn2Proxy.Yarn2Proxy({
36
+ cwd
37
+ });
30
38
  }
31
39
 
32
40
  if (hasNPMCommand) {
33
- return new _NPMProxy.NPMProxy();
41
+ return new _NPMProxy.NPMProxy({
42
+ cwd
43
+ });
34
44
  }
35
45
 
36
46
  throw new Error('Unable to find a usable package manager within NPM, Yarn and Yarn 2');
@@ -40,13 +50,17 @@ class JsPackageManagerFactory {
40
50
 
41
51
  exports.JsPackageManagerFactory = JsPackageManagerFactory;
42
52
 
43
- function hasNPM() {
44
- const npmVersionCommand = (0, _crossSpawn.sync)('npm', ['--version']);
53
+ function hasNPM(cwd) {
54
+ const npmVersionCommand = (0, _crossSpawn.sync)('npm', ['--version'], {
55
+ cwd
56
+ });
45
57
  return npmVersionCommand.status === 0;
46
58
  }
47
59
 
48
- function getYarnVersion() {
49
- const yarnVersionCommand = (0, _crossSpawn.sync)('yarn', ['--version']);
60
+ function getYarnVersion(cwd) {
61
+ const yarnVersionCommand = (0, _crossSpawn.sync)('yarn', ['--version'], {
62
+ cwd
63
+ });
50
64
 
51
65
  if (yarnVersionCommand.status !== 0) {
52
66
  return undefined;
@@ -64,6 +64,12 @@ class NPMProxy extends _JsPackageManager.JsPackageManager {
64
64
  return this.uninstallArgs;
65
65
  }
66
66
 
67
+ getResolutions(packageJson, versions) {
68
+ return {
69
+ overrides: Object.assign({}, packageJson.overrides, versions)
70
+ };
71
+ }
72
+
67
73
  runInstall() {
68
74
  this.executeCommand('npm', this.getInstallArgs(), 'inherit');
69
75
  }
@@ -25,6 +25,12 @@ class Yarn1Proxy extends _JsPackageManager.JsPackageManager {
25
25
  return `yarn ${command}`;
26
26
  }
27
27
 
28
+ getResolutions(packageJson, versions) {
29
+ return {
30
+ resolutions: Object.assign({}, packageJson.resolutions, versions)
31
+ };
32
+ }
33
+
28
34
  runInstall() {
29
35
  this.executeCommand('yarn', [], 'inherit');
30
36
  }
@@ -25,6 +25,12 @@ class Yarn2Proxy extends _JsPackageManager.JsPackageManager {
25
25
  return `yarn ${command}`;
26
26
  }
27
27
 
28
+ getResolutions(packageJson, versions) {
29
+ return {
30
+ resolutions: Object.assign({}, packageJson.resolutions, versions)
31
+ };
32
+ }
33
+
28
34
  runInstall() {
29
35
  this.executeCommand('yarn', [], 'inherit');
30
36
  }
@@ -41,17 +41,4 @@ Object.keys(_PackageJson).forEach(function (key) {
41
41
  return _PackageJson[key];
42
42
  }
43
43
  });
44
- });
45
-
46
- var _PackageJsonHelper = require("./PackageJsonHelper");
47
-
48
- Object.keys(_PackageJsonHelper).forEach(function (key) {
49
- if (key === "default" || key === "__esModule") return;
50
- if (key in exports && exports[key] === _PackageJsonHelper[key]) return;
51
- Object.defineProperty(exports, key, {
52
- enumerable: true,
53
- get: function () {
54
- return _PackageJsonHelper[key];
55
- }
56
- });
57
44
  });
@@ -138,7 +138,7 @@ const configureYarn2ForE2E = async ({
138
138
  cwd
139
139
  }) => {
140
140
  const command = [// ⚠️ Need to set registry because Yarn 2 is not using the conf of Yarn 1 (URL is hardcoded in CircleCI config.yml)
141
- `yarn config set npmScopes --json '{ "storybook": { "npmRegistryServer": "http://localhost:6000/" } }'`, // Some required magic to be able to fetch deps from local registry
141
+ `yarn config set npmScopes --json '{ "storybook": { "npmRegistryServer": "http://localhost:6001/" } }'`, // Some required magic to be able to fetch deps from local registry
142
142
  `yarn config set unsafeHttpWhitelist --json '["localhost"]'`, // Disable fallback mode to make sure everything is required correctly
143
143
  `yarn config set pnpFallbackMode none`, // We need to be able to update lockfile when bootstrapping the examples
144
144
  `yarn config set enableImmutableInstalls false`, // Discard all YN0013 - FETCH_NOT_CACHED messages
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = {
7
+ const craTemplates = {
8
8
  'cra/default-js': {
9
9
  name: 'Create React App (Javascript)',
10
10
  script: 'npx create-react-app .',
@@ -24,18 +24,53 @@ var _default = {
24
24
  renderer: '@storybook/react',
25
25
  builder: '@storybook/builder-webpack5'
26
26
  }
27
- } // FIXME: missing documentation.json
28
- // 'angular/latest': {
29
- // name: 'Angular (latest)',
30
- // script:
31
- // 'npx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --skip-install=true --strict',
32
- // cadence: ['ci', 'daily', 'weekly'],
33
- // expected: {
34
- // framework: '@storybook/angular',
35
- // renderer: '@storybook/angular',
36
- // builder: '@storybook/builder-webpack5',
37
- // },
38
- // },
39
-
27
+ }
28
+ };
29
+ const reactViteTemplates = {
30
+ 'react-vite/default-js': {
31
+ name: 'React Vite (JS)',
32
+ script: 'yarn create vite . --template react',
33
+ cadence: ['ci', 'daily', 'weekly'],
34
+ expected: {
35
+ framework: '@storybook/react-vite',
36
+ renderer: '@storybook/react',
37
+ builder: '@storybook/builder-vite'
38
+ }
39
+ },
40
+ 'react-vite/default-ts': {
41
+ name: 'React Vite (TS)',
42
+ script: 'yarn create vite . --template react-ts',
43
+ cadence: ['ci', 'daily', 'weekly'],
44
+ expected: {
45
+ framework: '@storybook/react-vite',
46
+ renderer: '@storybook/react',
47
+ builder: '@storybook/builder-vite'
48
+ }
49
+ }
40
50
  };
51
+ const vue3ViteTemplates = {
52
+ 'vue3-vite/default-js': {
53
+ name: 'Vue3 Vite (JS)',
54
+ script: 'yarn create vite . --template vue',
55
+ cadence: ['ci', 'daily', 'weekly'],
56
+ expected: {
57
+ framework: '@storybook/vue3-vite',
58
+ renderer: '@storybook/vue3',
59
+ builder: '@storybook/builder-vite'
60
+ }
61
+ },
62
+ 'vue3-vite/default-ts': {
63
+ name: 'Vue3 Vite (TS)',
64
+ script: 'yarn create vite . --template vue-ts',
65
+ cadence: ['ci', 'daily', 'weekly'],
66
+ expected: {
67
+ framework: '@storybook/vue3-vite',
68
+ renderer: '@storybook/vue3',
69
+ builder: '@storybook/builder-vite'
70
+ }
71
+ }
72
+ };
73
+
74
+ var _default = Object.assign({}, craTemplates, reactViteTemplates, vue3ViteTemplates);
75
+
41
76
  exports.default = _default;