@storybook/codemod 8.0.0-beta.3 → 8.0.0-beta.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,6 @@
1
+ import { FileInfo } from 'jscodeshift';
2
+
3
+ declare function transform(info: FileInfo): Promise<void>;
4
+ declare const parser = "tsx";
5
+
6
+ export { transform as default, parser };
@@ -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",
3
+ "version": "8.0.0-beta.5",
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.3",
61
- "@storybook/node-logger": "8.0.0-beta.3",
62
- "@storybook/types": "8.0.0-beta.3",
61
+ "@storybook/csf-tools": "8.0.0-beta.5",
62
+ "@storybook/node-logger": "8.0.0-beta.5",
63
+ "@storybook/types": "8.0.0-beta.5",
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",