@storybook/vue3-vite 8.0.7 → 8.0.9
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.
|
@@ -1215,7 +1215,19 @@ type FrameworkOptions = {
|
|
|
1215
1215
|
* "vue-component-meta" will become the new default in the future and "vue-docgen-api" will be removed.
|
|
1216
1216
|
* @default "vue-docgen-api"
|
|
1217
1217
|
*/
|
|
1218
|
-
docgen?: VueDocgenPlugin
|
|
1218
|
+
docgen?: VueDocgenPlugin | {
|
|
1219
|
+
plugin: 'vue-component-meta';
|
|
1220
|
+
/**
|
|
1221
|
+
* Tsconfig filename to use. Should be set if your main `tsconfig.json` includes references to other tsconfig files
|
|
1222
|
+
* like `tsconfig.app.json`.
|
|
1223
|
+
* Otherwise docgen might not be generated correctly (e.g. import aliases are not resolved).
|
|
1224
|
+
*
|
|
1225
|
+
* For further information, see our [docs](https://storybook.js.org/docs/get-started/vue3-vite#override-the-default-configuration).
|
|
1226
|
+
*
|
|
1227
|
+
* @default "tsconfig.json"
|
|
1228
|
+
*/
|
|
1229
|
+
tsconfig: `tsconfig${string}.json`;
|
|
1230
|
+
};
|
|
1219
1231
|
};
|
|
1220
1232
|
type StorybookConfigFramework = {
|
|
1221
1233
|
framework: FrameworkName | {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { F as FrameworkOptions, S as StorybookConfig, a as VueDocgenInfo, b as VueDocgenInfoEntry, V as VueDocgenPlugin } from './index-
|
|
1
|
+
export { F as FrameworkOptions, S as StorybookConfig, a as VueDocgenInfo, b as VueDocgenInfoEntry, V as VueDocgenPlugin } from './index-3db95f6e.js';
|
|
2
2
|
import '@storybook/builder-vite';
|
|
3
3
|
import 'file-system-cache';
|
|
4
4
|
import 'http';
|
package/dist/preset.d.ts
CHANGED
package/dist/preset.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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 preset_exports={};__export(preset_exports,{core:()=>core,viteFinal:()=>viteFinal});module.exports=__toCommonJS(preset_exports);var import_path2=require("path");var import_find_package_json=__toESM(require("find-package-json")),import_promises=__toESM(require("fs/promises")),import_magic_string=__toESM(require("magic-string")),import_path=__toESM(require("path")),import_vue_component_meta=require("vue-component-meta"),import_vue_docgen_api=require("vue-docgen-api");async function vueComponentMeta(){let{createFilter}=await import("vite"),filter=createFilter(/\.(vue|ts|js|tsx|jsx)$/,/\.stories\.(ts|tsx|js|jsx)$|^\/virtual:|^\/sb-preview\/|\.storybook\/.*\.(ts|js)$/),checker=await
|
|
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 preset_exports={};__export(preset_exports,{core:()=>core,viteFinal:()=>viteFinal});module.exports=__toCommonJS(preset_exports);var import_path2=require("path");var import_find_package_json=__toESM(require("find-package-json")),import_promises=__toESM(require("fs/promises")),import_magic_string=__toESM(require("magic-string")),import_path=__toESM(require("path")),import_vue_component_meta=require("vue-component-meta"),import_vue_docgen_api=require("vue-docgen-api");async function vueComponentMeta(tsconfigPath="tsconfig.json"){let{createFilter}=await import("vite"),filter=createFilter(/\.(vue|ts|js|tsx|jsx)$/,/\.stories\.(ts|tsx|js|jsx)$|^\/virtual:|^\/sb-preview\/|\.storybook\/.*\.(ts|js)$/),checker=await createVueComponentMetaChecker(tsconfigPath);return{name:"storybook:vue-component-meta-plugin",async transform(src,id){if(filter(id))try{let exportNames=checker.getExportNames(id),componentsMeta=exportNames.map(name=>checker.getComponentMeta(id,name));componentsMeta=await applyTempFixForEventDescriptions(id,componentsMeta);let metaSources=[];if(componentsMeta.forEach((meta,index)=>{if(!meta.props.length&&!meta.events.length&&!meta.slots.length&&!meta.exposed.length||meta.type===import_vue_component_meta.TypeMeta.Unknown)return;let exportName=exportNames[index],exposed=meta.exposed.filter(expose=>{let nameWithoutOnPrefix=expose.name;return nameWithoutOnPrefix.startsWith("on")&&(nameWithoutOnPrefix=lowercaseFirstLetter(expose.name.replace("on",""))),!meta.events.find(event=>event.name===nameWithoutOnPrefix)}).filter(expose=>expose.name==="$slots"?!meta.slots.map(slot=>slot.name).every(slotName=>expose.type.includes(slotName)):!0);metaSources.push({exportName,displayName:exportName==="default"?getFilenameWithoutExtension(id):exportName,...meta,exposed,sourceFiles:id})}),metaSources.length===0)return;let s=new import_magic_string.default(src);return metaSources.forEach(meta=>{let isDefaultExport=meta.exportName==="default",name=isDefaultExport?"_sfc_main":meta.exportName;new RegExp(`export {.*${name}.*}`).test(src)||new RegExp(`export \\* from ['"]\\S*${name}['"]`).test(src)||!src.includes(name)||(!id.endsWith(".vue")&&isDefaultExport&&(s.replace("export default ","const _sfc_main = "),s.append(`
|
|
2
2
|
export default _sfc_main;`)),s.append(`
|
|
3
|
-
;${name}.__docgenInfo = ${JSON.stringify(meta)}`))}),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}catch{return}}}}async function
|
|
3
|
+
;${name}.__docgenInfo = ${JSON.stringify(meta)}`))}),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}catch{return}}}}async function createVueComponentMetaChecker(tsconfigPath="tsconfig.json"){let checkerOptions={forceUseTs:!0,noDeclarations:!0,printer:{newLine:1}},projectRoot=getProjectRoot(),projectTsConfigPath=import_path.default.join(projectRoot,tsconfigPath),defaultChecker=(0,import_vue_component_meta.createCheckerByJson)(projectRoot,{include:["**/*"]},checkerOptions);return await fileExists(projectTsConfigPath)?(await getTsConfigReferences(projectTsConfigPath)).length>0?defaultChecker:(0,import_vue_component_meta.createChecker)(projectTsConfigPath,checkerOptions):defaultChecker}function getProjectRoot(){let projectRoot=(0,import_find_package_json.default)().next().value?.path??"",currentFileDir=import_path.default.dirname(__filename),relativePathToProjectRoot=import_path.default.relative(currentFileDir,projectRoot);return import_path.default.resolve(currentFileDir,relativePathToProjectRoot)}function getFilenameWithoutExtension(filename){return import_path.default.parse(filename).name}function lowercaseFirstLetter(string){return string.charAt(0).toLowerCase()+string.slice(1)}async function fileExists(fullPath){try{return await import_promises.default.stat(fullPath),!0}catch{return!1}}async function applyTempFixForEventDescriptions(filename,componentMeta){if(!componentMeta.some(meta=>meta.events.length))return componentMeta;try{let parsedComponentDocs=await(0,import_vue_docgen_api.parseMulti)(filename);componentMeta.map((meta,index)=>{let eventsWithDescription=parsedComponentDocs[index].events;return!meta.events.length||!eventsWithDescription?.length||(meta.events=meta.events.map(event=>{let description=eventsWithDescription.find(i=>i.name===event.name)?.description;return description&&(event.description=description),event})),meta})}catch{}return componentMeta}async function getTsConfigReferences(tsConfigPath){try{let content=JSON.parse(await import_promises.default.readFile(tsConfigPath,"utf-8"));return!("references"in content)||!Array.isArray(content.references)?[]:content.references}catch{return[]}}var import_magic_string2=__toESM(require("magic-string")),import_vue_docgen_api2=require("vue-docgen-api");async function vueDocgen(){let{createFilter}=await import("vite"),filter=createFilter(/\.(vue)$/);return{name:"storybook:vue-docgen-plugin",async transform(src,id){if(!filter(id))return;let metaData=await(0,import_vue_docgen_api2.parse)(id),s=new import_magic_string2.default(src);return s.append(`;_sfc_main.__docgenInfo = ${JSON.stringify(metaData)}`),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}}}var getAbsolutePath=input=>(0,import_path2.dirname)(require.resolve((0,import_path2.join)(input,"package.json"))),core={builder:getAbsolutePath("@storybook/builder-vite"),renderer:getAbsolutePath("@storybook/vue3")},viteFinal=async(config,options)=>{let plugins=[],framework=await options.presets.apply("framework"),frameworkOptions=typeof framework=="string"?{}:framework.options??{},docgen=resolveDocgenOptions(frameworkOptions.docgen);docgen.plugin==="vue-component-meta"?plugins.push(await vueComponentMeta(docgen.tsconfig)):plugins.push(await vueDocgen());let{mergeConfig}=await import("vite");return mergeConfig(config,{plugins,resolve:{alias:{vue:"vue/dist/vue.esm-bundler.js"}}})},resolveDocgenOptions=docgen=>docgen?typeof docgen=="string"?{plugin:docgen}:docgen:{plugin:"vue-docgen-api"};0&&(module.exports={core,viteFinal});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/vue3-vite",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.9",
|
|
4
4
|
"description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@storybook/builder-vite": "8.0.
|
|
51
|
-
"@storybook/core-server": "8.0.
|
|
52
|
-
"@storybook/vue3": "8.0.
|
|
50
|
+
"@storybook/builder-vite": "8.0.9",
|
|
51
|
+
"@storybook/core-server": "8.0.9",
|
|
52
|
+
"@storybook/vue3": "8.0.9",
|
|
53
53
|
"find-package-json": "^1.2.0",
|
|
54
54
|
"magic-string": "^0.30.0",
|
|
55
55
|
"typescript": "^5.0.0",
|