Sha256: fb4fe6ad311acdea1d0ae9d8343d0a0bc0e85c1a28f13d197c03f72c9e724373
Contents?: true
Size: 1.2 KB
Versions: 28
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
28 entries across 28 versions & 1 rubygems