@storybook/addon-webpack5-compiler-swc
Version:
Adds SWC as a Webpack5 compiler to Storybook
1 lines • 1.45 kB
JavaScript
var c=require('fs'),e=require('path'),common=require('storybook/internal/common');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var c__default=/*#__PURE__*/_interopDefault(c);var e__default=/*#__PURE__*/_interopDefault(e);var r=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,s)=>(typeof require<"u"?require:o)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var m=[/storybook-config-entry\.js$/,/storybook-stories\.js$/],i=common.getProjectRoot();function f(){return [process.env.SWC_CONFIG_PATH??"",e__default.default.join(process.cwd(),".swcrc"),e__default.default.join(i,".swcrc")].find(o=>c__default.default.existsSync(o))??null}var n=f(),O=async(t,o)=>{let s=n?JSON.parse(c__default.default.readFileSync(n,"utf-8")):{},p={...s??{},env:{bugfixes:true,...s.env??{}},jsc:{...s.jsc??{},transform:{react:{runtime:"automatic",...s.jsc?.transform?.react??{}},...s.jsc?.transform??{}},parser:{tsx:true,dynamicImport:true,...s.jsc?.parser??{},syntax:s.jsc?.parser?.syntax??"typescript"}}},a=await o.presets.apply("swc",p,o),l=await o.presets.apply("typescript",{},o);return t.module={...t.module||{},rules:[...t.module?.rules||[],{test:l.skipCompiler?/\.((c|m)?jsx?)$/:/\.((c|m)?(j|t)sx?)$/,use:[{loader:r.resolve("swc-loader"),options:a}],include:[i],exclude:[/node_modules/,...m]}]},t};exports.webpackFinal=O;
;