UNPKG

6.74 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/compile.ts"],"names":["compile","root","source","output","babelrc","configFile","modules","copyFlow","report","files","glob","sync","cwd","absolute","nodir","ignore","info","chalk","blue","String","length","path","relative","Promise","all","map","filepath","outputFilename","join","replace","fs","mkdirp","dirname","test","copy","content","readFile","result","babel","transformAsync","sourceMaps","filename","presets","require","resolve","targets","browserslist","findConfig","browsers","node","useBuiltIns","plugins","Error","code","mapFilename","basename","writeFileSync","JSON","stringify","writeFile","success"],"mappings":"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","sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\nimport * as babel from '@babel/core';\nimport browserslist from 'browserslist';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n babelrc?: boolean | null | undefined;\n configFile?: string | false | null | undefined;\n modules: 'commonjs' | false;\n copyFlow: boolean | undefined;\n};\n\nexport default async function compile({\n root,\n source,\n output,\n babelrc = false,\n configFile = false,\n modules,\n copyFlow,\n report,\n}: Options) {\n const files = glob.sync('**/*', {\n cwd: source,\n absolute: true,\n nodir: true,\n ignore: '**/{__tests__,__fixtures__,__mocks__}/**',\n });\n\n report.info(\n `Compiling ${chalk.blue(String(files.length))} files in ${chalk.blue(\n path.relative(root, source)\n )} with ${chalk.blue('babel')}`\n );\n\n await Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(/\\.(jsx?|tsx?)$/, '.js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!/\\.(jsx?|tsx?)$/.test(filepath)) {\n // Copy files which aren't source code\n fs.copy(filepath, outputFilename);\n return;\n }\n\n const content = await fs.readFile(filepath, 'utf-8');\n const result = await babel.transformAsync(content, {\n babelrc: babelrc,\n configFile: configFile,\n sourceMaps: true,\n filename: filepath,\n ...(babelrc || configFile\n ? null\n : {\n presets: [\n [\n require.resolve('@babel/preset-env'),\n {\n // @ts-ignore\n targets: browserslist.findConfig(root) ?? {\n browsers: [\n '>1%',\n 'last 2 chrome versions',\n 'last 2 edge versions',\n 'last 2 firefox versions',\n 'last 2 safari versions',\n 'not dead',\n 'not ie <= 11',\n 'not op_mini all',\n 'not android <= 4.4',\n 'not samsung <= 4',\n ],\n node: '10',\n },\n useBuiltIns: false,\n modules,\n },\n ],\n require.resolve('@babel/preset-react'),\n require.resolve('@babel/preset-typescript'),\n require.resolve('@babel/preset-flow'),\n ],\n plugins: [\n require.resolve('@babel/plugin-proposal-class-properties'),\n ],\n }),\n });\n\n if (result == null) {\n throw new Error('Output code was null');\n }\n\n let code = result.code;\n\n if (result.map) {\n const mapFilename = outputFilename + '.map';\n code += '\\n//# sourceMappingURL=' + path.basename(mapFilename);\n\n fs.writeFileSync(mapFilename, JSON.stringify(result.map));\n }\n\n await fs.writeFile(outputFilename, code);\n\n if (copyFlow) {\n fs.copy(filepath, outputFilename + '.flow');\n }\n })\n );\n\n report.success(`Wrote files to ${chalk.blue(path.relative(root, output))}`);\n}\n"],"file":"compile.js"}
\No newline at end of file