Sha256: cdaa2535b5ee8242092077175a9b8460fe797e0ebecc1034770fb8221e2b999b
Contents?: true
Size: 1.2 KB
Versions: 3
Compression:
Stored size: 1.2 KB
Contents
/* eslint global-require: 0 */ /* eslint import/no-dynamic-require: 0 */ const { resolve } = require("path") const { existsSync } = require("fs") const { merge } = require("webpack-merge") const isJsxFile = (filename) => !!filename.match(/\.(jsx|tsx)?(\.erb)?$/) const isTypescriptFile = (filename) => !!filename.match(/\.(ts|tsx)?(\.erb)?$/) const getCustomConfig = () => { const path = resolve("config", "swc.config.js") if (existsSync(path)) { return require(path) } return {} } const getSwcLoaderConfig = (filenameToProcess) => { const customConfig = getCustomConfig() const defaultConfig = { loader: require.resolve("swc-loader"), options: { jsc: { parser: { dynamicImport: true, syntax: isTypescriptFile(filenameToProcess) ? "typescript" : "ecmascript", [isTypescriptFile(filenameToProcess) ? "tsx" : "jsx"]: isJsxFile(filenameToProcess) }, loose: true }, sourceMaps: true, env: { coreJs: 3, exclude: ["transform-typeof-symbol"], mode: "entry" } } } return merge(defaultConfig, customConfig) } module.exports = { getSwcLoaderConfig }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
shakapacker-8.1.0 | package/swc/index.js |
shakapacker-8.0.2 | package/swc/index.js |
shakapacker-8.0.1 | package/swc/index.js |