UNPKG

@jenssimon/webpack-config-sfcc

Version:

A shareable Webpack configuration for SFCC projects

46 lines 1.68 kB
/** * Rules to transpile JavaScript and TypeScript files using swc (https://swc.rs/). * * You can change setting by providing a `.swcrc` file in the root of your project * (see https://swc.rs/docs/configuring-swc). * This also uses the browserslist configuration (see https://github.com/browserslist/browserslist#config-file). */ const swc = (cartridge, { swcTarget: target, transformNodeModules, sourceMap, }) => { // Some packages from `node_modules` need to be transpiled. You can specify a list of packages using the // `transformNodeModules` option. // eslint-disable-next-line unicorn/consistent-boolean-name const exclude = (name) => (name.includes('node_modules') ? (transformNodeModules ?? []).every((module) => !new RegExp(String.raw `node_modules[/\\]?${module}`).test(name)) : false); // to reduce DRY code const swcConfig = (test, syntax) => ({ test, exclude, use: { loader: 'swc-loader', options: { jsc: { parser: { syntax, decorators: true, }, transform: { useDefineForClassFields: false, }, target, externalHelpers: true, }, ...sourceMap && { sourceMap: true, inlineSourcesContent: true, }, }, }, }); return [ swcConfig(/\.m?js$/), swcConfig(/\.ts$/, 'typescript'), ]; }; export default swc; //# sourceMappingURL=swc.js.map