index.js 2.2 KB

1
  1. "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __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 __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{getFrameworks:()=>getFrameworks,presetsAddPreset:()=>addPreset});module.exports=__toCommonJS(src_exports);function addPreset(preset,presetOptions,{api,root}){let j=api.jscodeshift,moduleExports=[];root.find(j.AssignmentExpression).filter(assignment=>assignment.node.left.type==="MemberExpression"&&assignment.node.left.object.name==="module"&&assignment.node.left.property.name==="exports").forEach(exp=>moduleExports.push(exp));let exportArray=null;switch(moduleExports.length){case 0:{exportArray=j.arrayExpression([]);let exportStatement=j.assignmentStatement("=",j.memberExpression(j.identifier("module"),j.identifier("exports")),exportArray);root.get().node.program.body.push(exportStatement);break}case 1:exportArray=moduleExports[0].node.right;break;default:throw new Error("Multiple module export statements")}let presetConfig=j.literal(preset);if(presetOptions){let optionsJson=`const x = ${JSON.stringify(presetOptions)}`,optionsNode=j(optionsJson).find(j.VariableDeclarator).get().node.init;presetConfig=j.objectExpression([j.property("init",j.identifier("name"),j.literal(preset)),j.property("init",j.identifier("options"),optionsNode)])}exportArray.elements.push(presetConfig)}var FRAMEWORKS=["angular","ember","html","preact","react","react-native","svelte","vue","web-components"],getFrameworks=({dependencies,devDependencies})=>{let allDeps={};return Object.assign(allDeps,dependencies||{}),Object.assign(allDeps,devDependencies||{}),FRAMEWORKS.filter(f=>!!allDeps[`@storybook/${f}`])};0&&(module.exports={getFrameworks,presetsAddPreset});