UNPKG

@procore/core-scripts

Version:

A CLI to enhance your development experience

175 lines 5.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createConfigForReact = createConfigForReact; exports.createConfigForLib = createConfigForLib; exports.createConfigForDependencies = createConfigForDependencies; const tslib_1 = require("tslib"); const getCacheIdentifier_1 = tslib_1.__importDefault(require("react-dev-utils/getCacheIdentifier")); const path_1 = tslib_1.__importDefault(require("path")); /** * @see https://babeljs.io/docs/options#targets * @see https://browsersl.ist/#q=defaults * `default` is a shortcut for `> 0.5%, last 2 versions, Firefox ESR, not dead`. */ const targets = 'defaults'; const corejsVersion = require('core-js/package.json').version; const runtimeVersion = require('@babel/runtime/package.json').version; // https://github.com/facebook/create-react-app/blob/main/packages/babel-preset-react-app/create.js#L176 const transformRuntimeOptions = { // By default, babel assumes babel/runtime version 7.0.0-beta.0, // explicitly resolving to match the provided helper functions. // https://github.com/babel/babel/issues/10261 version: runtimeVersion, // Undocumented option that lets us encapsulate our runtime, ensuring // the correct version is used // https://github.com/babel/babel/blob/090c364a90fe73d36a30707fc612ce037bdbbb24/packages/babel-plugin-transform-runtime/src/index.js#L35-L42 absoluteRuntime: path_1.default.dirname(require.resolve('@babel/runtime/package.json')), }; function createConfigForReact(options) { const isProduction = options.env === 'production'; return { babelrc: false, cacheCompression: false, cacheDirectory: true, cacheIdentifier: (0, getCacheIdentifier_1.default)(options.env, [ 'babel-plugin-named-asset-import', 'react-dev-utils', ]), assumptions: { privateFieldsAsProperties: true, setPublicClassFields: true, }, compact: isProduction, configFile: false, targets, plugins: [ [ require.resolve('@babel/plugin-transform-runtime'), transformRuntimeOptions, ], [ require.resolve('babel-plugin-named-asset-import'), { loaderMap: { svg: { ReactComponent: '@svgr/webpack?-svgo,+titleProp,+ref![path]', }, }, }, ], [ require.resolve('babel-plugin-styled-components'), { minify: true, ssr: false, displayName: true, fileName: false, transpileTemplateLiterals: true, pure: false, }, ], ], presets: [ [ require.resolve('@babel/preset-env'), { useBuiltIns: 'usage', corejs: corejsVersion, }, ], [ require.resolve('@babel/preset-react'), { useBuiltIns: true, }, ], require.resolve('@babel/preset-typescript'), ], }; } function createConfigForLib(env) { const isProduction = env === 'production'; return { babelrc: false, cacheCompression: isProduction, cacheDirectory: true, compact: isProduction, configFile: false, assumptions: { privateFieldsAsProperties: true, setPublicClassFields: true, }, plugins: [ [ require.resolve('@babel/plugin-proposal-export-default-from'), { loose: true, }, ], [ require.resolve('babel-plugin-named-asset-import'), { loaderMap: { svg: { ReactComponent: '@svgr/webpack?-svgo,+titleProp,+ref![path]', }, }, }, ], ], presets: [ [ require.resolve('@babel/preset-env'), { useBuiltIns: false, }, ], [ require.resolve('@babel/preset-react'), { useBuiltIns: true, }, ], [ require.resolve('@babel/preset-typescript'), { useBuiltIns: true, }, ], ], }; } function createConfigForDependencies(options) { return { babelrc: false, cacheCompression: false, cacheDirectory: true, cacheIdentifier: (0, getCacheIdentifier_1.default)(options.env, ['react-dev-utils']), compact: false, configFile: false, sourceType: 'unambiguous', targets, assumptions: { privateFieldsAsProperties: true, setPublicClassFields: true, }, plugins: [ [ require.resolve('@babel/plugin-transform-runtime'), transformRuntimeOptions, ], ], presets: [ [ require.resolve('@babel/preset-env'), { useBuiltIns: 'usage', corejs: corejsVersion, }, ], ], sourceMaps: options.shouldUseSourceMap, inputSourceMap: options.shouldUseSourceMap, }; } //# sourceMappingURL=config.js.map