index.js 12 KB

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 __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};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 require_pretty_hrtime=__commonJS({"../../node_modules/pretty-hrtime/index.js"(exports,module2){"use strict";var minimalDesc=["h","min","s","ms","\u03BCs","ns"],verboseDesc=["hour","minute","second","millisecond","microsecond","nanosecond"],convert=[3600,60,1,1e6,1e3,1];module2.exports=function(source,opts){var verbose,precise,i,spot,sourceAtStep,valAtStep,decimals,strAtStep,results,totalSeconds;if(verbose=!1,precise=!1,opts&&(verbose=opts.verbose||!1,precise=opts.precise||!1),!Array.isArray(source)||source.length!==2||typeof source[0]!="number"||typeof source[1]!="number")return"";for(source[1]<0&&(totalSeconds=source[0]+source[1]/1e9,source[0]=parseInt(totalSeconds),source[1]=parseFloat((totalSeconds%1).toPrecision(9))*1e9),results="",i=0;i<6&&(spot=i<3?0:1,sourceAtStep=source[spot],i!==3&&i!==0&&(sourceAtStep=sourceAtStep%convert[i-1]),i===2&&(sourceAtStep+=source[1]/1e9),valAtStep=sourceAtStep/convert[i],!(valAtStep>=1&&(verbose&&(valAtStep=Math.floor(valAtStep)),precise?strAtStep=valAtStep.toString():(decimals=valAtStep>=10?0:2,strAtStep=valAtStep.toFixed(decimals)),strAtStep.indexOf(".")>-1&&strAtStep[strAtStep.length-1]==="0"&&(strAtStep=strAtStep.replace(/\.?0+$/,"")),results&&(results+=" "),results+=strAtStep,verbose?(results+=" "+verboseDesc[i],strAtStep!=="1"&&(results+="s")):results+=" "+minimalDesc[i],!verbose)));i++);return results}}});var src_exports={};__export(src_exports,{bail:()=>bail,build:()=>build,corePresets:()=>corePresets,executor:()=>executor,getConfig:()=>getConfig,getVirtualModules:()=>getVirtualModules,overridePresets:()=>overridePresets,printDuration:()=>printDuration,start:()=>start});module.exports=__toCommonJS(src_exports);var import_webpack=__toESM(require("webpack")),import_webpack_dev_middleware=__toESM(require("webpack-dev-middleware")),import_webpack_hot_middleware=__toESM(require("webpack-hot-middleware")),import_node_logger=require("@storybook/node-logger"),import_core_webpack2=require("@storybook/core-webpack"),import_path2=require("path"),import_express=__toESM(require("express")),import_fs_extra=__toESM(require("fs-extra")),import_core_events=require("@storybook/core-events"),import_server_errors=require("@storybook/core-events/server-errors"),import_pretty_hrtime=__toESM(require_pretty_hrtime());var import_core_common=require("@storybook/core-common"),import_path=require("path");function slash(path){return path.startsWith("\\\\?\\")?path:path.replace(/\\/g,"/")}var import_core_webpack=require("@storybook/core-webpack"),getVirtualModules=async options=>{var _a;let virtualModules={},builderOptions=await(0,import_core_common.getBuilderOptions)(options),workingDir=process.cwd(),isProd=options.configType==="PRODUCTION",nonNormalizedStories=await options.presets.apply("stories",[]),entries=[],stories=(0,import_core_common.normalizeStories)(nonNormalizedStories,{configDir:options.configDir,workingDir}),previewAnnotations=[...(await options.presets.apply("previewAnnotations",[],options)).map(entry=>typeof entry=="object"?entry.absolute:(0,import_path.isAbsolute)(entry)?entry:slash(entry)),(0,import_core_common.loadPreviewOrConfigFile)(options)].filter(Boolean);if((_a=options.features)!=null&&_a.storyStoreV7){let storiesFilename="storybook-stories.js",storiesPath=(0,import_path.resolve)((0,import_path.join)(workingDir,storiesFilename)),needPipelinedImport=!!builderOptions.lazyCompilation&&!isProd;virtualModules[storiesPath]=(0,import_core_webpack.toImportFn)(stories,{needPipelinedImport});let configEntryPath=(0,import_path.resolve)((0,import_path.join)(workingDir,"storybook-config-entry.js"));virtualModules[configEntryPath]=(0,import_core_common.handlebars)(await(0,import_core_common.readTemplate)(require.resolve("@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars")),{storiesFilename,previewAnnotations}).replace(/\\/g,"\\\\"),entries.push(configEntryPath)}else{let rendererName=await(0,import_core_common.getRendererName)(options),rendererInitEntry=(0,import_path.resolve)((0,import_path.join)(workingDir,"storybook-init-renderer-entry.js"));virtualModules[rendererInitEntry]=`import '${slash(rendererName)}';`,entries.push(rendererInitEntry);let entryTemplate=await(0,import_core_common.readTemplate)(require.resolve("@storybook/builder-webpack5/templates/virtualModuleEntry.template.js"));if(previewAnnotations.forEach(previewAnnotationFilename=>{if(!previewAnnotationFilename)return;let entryFilename=previewAnnotationFilename.startsWith(".")?`${previewAnnotationFilename.replace(/(\w)(\/|\\)/g,"$1-")}-generated-config-entry.js`:`${previewAnnotationFilename}-generated-config-entry.js`;virtualModules[entryFilename]=(0,import_core_common.interpolate)(entryTemplate,{previewAnnotationFilename}),entries.push(entryFilename)}),stories.length>0){let storyTemplate=await(0,import_core_common.readTemplate)(require.resolve("@storybook/builder-webpack5/templates/virtualModuleStory.template.js")),storiesFilename=(0,import_path.resolve)((0,import_path.join)(workingDir,"generated-stories-entry.cjs"));virtualModules[storiesFilename]=(0,import_core_common.interpolate)(storyTemplate,{rendererName}).replace("'{{stories}}'",stories.map(import_core_webpack.toRequireContextString).join(",")),entries.push(storiesFilename)}}return{virtualModules,entries}};var printDuration=startTime=>(0,import_pretty_hrtime.default)(process.hrtime(startTime)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),getAbsolutePath=input=>(0,import_path2.dirname)(require.resolve((0,import_path2.join)(input,"package.json"))),compilation,reject,executor={get:async options=>{var _a;let version=await options.presets.apply("webpackVersion")||"5",webpackInstance=((_a=await options.presets.apply("webpackInstance"))==null?void 0:_a.default)||import_webpack.default;return(0,import_core_webpack2.checkWebpackVersion)({version},"5","builder-webpack5"),webpackInstance}},getConfig=async options=>{let{presets}=options,typescriptOptions=await presets.apply("typescript",{},options),frameworkOptions=await presets.apply("frameworkOptions");return presets.apply("webpack",{},{...options,typescriptOptions,frameworkOptions})},asyncIterator,bail=async()=>{if(asyncIterator)try{await asyncIterator.throw(new Error)}catch{}return reject&&reject(),new Promise((res,rej)=>{if(process&&compilation)try{compilation.close(()=>res()),import_node_logger.logger.warn("Force closed preview build")}catch{import_node_logger.logger.warn("Unable to close preview build!"),res()}else res()})},starter=async function*({startTime,options,router,channel}){var _a,_b;let webpackInstance=await executor.get(options);yield;let config=await getConfig(options);if(config.stats==="none"||config.stats==="summary")throw new import_server_errors.WebpackMissingStatsError;yield;let compiler=webpackInstance(config);if(!compiler)throw new import_server_errors.WebpackInvocationError({error:new Error("Missing Webpack compiler at runtime!")});yield;let modulesCount=await((_a=options.cache)==null?void 0:_a.get("modulesCount").catch(()=>{}))||1e3,totalModules,value=0;new import_webpack.ProgressPlugin({handler:(newValue,message,arg3)=>{value=Math.max(newValue,value);let progress={value,message:message.charAt(0).toUpperCase()+message.slice(1)};if(message==="building"){let counts=arg3&&arg3.match(/(\d+)\/(\d+)/)||[],complete=parseInt(counts[1],10),total=parseInt(counts[2],10);!Number.isNaN(complete)&&!Number.isNaN(total)&&(progress.modules={complete,total},totalModules=total)}value===1&&(options.cache&&options.cache.set("modulesCount",totalModules),progress.message||(progress.message=`Completed in ${printDuration(startTime)}.`)),channel.emit(import_core_events.PREVIEW_BUILDER_PROGRESS,progress)},modulesCount}).apply(compiler);let middlewareOptions={publicPath:(_b=config.output)==null?void 0:_b.publicPath,writeToDisk:!0,stats:"errors-only"};compilation=(0,import_webpack_dev_middleware.default)(compiler,middlewareOptions);let previewResolvedDir=getAbsolutePath("@storybook/preview"),previewDirOrigin=(0,import_path2.join)(previewResolvedDir,"dist");router.use("/sb-preview",import_express.default.static(previewDirOrigin,{immutable:!0,maxAge:"5m"})),router.use(compilation),router.use((0,import_webpack_hot_middleware.default)(compiler,{log:!1}));let stats=await new Promise((res,rej)=>{compilation==null||compilation.waitUntilValid(res),reject=rej});if(yield,!stats)throw new import_server_errors.WebpackMissingStatsError;let{warnings,errors}=getWebpackStats({config,stats});if(warnings.length>0&&(warnings==null||warnings.forEach(e=>import_node_logger.logger.warn(e.message))),errors.length>0)throw new import_server_errors.WebpackCompilationError({errors});return{bail,stats,totalTime:process.hrtime(startTime)}};function getWebpackStats({config,stats}){let statsOptions=typeof config.stats=="string"?config.stats:{...config.stats,warnings:!0,errors:!0},{warnings=[],errors=[]}=(stats==null?void 0:stats.toJson(statsOptions))||{};return{warnings,errors}}var builder=async function*({startTime,options}){let webpackInstance=await executor.get(options);yield;let config=await getConfig(options);if(config.stats==="none"||config.stats==="summary")throw new import_server_errors.WebpackMissingStatsError;yield;let compiler=webpackInstance(config);if(!compiler)throw new import_server_errors.WebpackInvocationError({error:new Error("Missing Webpack compiler at runtime!")});let webpackCompilation=new Promise((succeed,fail)=>{compiler.run((error,stats)=>{if(error){compiler.close(()=>fail(new import_server_errors.WebpackInvocationError({error})));return}if(!stats)throw new import_server_errors.WebpackMissingStatsError;let{warnings,errors}=getWebpackStats({config,stats});if(warnings.length>0&&(warnings==null||warnings.forEach(e=>import_node_logger.logger.warn(e.message))),errors.length>0){errors.forEach(e=>import_node_logger.logger.error(e.message)),compiler.close(()=>fail(new import_server_errors.WebpackCompilationError({errors})));return}compiler.close(closeErr=>closeErr?fail(new import_server_errors.WebpackInvocationError({error:closeErr})):succeed(stats))})}),previewResolvedDir=getAbsolutePath("@storybook/preview"),previewDirOrigin=(0,import_path2.join)(previewResolvedDir,"dist"),previewDirTarget=(0,import_path2.join)(options.outputDir||"","sb-preview"),previewFiles=import_fs_extra.default.copy(previewDirOrigin,previewDirTarget,{filter:src=>{let{ext}=(0,import_path2.parse)(src);return ext?ext===".js":!0}}),[webpackCompilationOutput]=await Promise.all([webpackCompilation,previewFiles]);return webpackCompilationOutput},start=async options=>{asyncIterator=starter(options);let result;do result=await asyncIterator.next();while(!result.done);return result.value},build=async options=>{asyncIterator=builder(options);let result;do result=await asyncIterator.next();while(!result.done);return result.value},corePresets=[(0,import_path2.join)(__dirname,"presets/preview-preset.js")],overridePresets=[(0,import_path2.join)(__dirname,"./presets/custom-webpack-preset.js")];0&&(module.exports={bail,build,corePresets,executor,getConfig,getVirtualModules,overridePresets,printDuration,start});