@storybook/codemod 7.0.0-beta.52 → 7.0.0-beta.54

Sign up to get free protection for your applications and to get access to all the features.
package/jest.config.js CHANGED
@@ -5,4 +5,5 @@ const baseConfig = require('../../jest.config.node');
5
5
  module.exports = {
6
6
  ...baseConfig,
7
7
  displayName: __dirname.split(path.sep).slice(-2).join(path.posix.sep),
8
+ resetMocks: true,
8
9
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/codemod",
3
- "version": "7.0.0-beta.52",
3
+ "version": "7.0.0-beta.54",
4
4
  "description": "A collection of codemod scripts written with JSCodeshift",
5
5
  "keywords": [
6
6
  "storybook"
@@ -24,13 +24,13 @@
24
24
  ".": {
25
25
  "node": "./dist/index.js",
26
26
  "require": "./dist/index.js",
27
- "import": "./dist/index.mjs",
28
27
  "types": "./dist/index.d.ts"
29
28
  },
30
29
  "./dist/transforms/add-component-parameters.js": "./dist/transforms/add-component-parameters.js",
31
30
  "./dist/transforms/csf-2-to-3.js": "./dist/transforms/csf-2-to-3.js",
32
31
  "./dist/transforms/csf-hoist-story-annotations.js": "./dist/transforms/csf-hoist-story-annotations.js",
33
32
  "./dist/transforms/move-builtin-addons.js": "./dist/transforms/move-builtin-addons.js",
33
+ "./dist/transforms/mdx-to-csf.js": "./dist/transforms/mdx-to-csf.js",
34
34
  "./dist/transforms/storiesof-to-csf.js": "./dist/transforms/storiesof-to-csf.js",
35
35
  "./dist/transforms/update-addon-info.js": "./dist/transforms/update-addon-info.js",
36
36
  "./dist/transforms/update-organisation-name.js": "./dist/transforms/update-organisation-name.js",
@@ -39,7 +39,6 @@
39
39
  "./package.json": "./package.json"
40
40
  },
41
41
  "main": "dist/index.js",
42
- "module": "dist/index.mjs",
43
42
  "types": "dist/index.d.ts",
44
43
  "scripts": {
45
44
  "check": "../../../scripts/node_modules/.bin/tsc --noEmit",
@@ -50,9 +49,9 @@
50
49
  "@babel/preset-env": "^7.20.2",
51
50
  "@babel/types": "^7.20.7",
52
51
  "@storybook/csf": "next",
53
- "@storybook/csf-tools": "7.0.0-beta.52",
54
- "@storybook/node-logger": "7.0.0-beta.52",
55
- "@storybook/types": "7.0.0-beta.52",
52
+ "@storybook/csf-tools": "7.0.0-beta.54",
53
+ "@storybook/node-logger": "7.0.0-beta.54",
54
+ "@storybook/types": "7.0.0-beta.54",
56
55
  "cross-spawn": "^7.0.3",
57
56
  "globby": "^11.0.2",
58
57
  "jscodeshift": "^0.14.0",
@@ -66,25 +65,37 @@
66
65
  "ansi-regex": "^5.0.1",
67
66
  "jest": "^29.3.1",
68
67
  "jest-specific-snapshot": "^7.0.0",
69
- "typescript": "~4.9.3"
68
+ "mdast-util-mdx-jsx": "^2.1.2",
69
+ "mdast-util-mdxjs-esm": "^1.3.1",
70
+ "remark": "^14.0.2",
71
+ "remark-mdx": "^2.2.1",
72
+ "ts-dedent": "^2.2.0",
73
+ "typescript": "~4.9.3",
74
+ "unist-util-is": "^5.2.0",
75
+ "unist-util-select": "^4.0.3",
76
+ "unist-util-visit": "^4.1.2",
77
+ "vfile": "^5.3.7"
70
78
  },
71
79
  "publishConfig": {
72
80
  "access": "public"
73
81
  },
74
82
  "bundler": {
75
- "platform": "node",
76
83
  "entries": [
77
84
  "./src/index.js",
78
85
  "./src/transforms/add-component-parameters.js",
79
86
  "./src/transforms/csf-2-to-3.ts",
80
87
  "./src/transforms/csf-hoist-story-annotations.js",
88
+ "./src/transforms/mdx-to-csf.ts",
81
89
  "./src/transforms/move-builtin-addons.js",
82
90
  "./src/transforms/storiesof-to-csf.js",
83
91
  "./src/transforms/update-addon-info.js",
84
92
  "./src/transforms/update-organisation-name.js",
85
93
  "./src/transforms/upgrade-deprecated-types.ts",
86
94
  "./src/transforms/upgrade-hierarchy-separators.js"
95
+ ],
96
+ "formats": [
97
+ "cjs"
87
98
  ]
88
99
  },
89
- "gitHead": "1f559ed69a4fdd8eeb88e4190b16a8932104908e"
100
+ "gitHead": "dbdaa1b77a1f00ea90d6c1f018bf0c772d7b9afd"
90
101
  }
package/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-param-reassign */
1
2
  /* eslint import/prefer-default-export: "off" */
2
3
  import fs from 'fs';
3
4
  import path from 'path';
@@ -55,16 +56,22 @@ export async function runCodemod(codemod, { glob, logger, dryRun, rename, parser
55
56
 
56
57
  const files = await globby([glob, '!**/node_modules', '!**/dist']);
57
58
  logger.log(`=> Applying ${codemod}: ${files.length} files`);
58
- if (!dryRun) {
59
+ if (files.length === 0) {
60
+ logger.log(`=> No matching files for glob: ${glob}`);
61
+ return;
62
+ }
63
+
64
+ if (!dryRun && files.length > 0) {
59
65
  const parserArgs = inferredParser ? ['--parser', inferredParser] : [];
60
- spawnSync(
61
- 'npx',
66
+ const result = spawnSync(
67
+ 'node',
62
68
  [
63
- 'jscodeshift',
69
+ require.resolve('jscodeshift/bin/jscodeshift'),
64
70
  // this makes sure codeshift doesn't transform our own source code with babel
65
71
  // which is faster, and also makes sure the user won't see babel messages such as:
66
72
  // [BABEL] Note: The code generator has deoptimised the styling of repo/node_modules/prettier/index.js as it exceeds the max of 500KB.
67
73
  '--no-babel',
74
+ '--fail-on-error',
68
75
  '-t',
69
76
  `${TRANSFORM_DIR}/${codemod}.js`,
70
77
  ...parserArgs,
@@ -75,6 +82,15 @@ export async function runCodemod(codemod, { glob, logger, dryRun, rename, parser
75
82
  shell: true,
76
83
  }
77
84
  );
85
+ if (result.status === 1) {
86
+ logger.log('Skipped renaming because of errors.');
87
+ return;
88
+ }
89
+ }
90
+
91
+ if (!renameParts && codemod === 'mdx-to-csf') {
92
+ renameParts = ['.stories.mdx', '.mdx'];
93
+ rename = '.stories.mdx:.mdx;';
78
94
  }
79
95
 
80
96
  if (renameParts) {