@storybook/codemod 8.0.0-beta.3 → 8.0.0-beta.4
Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var find_implicit_spies_exports={};__export(find_implicit_spies_exports,{default:()=>transform,parser:()=>parser});module.exports=__toCommonJS(find_implicit_spies_exports);var import_csf_tools=require("@storybook/csf-tools"),babel=__toESM(require("@babel/core")),import_types=require("@babel/types");function findImplicitSpies(path,file,keys){path.traverse({Identifier:identifier=>{!keys.includes(identifier.node.name)&&/^on[A-Z].*/.test(identifier.node.name)&&console.warn(identifier.buildCodeFrameError(`${file} Possible implicit spy found`).message)}})}function getAnnotationKeys(file,storyName,annotationName){let argKeys=[];return file.path.traverse({AssignmentExpression:path=>{let left=path.get("left");if(!left.isMemberExpression())return;let object=left.get("object");if(!(object.isIdentifier()&&object.node.name===storyName))return;let property=left.get("property"),right=path.get("right");property.isIdentifier()&&property.node.name===annotationName&&right.isObjectExpression()&&argKeys.push(...right.node.properties.flatMap(value=>(0,import_types.isObjectProperty)(value)&&(0,import_types.isIdentifier)(value.key)?[value.key.name]:[]))},VariableDeclarator:path=>{let id=path.get("id"),init=path.get("init");if(!(id.isIdentifier()&&id.node.name===storyName)||!init.isObjectExpression())return;let args=init.get("properties").flatMap(it=>it.isObjectProperty()?[it]:[]).find(it=>{let argKey=it.get("key");return argKey.isIdentifier()&&argKey.node.name===annotationName});if(!args)return;let argsValue=args.get("value");!argsValue||!argsValue.isObjectExpression()||argKeys.push(...argsValue.node.properties.flatMap(value=>(0,import_types.isObjectProperty)(value)&&(0,import_types.isIdentifier)(value.key)?[value.key.name]:[]))}}),argKeys}var getObjectExpressionKeys=node=>(0,import_types.isObjectExpression)(node)?node.properties.flatMap(value=>(0,import_types.isObjectProperty)(value)&&(0,import_types.isIdentifier)(value.key)?[value.key.name]:[]):[];async function transform(info){let csf=(0,import_csf_tools.loadCsf)(info.source,{makeTitle:title=>title}),fileNode=csf._ast,file=new babel.File({filename:info.path},{code:info.source,ast:fileNode});csf.parse();let metaKeys=[...getObjectExpressionKeys(csf._metaAnnotations.args),...getObjectExpressionKeys(csf._metaAnnotations.argTypes)];Object.entries(csf.stories).forEach(([key,{name}])=>{if(!name)return;let allKeys=[...metaKeys,...getAnnotationKeys(file,name,"args"),...getAnnotationKeys(file,name,"argTypes")];file.path.traverse({AssignmentExpression:path=>{let left=path.get("left");if(!left.isMemberExpression())return;let object=left.get("object");if(!(object.isIdentifier()&&object.node.name===name))return;let property=left.get("property");property.isIdentifier()&&property.node.name==="play"&&findImplicitSpies(path,info.path,allKeys)},VariableDeclarator:path=>{let id=path.get("id"),init=path.get("init");if(!(id.isIdentifier()&&id.node.name===name)||!init.isObjectExpression())return;let play=init.get("properties").flatMap(it=>it.isObjectProperty()?[it]:[]).find(it=>{let argKey=it.get("key");return argKey.isIdentifier()&&argKey.node.name==="play"});play&&findImplicitSpies(play,info.path,allKeys)}})})}var parser="tsx";0&&(module.exports={parser});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@storybook/codemod",
|
3
|
-
"version": "8.0.0-beta.
|
3
|
+
"version": "8.0.0-beta.4",
|
4
4
|
"description": "A collection of codemod scripts written with JSCodeshift",
|
5
5
|
"keywords": [
|
6
6
|
"storybook"
|
@@ -29,6 +29,7 @@
|
|
29
29
|
"./dist/transforms/add-component-parameters.js": "./dist/transforms/add-component-parameters.js",
|
30
30
|
"./dist/transforms/csf-2-to-3.js": "./dist/transforms/csf-2-to-3.js",
|
31
31
|
"./dist/transforms/csf-hoist-story-annotations.js": "./dist/transforms/csf-hoist-story-annotations.js",
|
32
|
+
"./dist/transforms/find-implicit-spies.js": "./dist/transforms/find-implicit-spies.js",
|
32
33
|
"./dist/transforms/move-builtin-addons.js": "./dist/transforms/move-builtin-addons.js",
|
33
34
|
"./dist/transforms/mdx-to-csf.js": "./dist/transforms/mdx-to-csf.js",
|
34
35
|
"./dist/transforms/migrate-to-test-package.js": "./dist/transforms/migrate-to-test-package.js",
|
@@ -57,9 +58,9 @@
|
|
57
58
|
"@babel/preset-env": "^7.23.2",
|
58
59
|
"@babel/types": "^7.23.0",
|
59
60
|
"@storybook/csf": "^0.1.2",
|
60
|
-
"@storybook/csf-tools": "8.0.0-beta.
|
61
|
-
"@storybook/node-logger": "8.0.0-beta.
|
62
|
-
"@storybook/types": "8.0.0-beta.
|
61
|
+
"@storybook/csf-tools": "8.0.0-beta.4",
|
62
|
+
"@storybook/node-logger": "8.0.0-beta.4",
|
63
|
+
"@storybook/types": "8.0.0-beta.4",
|
63
64
|
"@types/cross-spawn": "^6.0.2",
|
64
65
|
"cross-spawn": "^7.0.3",
|
65
66
|
"globby": "^11.0.2",
|
@@ -93,6 +94,7 @@
|
|
93
94
|
"./src/transforms/add-component-parameters.js",
|
94
95
|
"./src/transforms/csf-2-to-3.ts",
|
95
96
|
"./src/transforms/csf-hoist-story-annotations.js",
|
97
|
+
"./src/transforms/find-implicit-spies.ts",
|
96
98
|
"./src/transforms/mdx-to-csf.ts",
|
97
99
|
"./src/transforms/migrate-to-test-package.ts",
|
98
100
|
"./src/transforms/move-builtin-addons.js",
|