@babel/cli
Advanced tools
@@ -1,3 +0,17 @@ | ||
| import commander from "commander"; | ||
| import { buildExternalHelpers } from "@babel/core"; | ||
| "use strict"; | ||
| function _commander() { | ||
| const data = require("commander"); | ||
| _commander = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _core() { | ||
| const data = require("@babel/core"); | ||
| _core = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function collect(value, previousValue) { | ||
@@ -12,8 +26,8 @@ if (typeof value !== "string") return previousValue; | ||
| } | ||
| commander.option("-l, --whitelist [whitelist]", "Whitelist of helpers to ONLY include", collect); | ||
| commander.option("-t, --output-type [type]", "Type of output (global|umd|var)", "global"); | ||
| commander.usage("[options]"); | ||
| commander.parse(process.argv); | ||
| console.log(buildExternalHelpers(commander.whitelist, commander.outputType)); | ||
| _commander().option("-l, --whitelist [whitelist]", "Whitelist of helpers to ONLY include", collect); | ||
| _commander().option("-t, --output-type [type]", "Type of output (global|umd|var)", "global"); | ||
| _commander().usage("[options]"); | ||
| _commander().parse(process.argv); | ||
| console.log((0, _core().buildExternalHelpers)(_commander().whitelist, _commander().outputType)); | ||
| //# sourceMappingURL=babel-external-helpers.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["commander","buildExternalHelpers","collect","value","previousValue","values","split","push","option","usage","parse","process","argv","console","log","whitelist","outputType"],"sources":["../src/babel-external-helpers.ts"],"sourcesContent":["import commander from \"commander\";\nimport { buildExternalHelpers } from \"@babel/core\";\n\nfunction collect(\n value: string | any,\n previousValue: Array<string>,\n): Array<string> {\n // If the user passed the option with no value, like \"babel-external-helpers --whitelist\", do nothing.\n if (typeof value !== \"string\") return previousValue;\n\n const values = value.split(\",\");\n\n if (previousValue) {\n previousValue.push(...values);\n return previousValue;\n }\n return values;\n}\n\ncommander.option(\n \"-l, --whitelist [whitelist]\",\n \"Whitelist of helpers to ONLY include\",\n collect,\n);\ncommander.option(\n \"-t, --output-type [type]\",\n \"Type of output (global|umd|var)\",\n \"global\",\n);\n\ncommander.usage(\"[options]\");\ncommander.parse(process.argv);\n\nconsole.log(buildExternalHelpers(commander.whitelist, commander.outputType));\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,WAAW;AACjC,SAASC,oBAAoB,QAAQ,aAAa;AAElD,SAASC,OAAOA,CACdC,KAAmB,EACnBC,aAA4B,EACb;EAEf,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE,OAAOC,aAAa;EAEnD,MAAMC,MAAM,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;EAE/B,IAAIF,aAAa,EAAE;IACjBA,aAAa,CAACG,IAAI,CAAC,GAAGF,MAAM,CAAC;IAC7B,OAAOD,aAAa;EACtB;EACA,OAAOC,MAAM;AACf;AAEAL,SAAS,CAACQ,MAAM,CACd,6BAA6B,EAC7B,sCAAsC,EACtCN,OAAO,CACR;AACDF,SAAS,CAACQ,MAAM,CACd,0BAA0B,EAC1B,iCAAiC,EACjC,QAAQ,CACT;AAEDR,SAAS,CAACS,KAAK,CAAC,WAAW,CAAC;AAC5BT,SAAS,CAACU,KAAK,CAACC,OAAO,CAACC,IAAI,CAAC;AAE7BC,OAAO,CAACC,GAAG,CAACb,oBAAoB,CAACD,SAAS,CAACe,SAAS,EAAEf,SAAS,CAACgB,UAAU,CAAC,CAAC"} | ||
| {"version":3,"names":["_commander","data","require","_core","collect","value","previousValue","values","split","push","commander","option","usage","parse","process","argv","console","log","buildExternalHelpers","whitelist","outputType"],"sources":["../src/babel-external-helpers.ts"],"sourcesContent":["import commander from \"commander\";\nimport { buildExternalHelpers } from \"@babel/core\";\n\nfunction collect(\n value: string | any,\n previousValue: Array<string>,\n): Array<string> {\n // If the user passed the option with no value, like \"babel-external-helpers --whitelist\", do nothing.\n if (typeof value !== \"string\") return previousValue;\n\n const values = value.split(\",\");\n\n if (previousValue) {\n previousValue.push(...values);\n return previousValue;\n }\n return values;\n}\n\ncommander.option(\n \"-l, --whitelist [whitelist]\",\n \"Whitelist of helpers to ONLY include\",\n collect,\n);\ncommander.option(\n \"-t, --output-type [type]\",\n \"Type of output (global|umd|var)\",\n \"global\",\n);\n\ncommander.usage(\"[options]\");\ncommander.parse(process.argv);\n\nconsole.log(buildExternalHelpers(commander.whitelist, commander.outputType));\n"],"mappings":";;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,MAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAASG,OAAOA,CACdC,KAAmB,EACnBC,aAA4B,EACb;EAEf,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE,OAAOC,aAAa;EAEnD,MAAMC,MAAM,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;EAE/B,IAAIF,aAAa,EAAE;IACjBA,aAAa,CAACG,IAAI,CAAC,GAAGF,MAAM,CAAC;IAC7B,OAAOD,aAAa;EACtB;EACA,OAAOC,MAAM;AACf;AAEAG,YAAS,CAACC,MAAM,CACd,6BAA6B,EAC7B,sCAAsC,EACtCP,OAAO,CACR;AACDM,YAAS,CAACC,MAAM,CACd,0BAA0B,EAC1B,iCAAiC,EACjC,QAAQ,CACT;AAEDD,YAAS,CAACE,KAAK,CAAC,WAAW,CAAC;AAC5BF,YAAS,CAACG,KAAK,CAACC,OAAO,CAACC,IAAI,CAAC;AAE7BC,OAAO,CAACC,GAAG,CAAC,IAAAC,4BAAoB,EAACR,YAAS,CAACS,SAAS,EAAET,YAAS,CAACU,UAAU,CAAC,CAAC"} |
+52
-28
@@ -0,8 +1,32 @@ | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.default = _default; | ||
| function _slash() { | ||
| const data = require("slash"); | ||
| _slash = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _path() { | ||
| const data = require("path"); | ||
| _path = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _fs() { | ||
| const data = require("fs"); | ||
| _fs = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| var util = require("./util"); | ||
| var watcher = require("./watcher"); | ||
| function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
| function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
| import slash from "slash"; | ||
| import path from "path"; | ||
| import fs from "fs"; | ||
| import * as util from "./util.js"; | ||
| import * as watcher from "./watcher.js"; | ||
| const FILE_TYPE = Object.freeze({ | ||
@@ -15,8 +39,8 @@ NON_COMPILABLE: "NON_COMPILABLE", | ||
| function outputFileSync(filePath, data) { | ||
| (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? fs.mkdirSync : require("make-dir").sync)(path.dirname(filePath), { | ||
| (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? _fs().mkdirSync : require("make-dir").sync)(_path().dirname(filePath), { | ||
| recursive: true | ||
| }); | ||
| fs.writeFileSync(filePath, data); | ||
| _fs().writeFileSync(filePath, data); | ||
| } | ||
| export default function (_x) { | ||
| function _default(_x) { | ||
| return _ref.apply(this, arguments); | ||
@@ -34,11 +58,11 @@ } | ||
| _write = _asyncToGenerator(function* (src, base) { | ||
| let relative = path.relative(base, src); | ||
| let relative = _path().relative(base, src); | ||
| if (!util.isCompilableExtension(relative, cliOptions.extensions)) { | ||
| return FILE_TYPE.NON_COMPILABLE; | ||
| } | ||
| relative = util.withExtension(relative, cliOptions.keepFileExtension ? path.extname(relative) : cliOptions.outFileExtension); | ||
| relative = util.withExtension(relative, cliOptions.keepFileExtension ? _path().extname(relative) : cliOptions.outFileExtension); | ||
| const dest = getDest(relative, base); | ||
| try { | ||
| const res = yield util.compile(src, Object.assign({}, babelOptions, { | ||
| sourceFileName: slash(path.relative(dest + "/..", src)) | ||
| sourceFileName: _slash()(_path().relative(dest + "/..", src)) | ||
| })); | ||
@@ -58,3 +82,3 @@ if (!res) return FILE_TYPE.IGNORED; | ||
| } | ||
| res.map.file = path.basename(relative); | ||
| res.map.file = _path().basename(relative); | ||
| outputFileSync(mapLoc, JSON.stringify(res.map)); | ||
@@ -66,3 +90,3 @@ } | ||
| if (cliOptions.verbose) { | ||
| console.log(path.relative(process.cwd(), src) + " -> " + dest); | ||
| console.log(_path().relative(process.cwd(), src) + " -> " + dest); | ||
| } | ||
@@ -82,5 +106,5 @@ return FILE_TYPE.COMPILED; | ||
| if (cliOptions.relative) { | ||
| return path.join(base, cliOptions.outDir, filename); | ||
| return _path().join(base, cliOptions.outDir, filename); | ||
| } | ||
| return path.join(cliOptions.outDir, filename); | ||
| return _path().join(cliOptions.outDir, filename); | ||
| } | ||
@@ -94,5 +118,5 @@ function handleFile(_x4, _x5) { | ||
| if (cliOptions.copyFiles && written === FILE_TYPE.NON_COMPILABLE || cliOptions.copyIgnored && written === FILE_TYPE.IGNORED) { | ||
| const filename = path.relative(base, src); | ||
| const filename = _path().relative(base, src); | ||
| const dest = getDest(filename, base); | ||
| outputFileSync(dest, fs.readFileSync(src)); | ||
| outputFileSync(dest, _fs().readFileSync(src)); | ||
| util.chmod(src, dest); | ||
@@ -109,4 +133,4 @@ } | ||
| _handle = _asyncToGenerator(function* (filenameOrDir) { | ||
| if (!fs.existsSync(filenameOrDir)) return 0; | ||
| const stat = fs.statSync(filenameOrDir); | ||
| if (!_fs().existsSync(filenameOrDir)) return 0; | ||
| const stat = _fs().statSync(filenameOrDir); | ||
| if (stat.isDirectory()) { | ||
@@ -117,3 +141,3 @@ const dirname = filenameOrDir; | ||
| for (const filename of files) { | ||
| const src = path.join(dirname, filename); | ||
| const src = _path().join(dirname, filename); | ||
| const written = yield handleFile(src, dirname); | ||
@@ -125,3 +149,3 @@ if (written) count += 1; | ||
| const filename = filenameOrDir; | ||
| const written = yield handleFile(filename, path.dirname(filename)); | ||
| const written = yield handleFile(filename, _path().dirname(filename)); | ||
| return written ? 1 : 0; | ||
@@ -150,3 +174,3 @@ } | ||
| } | ||
| (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? fs.mkdirSync : require("make-dir").sync)(cliOptions.outDir, { | ||
| (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? _fs().mkdirSync : require("make-dir").sync)(cliOptions.outDir, { | ||
| recursive: true | ||
@@ -171,13 +195,13 @@ }); | ||
| const base = filenames[0]; | ||
| const absoluteBase = path.resolve(base); | ||
| const absoluteBase = _path().resolve(base); | ||
| getBase = filename => { | ||
| return filename === absoluteBase ? path.dirname(base) : base; | ||
| return filename === absoluteBase ? _path().dirname(base) : base; | ||
| }; | ||
| } else { | ||
| const filenameToBaseMap = new Map(filenames.map(filename => { | ||
| const absoluteFilename = path.resolve(filename); | ||
| return [absoluteFilename, path.dirname(filename)]; | ||
| const absoluteFilename = _path().resolve(filename); | ||
| return [absoluteFilename, _path().dirname(filename)]; | ||
| })); | ||
| const absoluteFilenames = new Map(filenames.map(filename => { | ||
| const absoluteFilename = path.resolve(filename); | ||
| const absoluteFilename = _path().resolve(filename); | ||
| return [absoluteFilename, filename]; | ||
@@ -187,3 +211,3 @@ })); | ||
| sep | ||
| } = path; | ||
| } = _path(); | ||
| getBase = filename => { | ||
@@ -190,0 +214,0 @@ const base = filenameToBaseMap.get(filename); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["slash","path","fs","util","watcher","FILE_TYPE","Object","freeze","NON_COMPILABLE","COMPILED","IGNORED","ERR_COMPILATION","outputFileSync","filePath","data","v","w","split","process","versions","node","mkdirSync","require","sync","dirname","recursive","writeFileSync","_x","_ref","apply","arguments","_asyncToGenerator","cliOptions","babelOptions","write","_x2","_x3","_write","src","base","relative","isCompilableExtension","extensions","withExtension","keepFileExtension","extname","outFileExtension","dest","getDest","res","compile","assign","sourceFileName","map","outputMap","sourceMaps","undefined","hasDataSourcemap","code","mapLoc","addSourceMappingUrl","file","basename","JSON","stringify","chmod","verbose","console","log","cwd","err","watch","error","filename","join","outDir","handleFile","_x4","_x5","_handleFile","written","copyFiles","copyIgnored","readFileSync","handle","_x6","_handle","filenameOrDir","existsSync","stat","statSync","isDirectory","count","files","readdir","includeDotfiles","compiledFiles","startTime","logSuccess","debounce","diff","hrtime","Math","round","enable","enableGlobbing","skipInitialBuild","deleteDirOnStart","deleteDir","filenames","quiet","flush","processing","getBase","length","absoluteBase","resolve","filenameToBaseMap","Map","absoluteFilename","absoluteFilenames","sep","get","absoluteFilenameOrDir","startsWith","set","forEach","startWatcher","onFilesChange","Promise","all","filter","Boolean"],"sources":["../../src/babel/dir.ts"],"sourcesContent":["import slash from \"slash\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nimport * as util from \"./util\";\nimport * as watcher from \"./watcher\";\nimport type { CmdOptions } from \"./options\";\n\nconst FILE_TYPE = Object.freeze({\n NON_COMPILABLE: \"NON_COMPILABLE\",\n COMPILED: \"COMPILED\",\n IGNORED: \"IGNORED\",\n ERR_COMPILATION: \"ERR_COMPILATION\",\n} as const);\n\nfunction outputFileSync(filePath: string, data: string | Buffer): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, data);\n}\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n async function write(\n src: string,\n base: string,\n ): Promise<keyof typeof FILE_TYPE> {\n let relative = path.relative(base, src);\n\n if (!util.isCompilableExtension(relative, cliOptions.extensions)) {\n return FILE_TYPE.NON_COMPILABLE;\n }\n\n relative = util.withExtension(\n relative,\n cliOptions.keepFileExtension\n ? path.extname(relative)\n : cliOptions.outFileExtension,\n );\n\n const dest = getDest(relative, base);\n\n try {\n const res = await util.compile(src, {\n ...babelOptions,\n sourceFileName: slash(path.relative(dest + \"/..\", src)),\n });\n\n if (!res) return FILE_TYPE.IGNORED;\n\n if (res.map) {\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == undefined) {\n outputMap = util.hasDataSourcemap(res.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = dest + \".map\";\n if (outputMap === \"external\") {\n res.code = util.addSourceMappingUrl(res.code, mapLoc);\n }\n res.map.file = path.basename(relative);\n outputFileSync(mapLoc, JSON.stringify(res.map));\n }\n }\n\n outputFileSync(dest, res.code);\n util.chmod(src, dest);\n\n if (cliOptions.verbose) {\n console.log(path.relative(process.cwd(), src) + \" -> \" + dest);\n }\n\n return FILE_TYPE.COMPILED;\n } catch (err) {\n if (cliOptions.watch) {\n console.error(err);\n return FILE_TYPE.ERR_COMPILATION;\n }\n\n throw err;\n }\n }\n\n function getDest(filename: string, base: string): string {\n if (cliOptions.relative) {\n return path.join(base, cliOptions.outDir, filename);\n }\n return path.join(cliOptions.outDir, filename);\n }\n\n async function handleFile(src: string, base: string): Promise<boolean> {\n const written = await write(src, base);\n\n if (\n (cliOptions.copyFiles && written === FILE_TYPE.NON_COMPILABLE) ||\n (cliOptions.copyIgnored && written === FILE_TYPE.IGNORED)\n ) {\n const filename = path.relative(base, src);\n const dest = getDest(filename, base);\n outputFileSync(dest, fs.readFileSync(src));\n util.chmod(src, dest);\n }\n return written === FILE_TYPE.COMPILED;\n }\n\n async function handle(filenameOrDir: string): Promise<number> {\n if (!fs.existsSync(filenameOrDir)) return 0;\n\n const stat = fs.statSync(filenameOrDir);\n\n if (stat.isDirectory()) {\n const dirname = filenameOrDir;\n\n let count = 0;\n\n const files = util.readdir(dirname, cliOptions.includeDotfiles);\n for (const filename of files) {\n const src = path.join(dirname, filename);\n\n const written = await handleFile(src, dirname);\n if (written) count += 1;\n }\n\n return count;\n } else {\n const filename = filenameOrDir;\n const written = await handleFile(filename, path.dirname(filename));\n\n return written ? 1 : 0;\n }\n }\n\n let compiledFiles = 0;\n let startTime: [number, number] | null = null;\n\n const logSuccess = util.debounce(function () {\n if (startTime === null) {\n // This should never happen, but just in case it's better\n // to ignore the log message rather than making @babel/cli crash.\n return;\n }\n\n const diff = process.hrtime(startTime);\n\n console.log(\n `Successfully compiled ${compiledFiles} ${\n compiledFiles !== 1 ? \"files\" : \"file\"\n } with Babel (${diff[0] * 1e3 + Math.round(diff[1] / 1e6)}ms).`,\n );\n compiledFiles = 0;\n startTime = null;\n }, 100);\n\n if (cliOptions.watch) watcher.enable({ enableGlobbing: true });\n\n if (!cliOptions.skipInitialBuild) {\n if (cliOptions.deleteDirOnStart) {\n util.deleteDir(cliOptions.outDir);\n }\n\n fs.mkdirSync(cliOptions.outDir, { recursive: true });\n\n startTime = process.hrtime();\n\n for (const filename of cliOptions.filenames) {\n // compiledFiles is just incremented without reading its value, so we\n // don't risk race conditions.\n // eslint-disable-next-line require-atomic-updates\n compiledFiles += await handle(filename);\n }\n\n if (!cliOptions.quiet) {\n logSuccess();\n logSuccess.flush();\n }\n }\n\n if (cliOptions.watch) {\n // This, alongside with debounce, allows us to only log\n // when we are sure that all the files have been compiled.\n let processing = 0;\n const { filenames } = cliOptions;\n let getBase: (filename: string) => string | null;\n if (filenames.length === 1) {\n // fast path: If there is only one filenames, we know it must be the base\n const base = filenames[0];\n const absoluteBase = path.resolve(base);\n getBase = filename => {\n return filename === absoluteBase ? path.dirname(base) : base;\n };\n } else {\n // A map from absolute compiled file path to its base, from which\n // the output destination will be determined\n const filenameToBaseMap: Map<string, string> = new Map(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, path.dirname(filename)];\n }),\n );\n\n const absoluteFilenames: Map<string, string> = new Map(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, filename];\n }),\n );\n\n const { sep } = path;\n // determine base from the absolute file path\n getBase = filename => {\n const base = filenameToBaseMap.get(filename);\n if (base !== undefined) {\n return base;\n }\n for (const [absoluteFilenameOrDir, relative] of absoluteFilenames) {\n if (filename.startsWith(absoluteFilenameOrDir + sep)) {\n filenameToBaseMap.set(filename, relative);\n return relative;\n }\n }\n // Can't determine the base, probably external deps\n return \"\";\n };\n }\n\n filenames.forEach(filenameOrDir => {\n watcher.watch(filenameOrDir);\n });\n\n watcher.startWatcher();\n\n watcher.onFilesChange(async filenames => {\n processing++;\n if (startTime === null) startTime = process.hrtime();\n\n try {\n const written = await Promise.all(\n filenames.map(filename => handleFile(filename, getBase(filename))),\n );\n\n compiledFiles += written.filter(Boolean).length;\n } catch (err) {\n console.error(err);\n }\n\n processing--;\n if (processing === 0 && !cliOptions.quiet) logSuccess();\n });\n }\n}\n"],"mappings":"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"} | ||
| {"version":3,"names":["_slash","data","require","_path","_fs","util","watcher","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FILE_TYPE","Object","freeze","NON_COMPILABLE","COMPILED","IGNORED","ERR_COMPILATION","outputFileSync","filePath","v","w","split","process","versions","node","mkdirSync","sync","path","dirname","recursive","fs","writeFileSync","_default","_x","_ref","cliOptions","babelOptions","write","_x2","_x3","_write","src","base","relative","isCompilableExtension","extensions","withExtension","keepFileExtension","extname","outFileExtension","dest","getDest","res","compile","assign","sourceFileName","slash","map","outputMap","sourceMaps","hasDataSourcemap","code","mapLoc","addSourceMappingUrl","file","basename","JSON","stringify","chmod","verbose","console","log","cwd","watch","filename","join","outDir","handleFile","_x4","_x5","_handleFile","written","copyFiles","copyIgnored","readFileSync","handle","_x6","_handle","filenameOrDir","existsSync","stat","statSync","isDirectory","count","files","readdir","includeDotfiles","compiledFiles","startTime","logSuccess","debounce","diff","hrtime","Math","round","enable","enableGlobbing","skipInitialBuild","deleteDirOnStart","deleteDir","filenames","quiet","flush","processing","getBase","length","absoluteBase","filenameToBaseMap","Map","absoluteFilename","absoluteFilenames","sep","get","absoluteFilenameOrDir","startsWith","set","forEach","startWatcher","onFilesChange","all","filter","Boolean"],"sources":["../../src/babel/dir.ts"],"sourcesContent":["import slash from \"slash\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nimport * as util from \"./util\";\nimport * as watcher from \"./watcher\";\nimport type { CmdOptions } from \"./options\";\n\nconst FILE_TYPE = Object.freeze({\n NON_COMPILABLE: \"NON_COMPILABLE\",\n COMPILED: \"COMPILED\",\n IGNORED: \"IGNORED\",\n ERR_COMPILATION: \"ERR_COMPILATION\",\n} as const);\n\nfunction outputFileSync(filePath: string, data: string | Buffer): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, data);\n}\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n async function write(\n src: string,\n base: string,\n ): Promise<keyof typeof FILE_TYPE> {\n let relative = path.relative(base, src);\n\n if (!util.isCompilableExtension(relative, cliOptions.extensions)) {\n return FILE_TYPE.NON_COMPILABLE;\n }\n\n relative = util.withExtension(\n relative,\n cliOptions.keepFileExtension\n ? path.extname(relative)\n : cliOptions.outFileExtension,\n );\n\n const dest = getDest(relative, base);\n\n try {\n const res = await util.compile(src, {\n ...babelOptions,\n sourceFileName: slash(path.relative(dest + \"/..\", src)),\n });\n\n if (!res) return FILE_TYPE.IGNORED;\n\n if (res.map) {\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == undefined) {\n outputMap = util.hasDataSourcemap(res.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = dest + \".map\";\n if (outputMap === \"external\") {\n res.code = util.addSourceMappingUrl(res.code, mapLoc);\n }\n res.map.file = path.basename(relative);\n outputFileSync(mapLoc, JSON.stringify(res.map));\n }\n }\n\n outputFileSync(dest, res.code);\n util.chmod(src, dest);\n\n if (cliOptions.verbose) {\n console.log(path.relative(process.cwd(), src) + \" -> \" + dest);\n }\n\n return FILE_TYPE.COMPILED;\n } catch (err) {\n if (cliOptions.watch) {\n console.error(err);\n return FILE_TYPE.ERR_COMPILATION;\n }\n\n throw err;\n }\n }\n\n function getDest(filename: string, base: string): string {\n if (cliOptions.relative) {\n return path.join(base, cliOptions.outDir, filename);\n }\n return path.join(cliOptions.outDir, filename);\n }\n\n async function handleFile(src: string, base: string): Promise<boolean> {\n const written = await write(src, base);\n\n if (\n (cliOptions.copyFiles && written === FILE_TYPE.NON_COMPILABLE) ||\n (cliOptions.copyIgnored && written === FILE_TYPE.IGNORED)\n ) {\n const filename = path.relative(base, src);\n const dest = getDest(filename, base);\n outputFileSync(dest, fs.readFileSync(src));\n util.chmod(src, dest);\n }\n return written === FILE_TYPE.COMPILED;\n }\n\n async function handle(filenameOrDir: string): Promise<number> {\n if (!fs.existsSync(filenameOrDir)) return 0;\n\n const stat = fs.statSync(filenameOrDir);\n\n if (stat.isDirectory()) {\n const dirname = filenameOrDir;\n\n let count = 0;\n\n const files = util.readdir(dirname, cliOptions.includeDotfiles);\n for (const filename of files) {\n const src = path.join(dirname, filename);\n\n const written = await handleFile(src, dirname);\n if (written) count += 1;\n }\n\n return count;\n } else {\n const filename = filenameOrDir;\n const written = await handleFile(filename, path.dirname(filename));\n\n return written ? 1 : 0;\n }\n }\n\n let compiledFiles = 0;\n let startTime: [number, number] | null = null;\n\n const logSuccess = util.debounce(function () {\n if (startTime === null) {\n // This should never happen, but just in case it's better\n // to ignore the log message rather than making @babel/cli crash.\n return;\n }\n\n const diff = process.hrtime(startTime);\n\n console.log(\n `Successfully compiled ${compiledFiles} ${\n compiledFiles !== 1 ? \"files\" : \"file\"\n } with Babel (${diff[0] * 1e3 + Math.round(diff[1] / 1e6)}ms).`,\n );\n compiledFiles = 0;\n startTime = null;\n }, 100);\n\n if (cliOptions.watch) watcher.enable({ enableGlobbing: true });\n\n if (!cliOptions.skipInitialBuild) {\n if (cliOptions.deleteDirOnStart) {\n util.deleteDir(cliOptions.outDir);\n }\n\n fs.mkdirSync(cliOptions.outDir, { recursive: true });\n\n startTime = process.hrtime();\n\n for (const filename of cliOptions.filenames) {\n // compiledFiles is just incremented without reading its value, so we\n // don't risk race conditions.\n // eslint-disable-next-line require-atomic-updates\n compiledFiles += await handle(filename);\n }\n\n if (!cliOptions.quiet) {\n logSuccess();\n logSuccess.flush();\n }\n }\n\n if (cliOptions.watch) {\n // This, alongside with debounce, allows us to only log\n // when we are sure that all the files have been compiled.\n let processing = 0;\n const { filenames } = cliOptions;\n let getBase: (filename: string) => string | null;\n if (filenames.length === 1) {\n // fast path: If there is only one filenames, we know it must be the base\n const base = filenames[0];\n const absoluteBase = path.resolve(base);\n getBase = filename => {\n return filename === absoluteBase ? path.dirname(base) : base;\n };\n } else {\n // A map from absolute compiled file path to its base, from which\n // the output destination will be determined\n const filenameToBaseMap: Map<string, string> = new Map(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, path.dirname(filename)];\n }),\n );\n\n const absoluteFilenames: Map<string, string> = new Map(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, filename];\n }),\n );\n\n const { sep } = path;\n // determine base from the absolute file path\n getBase = filename => {\n const base = filenameToBaseMap.get(filename);\n if (base !== undefined) {\n return base;\n }\n for (const [absoluteFilenameOrDir, relative] of absoluteFilenames) {\n if (filename.startsWith(absoluteFilenameOrDir + sep)) {\n filenameToBaseMap.set(filename, relative);\n return relative;\n }\n }\n // Can't determine the base, probably external deps\n return \"\";\n };\n }\n\n filenames.forEach(filenameOrDir => {\n watcher.watch(filenameOrDir);\n });\n\n watcher.startWatcher();\n\n watcher.onFilesChange(async filenames => {\n processing++;\n if (startTime === null) startTime = process.hrtime();\n\n try {\n const written = await Promise.all(\n filenames.map(filename => handleFile(filename, getBase(filename))),\n );\n\n compiledFiles += written.filter(Boolean).length;\n } catch (err) {\n console.error(err);\n }\n\n processing--;\n if (processing === 0 && !cliOptions.quiet) logSuccess();\n });\n }\n}\n"],"mappings":"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"} |
+55
-19
@@ -0,11 +1,47 @@ | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.default = _default; | ||
| function _convertSourceMap() { | ||
| const data = require("convert-source-map"); | ||
| _convertSourceMap = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _traceMapping() { | ||
| const data = require("@jridgewell/trace-mapping"); | ||
| _traceMapping = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _slash() { | ||
| const data = require("slash"); | ||
| _slash = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _path() { | ||
| const data = require("path"); | ||
| _path = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _fs() { | ||
| const data = require("fs"); | ||
| _fs = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| var util = require("./util"); | ||
| var watcher = require("./watcher"); | ||
| function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
| function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
| import convertSourceMap from "convert-source-map"; | ||
| import { AnyMap, encodedMap } from "@jridgewell/trace-mapping"; | ||
| import slash from "slash"; | ||
| import path from "path"; | ||
| import fs from "fs"; | ||
| import * as util from "./util.js"; | ||
| import * as watcher from "./watcher.js"; | ||
| export default function (_x) { | ||
| function _default(_x) { | ||
| return _ref.apply(this, arguments); | ||
@@ -41,5 +77,5 @@ } | ||
| } | ||
| const map = new AnyMap({ | ||
| const map = new (_traceMapping().AnyMap)({ | ||
| version: 3, | ||
| file: cliOptions.sourceMapTarget || path.basename(cliOptions.outFile || "") || "stdout", | ||
| file: cliOptions.sourceMapTarget || _path().basename(cliOptions.outFile || "") || "stdout", | ||
| sections: mapSections | ||
@@ -49,3 +85,3 @@ }); | ||
| if (babelOptions.sourceMaps === "inline" || !cliOptions.outFile && babelOptions.sourceMaps) { | ||
| code += "\n" + convertSourceMap.fromObject(encodedMap(map)).toComment(); | ||
| code += "\n" + _convertSourceMap().fromObject((0, _traceMapping().encodedMap)(map)).toComment(); | ||
| } | ||
@@ -69,3 +105,3 @@ return { | ||
| if (cliOptions.outFile) { | ||
| (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? fs.mkdirSync : require("make-dir").sync)(path.dirname(cliOptions.outFile), { | ||
| (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? _fs().mkdirSync : require("make-dir").sync)(_path().dirname(cliOptions.outFile), { | ||
| recursive: true | ||
@@ -84,5 +120,5 @@ }); | ||
| } | ||
| fs.writeFileSync(mapLoc, JSON.stringify(encodedMap(result.map))); | ||
| _fs().writeFileSync(mapLoc, JSON.stringify((0, _traceMapping().encodedMap)(result.map))); | ||
| } | ||
| fs.writeFileSync(cliOptions.outFile, result.code); | ||
| _fs().writeFileSync(cliOptions.outFile, result.code); | ||
| } else { | ||
@@ -126,8 +162,8 @@ process.stdout.write(result.code + "\n"); | ||
| filenames.forEach(function (filename) { | ||
| if (!fs.existsSync(filename)) return; | ||
| const stat = fs.statSync(filename); | ||
| if (!_fs().existsSync(filename)) return; | ||
| const stat = _fs().statSync(filename); | ||
| if (stat.isDirectory()) { | ||
| const dirname = filename; | ||
| util.readdirForCompilable(filename, cliOptions.includeDotfiles, cliOptions.extensions).forEach(function (filename) { | ||
| _filenames.push(path.join(dirname, filename)); | ||
| _filenames.push(_path().join(dirname, filename)); | ||
| }); | ||
@@ -141,5 +177,5 @@ } else { | ||
| if (cliOptions.outFile) { | ||
| sourceFilename = path.relative(path.dirname(cliOptions.outFile), sourceFilename); | ||
| sourceFilename = _path().relative(_path().dirname(cliOptions.outFile), sourceFilename); | ||
| } | ||
| sourceFilename = slash(sourceFilename); | ||
| sourceFilename = _slash()(sourceFilename); | ||
| try { | ||
@@ -146,0 +182,0 @@ return yield util.compile(filename, Object.assign({}, babelOptions, { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["convertSourceMap","AnyMap","encodedMap","slash","path","fs","util","watcher","_x","_ref","apply","arguments","_asyncToGenerator","cliOptions","babelOptions","buildResult","fileResults","mapSections","code","offset","hasRawMap","result","map","push","line","column","version","names","sources","mappings","countNewlines","file","sourceMapTarget","basename","outFile","sections","sourceRoot","sourceMaps","fromObject","toComment","count","index","indexOf","output","v","w","split","process","versions","node","mkdirSync","require","sync","dirname","recursive","outputMap","undefined","hasDataSourcemap","mapLoc","addSourceMappingUrl","writeFileSync","JSON","stringify","stdout","write","readStdin","Promise","resolve","reject","stdin","setEncoding","on","chunk","read","_stdin","res","transformRepl","filename","Object","assign","sourceFileName","walk","_x2","_walk","filenames","_filenames","forEach","existsSync","stat","statSync","isDirectory","readdirForCompilable","includeDotfiles","extensions","join","results","all","sourceFilename","relative","compile","err","watch","console","error","files","_x3","_files","enable","enableGlobbing","skipInitialBuild","startWatcher","onFilesChange","changes","event","cause","actionableChange","some","isCompilableExtension","includes","verbose","log","catch","length"],"sources":["../../src/babel/file.ts"],"sourcesContent":["import convertSourceMap from \"convert-source-map\";\nimport { AnyMap, encodedMap } from \"@jridgewell/trace-mapping\";\nimport slash from \"slash\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nimport * as util from \"./util\";\nimport type { CmdOptions } from \"./options\";\nimport * as watcher from \"./watcher\";\n\nimport type {\n SectionedSourceMap,\n SourceMapInput,\n TraceMap,\n} from \"@jridgewell/trace-mapping\";\nimport type { FileResult } from \"@babel/core\";\n\ntype CompilationOutput = {\n code: string;\n map: SourceMapInput;\n hasRawMap: boolean;\n};\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n function buildResult(fileResults: Array<FileResult>): CompilationOutput {\n const mapSections: SectionedSourceMap[\"sections\"] = [];\n\n let code = \"\";\n let offset = 0;\n\n let hasRawMap = false;\n\n for (const result of fileResults) {\n if (!result) continue;\n\n hasRawMap = !!result.map;\n\n mapSections.push({\n offset: { line: offset, column: 0 },\n map: result.map || {\n version: 3,\n names: [],\n sources: [],\n mappings: [],\n },\n });\n\n code += result.code + \"\\n\";\n offset += countNewlines(result.code) + 1;\n }\n\n const map = new AnyMap({\n version: 3,\n file:\n cliOptions.sourceMapTarget ||\n path.basename(cliOptions.outFile || \"\") ||\n \"stdout\",\n sections: mapSections,\n });\n // For some reason, the spec doesn't allow sourceRoot when constructing a\n // sectioned sourcemap. But AllMap returns a regular sourcemap, we can\n // freely add to with a sourceRoot.\n map.sourceRoot = babelOptions.sourceRoot;\n\n // add the inline sourcemap comment if we've either explicitly asked for inline source\n // maps, or we've requested them without any output file\n if (\n babelOptions.sourceMaps === \"inline\" ||\n (!cliOptions.outFile && babelOptions.sourceMaps)\n ) {\n code += \"\\n\" + convertSourceMap.fromObject(encodedMap(map)).toComment();\n }\n\n return {\n map: map,\n code: code,\n hasRawMap: hasRawMap,\n };\n }\n\n function countNewlines(code: string): number {\n let count = 0;\n let index = -1;\n while ((index = code.indexOf(\"\\n\", index + 1)) !== -1) {\n count++;\n }\n return count;\n }\n\n function output(fileResults: Array<FileResult>): void {\n const result = buildResult(fileResults);\n\n if (cliOptions.outFile) {\n fs.mkdirSync(path.dirname(cliOptions.outFile), { recursive: true });\n\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == undefined && result.hasRawMap) {\n outputMap = util.hasDataSourcemap(result.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = cliOptions.outFile + \".map\";\n if (outputMap === \"external\") {\n result.code = util.addSourceMappingUrl(result.code, mapLoc);\n }\n fs.writeFileSync(\n mapLoc,\n JSON.stringify(encodedMap(result.map as TraceMap)),\n );\n }\n\n fs.writeFileSync(cliOptions.outFile, result.code);\n } else {\n process.stdout.write(result.code + \"\\n\");\n }\n }\n\n function readStdin(): Promise<string> {\n return new Promise((resolve, reject): void => {\n let code = \"\";\n\n process.stdin.setEncoding(\"utf8\");\n\n process.stdin.on(\"readable\", function () {\n const chunk = process.stdin.read();\n if (chunk !== null) code += chunk;\n });\n\n process.stdin.on(\"end\", function () {\n resolve(code);\n });\n process.stdin.on(\"error\", reject);\n });\n }\n\n async function stdin(): Promise<void> {\n const code = await readStdin();\n\n const res = await util.transformRepl(cliOptions.filename, code, {\n ...babelOptions,\n sourceFileName: \"stdin\",\n });\n\n output([res]);\n }\n\n async function walk(filenames: Array<string>): Promise<void> {\n const _filenames: string[] = [];\n\n filenames.forEach(function (filename) {\n if (!fs.existsSync(filename)) return;\n\n const stat = fs.statSync(filename);\n if (stat.isDirectory()) {\n const dirname = filename;\n\n util\n .readdirForCompilable(\n filename,\n cliOptions.includeDotfiles,\n cliOptions.extensions,\n )\n .forEach(function (filename) {\n _filenames.push(path.join(dirname, filename));\n });\n } else {\n _filenames.push(filename);\n }\n });\n\n const results = await Promise.all(\n _filenames.map(async function (filename: string): Promise<any> {\n let sourceFilename = filename;\n if (cliOptions.outFile) {\n sourceFilename = path.relative(\n path.dirname(cliOptions.outFile),\n sourceFilename,\n );\n }\n sourceFilename = slash(sourceFilename);\n\n try {\n return await util.compile(filename, {\n ...babelOptions,\n sourceFileName: sourceFilename,\n // Since we're compiling everything to be merged together,\n // \"inline\" applies to the final output file, but not to the individual\n // files being concatenated.\n sourceMaps:\n babelOptions.sourceMaps === \"inline\"\n ? true\n : babelOptions.sourceMaps,\n });\n } catch (err) {\n if (!cliOptions.watch) {\n throw err;\n }\n\n console.error(err);\n return null;\n }\n }),\n );\n\n output(results);\n }\n\n async function files(filenames: Array<string>): Promise<void> {\n if (cliOptions.watch) {\n watcher.enable({ enableGlobbing: false });\n }\n\n if (!cliOptions.skipInitialBuild) {\n await walk(filenames);\n }\n\n if (cliOptions.watch) {\n filenames.forEach(watcher.watch);\n\n watcher.startWatcher();\n\n watcher.onFilesChange((changes, event, cause) => {\n const actionableChange = changes.some(\n filename =>\n util.isCompilableExtension(filename, cliOptions.extensions) ||\n filenames.includes(filename),\n );\n if (!actionableChange) return;\n\n if (cliOptions.verbose) {\n console.log(`${event} ${cause}`);\n }\n\n walk(filenames).catch(err => {\n console.error(err);\n });\n });\n }\n }\n\n if (cliOptions.filenames.length) {\n await files(cliOptions.filenames);\n } else {\n await stdin();\n }\n}\n"],"mappings":"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"} | ||
| {"version":3,"names":["_convertSourceMap","data","require","_traceMapping","_slash","_path","_fs","util","watcher","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_default","_x","_ref","cliOptions","babelOptions","buildResult","fileResults","mapSections","code","offset","hasRawMap","result","map","push","line","column","version","names","sources","mappings","countNewlines","AnyMap","file","sourceMapTarget","path","basename","outFile","sections","sourceRoot","sourceMaps","convertSourceMap","fromObject","encodedMap","toComment","count","index","indexOf","output","v","w","split","process","versions","node","mkdirSync","sync","dirname","recursive","outputMap","hasDataSourcemap","mapLoc","addSourceMappingUrl","fs","writeFileSync","JSON","stringify","stdout","write","readStdin","stdin","setEncoding","on","chunk","read","_stdin","res","transformRepl","filename","Object","assign","sourceFileName","walk","_x2","_walk","filenames","_filenames","forEach","existsSync","stat","statSync","isDirectory","readdirForCompilable","includeDotfiles","extensions","join","results","all","sourceFilename","relative","slash","compile","watch","console","files","_x3","_files","enable","enableGlobbing","skipInitialBuild","startWatcher","onFilesChange","changes","event","cause","actionableChange","some","isCompilableExtension","includes","verbose","log","catch","length"],"sources":["../../src/babel/file.ts"],"sourcesContent":["import convertSourceMap from \"convert-source-map\";\nimport { AnyMap, encodedMap } from \"@jridgewell/trace-mapping\";\nimport slash from \"slash\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nimport * as util from \"./util\";\nimport type { CmdOptions } from \"./options\";\nimport * as watcher from \"./watcher\";\n\nimport type {\n SectionedSourceMap,\n SourceMapInput,\n TraceMap,\n} from \"@jridgewell/trace-mapping\";\nimport type { FileResult } from \"@babel/core\";\n\ntype CompilationOutput = {\n code: string;\n map: SourceMapInput;\n hasRawMap: boolean;\n};\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n function buildResult(fileResults: Array<FileResult>): CompilationOutput {\n const mapSections: SectionedSourceMap[\"sections\"] = [];\n\n let code = \"\";\n let offset = 0;\n\n let hasRawMap = false;\n\n for (const result of fileResults) {\n if (!result) continue;\n\n hasRawMap = !!result.map;\n\n mapSections.push({\n offset: { line: offset, column: 0 },\n map: result.map || {\n version: 3,\n names: [],\n sources: [],\n mappings: [],\n },\n });\n\n code += result.code + \"\\n\";\n offset += countNewlines(result.code) + 1;\n }\n\n const map = new AnyMap({\n version: 3,\n file:\n cliOptions.sourceMapTarget ||\n path.basename(cliOptions.outFile || \"\") ||\n \"stdout\",\n sections: mapSections,\n });\n // For some reason, the spec doesn't allow sourceRoot when constructing a\n // sectioned sourcemap. But AllMap returns a regular sourcemap, we can\n // freely add to with a sourceRoot.\n map.sourceRoot = babelOptions.sourceRoot;\n\n // add the inline sourcemap comment if we've either explicitly asked for inline source\n // maps, or we've requested them without any output file\n if (\n babelOptions.sourceMaps === \"inline\" ||\n (!cliOptions.outFile && babelOptions.sourceMaps)\n ) {\n code += \"\\n\" + convertSourceMap.fromObject(encodedMap(map)).toComment();\n }\n\n return {\n map: map,\n code: code,\n hasRawMap: hasRawMap,\n };\n }\n\n function countNewlines(code: string): number {\n let count = 0;\n let index = -1;\n while ((index = code.indexOf(\"\\n\", index + 1)) !== -1) {\n count++;\n }\n return count;\n }\n\n function output(fileResults: Array<FileResult>): void {\n const result = buildResult(fileResults);\n\n if (cliOptions.outFile) {\n fs.mkdirSync(path.dirname(cliOptions.outFile), { recursive: true });\n\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == undefined && result.hasRawMap) {\n outputMap = util.hasDataSourcemap(result.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = cliOptions.outFile + \".map\";\n if (outputMap === \"external\") {\n result.code = util.addSourceMappingUrl(result.code, mapLoc);\n }\n fs.writeFileSync(\n mapLoc,\n JSON.stringify(encodedMap(result.map as TraceMap)),\n );\n }\n\n fs.writeFileSync(cliOptions.outFile, result.code);\n } else {\n process.stdout.write(result.code + \"\\n\");\n }\n }\n\n function readStdin(): Promise<string> {\n return new Promise((resolve, reject): void => {\n let code = \"\";\n\n process.stdin.setEncoding(\"utf8\");\n\n process.stdin.on(\"readable\", function () {\n const chunk = process.stdin.read();\n if (chunk !== null) code += chunk;\n });\n\n process.stdin.on(\"end\", function () {\n resolve(code);\n });\n process.stdin.on(\"error\", reject);\n });\n }\n\n async function stdin(): Promise<void> {\n const code = await readStdin();\n\n const res = await util.transformRepl(cliOptions.filename, code, {\n ...babelOptions,\n sourceFileName: \"stdin\",\n });\n\n output([res]);\n }\n\n async function walk(filenames: Array<string>): Promise<void> {\n const _filenames: string[] = [];\n\n filenames.forEach(function (filename) {\n if (!fs.existsSync(filename)) return;\n\n const stat = fs.statSync(filename);\n if (stat.isDirectory()) {\n const dirname = filename;\n\n util\n .readdirForCompilable(\n filename,\n cliOptions.includeDotfiles,\n cliOptions.extensions,\n )\n .forEach(function (filename) {\n _filenames.push(path.join(dirname, filename));\n });\n } else {\n _filenames.push(filename);\n }\n });\n\n const results = await Promise.all(\n _filenames.map(async function (filename: string): Promise<any> {\n let sourceFilename = filename;\n if (cliOptions.outFile) {\n sourceFilename = path.relative(\n path.dirname(cliOptions.outFile),\n sourceFilename,\n );\n }\n sourceFilename = slash(sourceFilename);\n\n try {\n return await util.compile(filename, {\n ...babelOptions,\n sourceFileName: sourceFilename,\n // Since we're compiling everything to be merged together,\n // \"inline\" applies to the final output file, but not to the individual\n // files being concatenated.\n sourceMaps:\n babelOptions.sourceMaps === \"inline\"\n ? true\n : babelOptions.sourceMaps,\n });\n } catch (err) {\n if (!cliOptions.watch) {\n throw err;\n }\n\n console.error(err);\n return null;\n }\n }),\n );\n\n output(results);\n }\n\n async function files(filenames: Array<string>): Promise<void> {\n if (cliOptions.watch) {\n watcher.enable({ enableGlobbing: false });\n }\n\n if (!cliOptions.skipInitialBuild) {\n await walk(filenames);\n }\n\n if (cliOptions.watch) {\n filenames.forEach(watcher.watch);\n\n watcher.startWatcher();\n\n watcher.onFilesChange((changes, event, cause) => {\n const actionableChange = changes.some(\n filename =>\n util.isCompilableExtension(filename, cliOptions.extensions) ||\n filenames.includes(filename),\n );\n if (!actionableChange) return;\n\n if (cliOptions.verbose) {\n console.log(`${event} ${cause}`);\n }\n\n walk(filenames).catch(err => {\n console.error(err);\n });\n });\n }\n }\n\n if (cliOptions.filenames.length) {\n await files(cliOptions.filenames);\n } else {\n await stdin();\n }\n}\n"],"mappings":"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"} |
| #!/usr/bin/env node | ||
| import parseArgv from "./options.js"; | ||
| import dirCommand from "./dir.js"; | ||
| import fileCommand from "./file.js"; | ||
| const opts = parseArgv(process.argv); | ||
| "use strict"; | ||
| var _options = require("./options"); | ||
| var _dir = require("./dir"); | ||
| var _file = require("./file"); | ||
| const opts = (0, _options.default)(process.argv); | ||
| if (opts) { | ||
| const fn = opts.cliOptions.outDir ? dirCommand : fileCommand; | ||
| const fn = opts.cliOptions.outDir ? _dir.default : _file.default; | ||
| fn(opts).catch(err => { | ||
@@ -9,0 +11,0 @@ console.error(err); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["parseArgv","dirCommand","fileCommand","opts","process","argv","fn","cliOptions","outDir","catch","err","console","error","exitCode"],"sources":["../../src/babel/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport parseArgv from \"./options\";\nimport dirCommand from \"./dir\";\nimport fileCommand from \"./file\";\n\nconst opts = parseArgv(process.argv);\n\nif (opts) {\n const fn = opts.cliOptions.outDir ? dirCommand : fileCommand;\n fn(opts).catch(err => {\n console.error(err);\n process.exitCode = 1;\n });\n} else {\n process.exitCode = 2;\n}\n"],"mappings":"AAAA;AAEA,OAAOA,SAAS,MAAM,cAAW;AACjC,OAAOC,UAAU,MAAM,UAAO;AAC9B,OAAOC,WAAW,MAAM,WAAQ;AAEhC,MAAMC,IAAI,GAAGH,SAAS,CAACI,OAAO,CAACC,IAAI,CAAC;AAEpC,IAAIF,IAAI,EAAE;EACR,MAAMG,EAAE,GAAGH,IAAI,CAACI,UAAU,CAACC,MAAM,GAAGP,UAAU,GAAGC,WAAW;EAC5DI,EAAE,CAACH,IAAI,CAAC,CAACM,KAAK,CAACC,GAAG,IAAI;IACpBC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClBN,OAAO,CAACS,QAAQ,GAAG,CAAC;EACtB,CAAC,CAAC;AACJ,CAAC,MAAM;EACLT,OAAO,CAACS,QAAQ,GAAG,CAAC;AACtB"} | ||
| {"version":3,"names":["_options","require","_dir","_file","opts","parseArgv","process","argv","fn","cliOptions","outDir","dirCommand","fileCommand","catch","err","console","error","exitCode"],"sources":["../../src/babel/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport parseArgv from \"./options\";\nimport dirCommand from \"./dir\";\nimport fileCommand from \"./file\";\n\nconst opts = parseArgv(process.argv);\n\nif (opts) {\n const fn = opts.cliOptions.outDir ? dirCommand : fileCommand;\n fn(opts).catch(err => {\n console.error(err);\n process.exitCode = 1;\n });\n} else {\n process.exitCode = 2;\n}\n"],"mappings":"AAAA;AAAmB;;AAEnB,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,MAAMG,IAAI,GAAG,IAAAC,gBAAS,EAACC,OAAO,CAACC,IAAI,CAAC;AAEpC,IAAIH,IAAI,EAAE;EACR,MAAMI,EAAE,GAAGJ,IAAI,CAACK,UAAU,CAACC,MAAM,GAAGC,YAAU,GAAGC,aAAW;EAC5DJ,EAAE,CAACJ,IAAI,CAAC,CAACS,KAAK,CAACC,GAAG,IAAI;IACpBC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClBR,OAAO,CAACW,QAAQ,GAAG,CAAC;EACtB,CAAC,CAAC;AACJ,CAAC,MAAM;EACLX,OAAO,CAACW,QAAQ,GAAG,CAAC;AACtB"} |
+91
-61
@@ -1,53 +0,83 @@ | ||
| import fs from "fs"; | ||
| import commander from "commander"; | ||
| import { version, DEFAULT_EXTENSIONS } from "@babel/core"; | ||
| import glob from "glob"; | ||
| commander.option("-f, --filename [filename]", "The filename to use when reading from stdin. This will be used in source-maps, errors etc."); | ||
| commander.option("--presets [list]", "A comma-separated list of preset names.", collect); | ||
| commander.option("--plugins [list]", "A comma-separated list of plugin names.", collect); | ||
| commander.option("--config-file [path]", "Path to a .babelrc file to use."); | ||
| commander.option("--env-name [name]", "The name of the 'env' to use when loading configs and plugins. " + "Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'."); | ||
| commander.option("--root-mode [mode]", "The project-root resolution mode. " + "One of 'root' (the default), 'upward', or 'upward-optional'."); | ||
| commander.option("--source-type [script|module]", ""); | ||
| commander.option("--no-babelrc", "Whether or not to look up .babelrc and .babelignore files."); | ||
| commander.option("--ignore [list]", "List of glob paths to **not** compile.", collect); | ||
| commander.option("--only [list]", "List of glob paths to **only** compile.", collect); | ||
| commander.option("--no-highlight-code", "Enable or disable ANSI syntax highlighting of code frames. (on by default)"); | ||
| commander.option("--no-comments", "Write comments to generated output. (true by default)"); | ||
| commander.option("--retain-lines", "Retain line numbers. This will result in really ugly code."); | ||
| commander.option("--compact [true|false|auto]", "Do not include superfluous whitespace characters and line terminators.", booleanify); | ||
| commander.option("--minified", "Save as many bytes when printing. (false by default)"); | ||
| commander.option("--auxiliary-comment-before [string]", "Print a comment before any injected non-user code."); | ||
| commander.option("--auxiliary-comment-after [string]", "Print a comment after any injected non-user code."); | ||
| commander.option("-s, --source-maps [true|false|inline|both]", "", booleanify, undefined); | ||
| commander.option("--source-map-target [string]", "Set `file` on returned source map."); | ||
| commander.option("--source-file-name [string]", "Set `sources[0]` on returned source map."); | ||
| commander.option("--source-root [filename]", "The root from which all sources are relative."); | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.default = parseArgv; | ||
| function _fs() { | ||
| const data = require("fs"); | ||
| _fs = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _commander() { | ||
| const data = require("commander"); | ||
| _commander = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _core() { | ||
| const data = require("@babel/core"); | ||
| _core = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _glob() { | ||
| const data = require("glob"); | ||
| _glob = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| _commander().option("-f, --filename [filename]", "The filename to use when reading from stdin. This will be used in source-maps, errors etc."); | ||
| _commander().option("--presets [list]", "A comma-separated list of preset names.", collect); | ||
| _commander().option("--plugins [list]", "A comma-separated list of plugin names.", collect); | ||
| _commander().option("--config-file [path]", "Path to a .babelrc file to use."); | ||
| _commander().option("--env-name [name]", "The name of the 'env' to use when loading configs and plugins. " + "Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'."); | ||
| _commander().option("--root-mode [mode]", "The project-root resolution mode. " + "One of 'root' (the default), 'upward', or 'upward-optional'."); | ||
| _commander().option("--source-type [script|module]", ""); | ||
| _commander().option("--no-babelrc", "Whether or not to look up .babelrc and .babelignore files."); | ||
| _commander().option("--ignore [list]", "List of glob paths to **not** compile.", collect); | ||
| _commander().option("--only [list]", "List of glob paths to **only** compile.", collect); | ||
| _commander().option("--no-highlight-code", "Enable or disable ANSI syntax highlighting of code frames. (on by default)"); | ||
| _commander().option("--no-comments", "Write comments to generated output. (true by default)"); | ||
| _commander().option("--retain-lines", "Retain line numbers. This will result in really ugly code."); | ||
| _commander().option("--compact [true|false|auto]", "Do not include superfluous whitespace characters and line terminators.", booleanify); | ||
| _commander().option("--minified", "Save as many bytes when printing. (false by default)"); | ||
| _commander().option("--auxiliary-comment-before [string]", "Print a comment before any injected non-user code."); | ||
| _commander().option("--auxiliary-comment-after [string]", "Print a comment after any injected non-user code."); | ||
| _commander().option("-s, --source-maps [true|false|inline|both]", "", booleanify, undefined); | ||
| _commander().option("--source-map-target [string]", "Set `file` on returned source map."); | ||
| _commander().option("--source-file-name [string]", "Set `sources[0]` on returned source map."); | ||
| _commander().option("--source-root [filename]", "The root from which all sources are relative."); | ||
| { | ||
| commander.option("--module-root [filename]", "Optional prefix for the AMD module formatter that will be prepended to the filename on module definitions."); | ||
| commander.option("-M, --module-ids", "Insert an explicit id for modules."); | ||
| commander.option("--module-id [string]", "Specify a custom name for module ids."); | ||
| _commander().option("--module-root [filename]", "Optional prefix for the AMD module formatter that will be prepended to the filename on module definitions."); | ||
| _commander().option("-M, --module-ids", "Insert an explicit id for modules."); | ||
| _commander().option("--module-id [string]", "Specify a custom name for module ids."); | ||
| } | ||
| commander.option("-x, --extensions [extensions]", "List of extensions to compile when a directory has been the input. [" + DEFAULT_EXTENSIONS.join() + "]", collect); | ||
| commander.option("--keep-file-extension", "Preserve the file extensions of the input files."); | ||
| commander.option("-w, --watch", "Recompile files on changes."); | ||
| commander.option("--skip-initial-build", "Do not compile files before watching."); | ||
| commander.option("-o, --out-file [out]", "Compile all input files into a single file."); | ||
| commander.option("-d, --out-dir [out]", "Compile an input directory of modules into an output directory."); | ||
| commander.option("--relative", "Compile into an output directory relative to input directory or file. Requires --out-dir [out]"); | ||
| commander.option("-D, --copy-files", "When compiling a directory copy over non-compilable files."); | ||
| commander.option("--include-dotfiles", "Include dotfiles when compiling and copying non-compilable files."); | ||
| commander.option("--no-copy-ignored", "Exclude ignored files when copying non-compilable files."); | ||
| commander.option("--verbose", "Log everything. This option conflicts with --quiet"); | ||
| commander.option("--quiet", "Don't log anything. This option conflicts with --verbose"); | ||
| commander.option("--delete-dir-on-start", "Delete the out directory before compilation."); | ||
| commander.option("--out-file-extension [string]", "Use a specific extension for the output files"); | ||
| commander.version("7.21.4-esm.1" + " (@babel/core " + version + ")"); | ||
| commander.usage("[options] <files ...>"); | ||
| commander.action(() => {}); | ||
| export default function parseArgv(args) { | ||
| commander.parse(args); | ||
| _commander().option("-x, --extensions [extensions]", "List of extensions to compile when a directory has been the input. [" + _core().DEFAULT_EXTENSIONS.join() + "]", collect); | ||
| _commander().option("--keep-file-extension", "Preserve the file extensions of the input files."); | ||
| _commander().option("-w, --watch", "Recompile files on changes."); | ||
| _commander().option("--skip-initial-build", "Do not compile files before watching."); | ||
| _commander().option("-o, --out-file [out]", "Compile all input files into a single file."); | ||
| _commander().option("-d, --out-dir [out]", "Compile an input directory of modules into an output directory."); | ||
| _commander().option("--relative", "Compile into an output directory relative to input directory or file. Requires --out-dir [out]"); | ||
| _commander().option("-D, --copy-files", "When compiling a directory copy over non-compilable files."); | ||
| _commander().option("--include-dotfiles", "Include dotfiles when compiling and copying non-compilable files."); | ||
| _commander().option("--no-copy-ignored", "Exclude ignored files when copying non-compilable files."); | ||
| _commander().option("--verbose", "Log everything. This option conflicts with --quiet"); | ||
| _commander().option("--quiet", "Don't log anything. This option conflicts with --verbose"); | ||
| _commander().option("--delete-dir-on-start", "Delete the out directory before compilation."); | ||
| _commander().option("--out-file-extension [string]", "Use a specific extension for the output files"); | ||
| _commander().version("7.21.4-esm.3" + " (@babel/core " + _core().version + ")"); | ||
| _commander().usage("[options] <files ...>"); | ||
| _commander().action(() => {}); | ||
| function parseArgv(args) { | ||
| _commander().parse(args); | ||
| const errors = []; | ||
| let filenames = commander.args.reduce(function (globbed, input) { | ||
| let files = glob.sync(input); | ||
| let filenames = _commander().args.reduce(function (globbed, input) { | ||
| let files = _glob().sync(input); | ||
| if (!files.length) files = [input]; | ||
@@ -59,17 +89,17 @@ globbed.push(...files); | ||
| filenames.forEach(function (filename) { | ||
| if (!fs.existsSync(filename)) { | ||
| if (!_fs().existsSync(filename)) { | ||
| errors.push(filename + " does not exist"); | ||
| } | ||
| }); | ||
| if (commander.outDir && !filenames.length) { | ||
| if (_commander().outDir && !filenames.length) { | ||
| errors.push("--out-dir requires filenames"); | ||
| } | ||
| if (commander.outFile && commander.outDir) { | ||
| if (_commander().outFile && _commander().outDir) { | ||
| errors.push("--out-file and --out-dir cannot be used together"); | ||
| } | ||
| if (commander.relative && !commander.outDir) { | ||
| if (_commander().relative && !_commander().outDir) { | ||
| errors.push("--relative requires --out-dir usage"); | ||
| } | ||
| if (commander.watch) { | ||
| if (!commander.outFile && !commander.outDir) { | ||
| if (_commander().watch) { | ||
| if (!_commander().outFile && !_commander().outDir) { | ||
| errors.push("--watch requires --out-file or --out-dir"); | ||
@@ -81,15 +111,15 @@ } | ||
| } | ||
| if (commander.skipInitialBuild && !commander.watch) { | ||
| if (_commander().skipInitialBuild && !_commander().watch) { | ||
| errors.push("--skip-initial-build requires --watch"); | ||
| } | ||
| if (commander.deleteDirOnStart && !commander.outDir) { | ||
| if (_commander().deleteDirOnStart && !_commander().outDir) { | ||
| errors.push("--delete-dir-on-start requires --out-dir"); | ||
| } | ||
| if (commander.verbose && commander.quiet) { | ||
| if (_commander().verbose && _commander().quiet) { | ||
| errors.push("--verbose and --quiet cannot be used together"); | ||
| } | ||
| if (!commander.outDir && filenames.length === 0 && typeof commander.filename !== "string" && commander.babelrc !== false) { | ||
| if (!_commander().outDir && filenames.length === 0 && typeof _commander().filename !== "string" && _commander().babelrc !== false) { | ||
| errors.push("stdin compilation requires either -f/--filename [filename] or --no-babelrc"); | ||
| } | ||
| if (commander.keepFileExtension && commander.outFileExtension) { | ||
| if (_commander().keepFileExtension && _commander().outFileExtension) { | ||
| errors.push("--out-file-extension cannot be used with --keep-file-extension"); | ||
@@ -104,3 +134,3 @@ } | ||
| } | ||
| const opts = commander.opts(); | ||
| const opts = _commander().opts(); | ||
| const babelOptions = { | ||
@@ -107,0 +137,0 @@ presets: opts.presets, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["fs","commander","version","DEFAULT_EXTENSIONS","glob","option","collect","booleanify","undefined","join","usage","action","parseArgv","args","parse","errors","filenames","reduce","globbed","input","files","sync","length","push","Array","from","Set","forEach","filename","existsSync","outDir","outFile","relative","watch","skipInitialBuild","deleteDirOnStart","verbose","quiet","babelrc","keepFileExtension","outFileExtension","console","error","e","opts","babelOptions","presets","plugins","rootMode","configFile","envName","sourceType","ignore","only","retainLines","compact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceMaps","sourceFileName","sourceRoot","highlightCode","comments","Object","assign","moduleRoot","moduleIds","moduleId","key","keys","cliOptions","extensions","copyFiles","copyIgnored","includeDotfiles","sourceMapTarget","val","value","previousValue","values","split"],"sources":["../../src/babel/options.ts"],"sourcesContent":["import fs from \"fs\";\n\nimport commander from \"commander\";\nimport { version, DEFAULT_EXTENSIONS } from \"@babel/core\";\nimport glob from \"glob\";\n\nimport type { InputOptions } from \"@babel/core\";\n\n// Standard Babel input configs.\ncommander.option(\n \"-f, --filename [filename]\",\n \"The filename to use when reading from stdin. This will be used in source-maps, errors etc.\",\n);\ncommander.option(\n \"--presets [list]\",\n \"A comma-separated list of preset names.\",\n collect,\n);\ncommander.option(\n \"--plugins [list]\",\n \"A comma-separated list of plugin names.\",\n collect,\n);\ncommander.option(\"--config-file [path]\", \"Path to a .babelrc file to use.\");\ncommander.option(\n \"--env-name [name]\",\n \"The name of the 'env' to use when loading configs and plugins. \" +\n \"Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'.\",\n);\ncommander.option(\n \"--root-mode [mode]\",\n \"The project-root resolution mode. \" +\n \"One of 'root' (the default), 'upward', or 'upward-optional'.\",\n);\n\n// Basic file input configuration.\ncommander.option(\"--source-type [script|module]\", \"\");\ncommander.option(\n \"--no-babelrc\",\n \"Whether or not to look up .babelrc and .babelignore files.\",\n);\ncommander.option(\n \"--ignore [list]\",\n \"List of glob paths to **not** compile.\",\n collect,\n);\ncommander.option(\n \"--only [list]\",\n \"List of glob paths to **only** compile.\",\n collect,\n);\n\n// Misc babel config.\ncommander.option(\n \"--no-highlight-code\",\n \"Enable or disable ANSI syntax highlighting of code frames. (on by default)\",\n);\n\n// General output formatting.\ncommander.option(\n \"--no-comments\",\n \"Write comments to generated output. (true by default)\",\n);\ncommander.option(\n \"--retain-lines\",\n \"Retain line numbers. This will result in really ugly code.\",\n);\ncommander.option(\n \"--compact [true|false|auto]\",\n \"Do not include superfluous whitespace characters and line terminators.\",\n booleanify,\n);\ncommander.option(\n \"--minified\",\n \"Save as many bytes when printing. (false by default)\",\n);\ncommander.option(\n \"--auxiliary-comment-before [string]\",\n \"Print a comment before any injected non-user code.\",\n);\ncommander.option(\n \"--auxiliary-comment-after [string]\",\n \"Print a comment after any injected non-user code.\",\n);\n\n// General source map formatting.\ncommander.option(\n \"-s, --source-maps [true|false|inline|both]\",\n \"\",\n booleanify,\n undefined,\n);\ncommander.option(\n \"--source-map-target [string]\",\n \"Set `file` on returned source map.\",\n);\ncommander.option(\n \"--source-file-name [string]\",\n \"Set `sources[0]` on returned source map.\",\n);\ncommander.option(\n \"--source-root [filename]\",\n \"The root from which all sources are relative.\",\n);\n\nif (!process.env.BABEL_8_BREAKING) {\n // Config params for certain module output formats.\n commander.option(\n \"--module-root [filename]\",\n // eslint-disable-next-line max-len\n \"Optional prefix for the AMD module formatter that will be prepended to the filename on module definitions.\",\n );\n commander.option(\"-M, --module-ids\", \"Insert an explicit id for modules.\");\n commander.option(\n \"--module-id [string]\",\n \"Specify a custom name for module ids.\",\n );\n}\n\n// \"babel\" command specific arguments that are not passed to @babel/core.\ncommander.option(\n \"-x, --extensions [extensions]\",\n \"List of extensions to compile when a directory has been the input. [\" +\n DEFAULT_EXTENSIONS.join() +\n \"]\",\n collect,\n);\ncommander.option(\n \"--keep-file-extension\",\n \"Preserve the file extensions of the input files.\",\n);\ncommander.option(\"-w, --watch\", \"Recompile files on changes.\");\ncommander.option(\n \"--skip-initial-build\",\n \"Do not compile files before watching.\",\n);\ncommander.option(\n \"-o, --out-file [out]\",\n \"Compile all input files into a single file.\",\n);\ncommander.option(\n \"-d, --out-dir [out]\",\n \"Compile an input directory of modules into an output directory.\",\n);\ncommander.option(\n \"--relative\",\n \"Compile into an output directory relative to input directory or file. Requires --out-dir [out]\",\n);\n\ncommander.option(\n \"-D, --copy-files\",\n \"When compiling a directory copy over non-compilable files.\",\n);\ncommander.option(\n \"--include-dotfiles\",\n \"Include dotfiles when compiling and copying non-compilable files.\",\n);\ncommander.option(\n \"--no-copy-ignored\",\n \"Exclude ignored files when copying non-compilable files.\",\n);\n\ncommander.option(\n \"--verbose\",\n \"Log everything. This option conflicts with --quiet\",\n);\ncommander.option(\n \"--quiet\",\n \"Don't log anything. This option conflicts with --verbose\",\n);\ncommander.option(\n \"--delete-dir-on-start\",\n \"Delete the out directory before compilation.\",\n);\ncommander.option(\n \"--out-file-extension [string]\",\n \"Use a specific extension for the output files\",\n);\n\ndeclare const PACKAGE_JSON: { name: string; version: string };\ncommander.version(PACKAGE_JSON.version + \" (@babel/core \" + version + \")\");\ncommander.usage(\"[options] <files ...>\");\n// register an empty action handler so that commander.js can throw on\n// unknown options _after_ args\n// see https://github.com/tj/commander.js/issues/561#issuecomment-522209408\ncommander.action(() => {});\n\nexport type CmdOptions = {\n babelOptions: InputOptions;\n cliOptions: {\n filename: string;\n filenames: string[];\n extensions: string[];\n keepFileExtension: boolean;\n outFileExtension: string;\n watch: boolean;\n skipInitialBuild: boolean;\n outFile: string;\n outDir: string;\n relative: boolean;\n copyFiles: boolean;\n copyIgnored: boolean;\n includeDotfiles: boolean;\n verbose: boolean;\n quiet: boolean;\n deleteDirOnStart: boolean;\n sourceMapTarget: string;\n };\n};\n\nexport default function parseArgv(args: Array<string>): CmdOptions | null {\n //\n commander.parse(args);\n\n const errors: string[] = [];\n\n let filenames = commander.args.reduce(function (globbed: string[], input) {\n let files = glob.sync(input);\n if (!files.length) files = [input];\n globbed.push(...files);\n return globbed;\n }, []);\n\n filenames = Array.from(new Set(filenames));\n\n filenames.forEach(function (filename) {\n if (!fs.existsSync(filename)) {\n errors.push(filename + \" does not exist\");\n }\n });\n\n if (commander.outDir && !filenames.length) {\n errors.push(\"--out-dir requires filenames\");\n }\n\n if (commander.outFile && commander.outDir) {\n errors.push(\"--out-file and --out-dir cannot be used together\");\n }\n\n if (commander.relative && !commander.outDir) {\n errors.push(\"--relative requires --out-dir usage\");\n }\n\n if (commander.watch) {\n if (!commander.outFile && !commander.outDir) {\n errors.push(\"--watch requires --out-file or --out-dir\");\n }\n\n if (!filenames.length) {\n errors.push(\"--watch requires filenames\");\n }\n }\n\n if (commander.skipInitialBuild && !commander.watch) {\n errors.push(\"--skip-initial-build requires --watch\");\n }\n if (commander.deleteDirOnStart && !commander.outDir) {\n errors.push(\"--delete-dir-on-start requires --out-dir\");\n }\n\n if (commander.verbose && commander.quiet) {\n errors.push(\"--verbose and --quiet cannot be used together\");\n }\n\n if (\n !commander.outDir &&\n filenames.length === 0 &&\n typeof commander.filename !== \"string\" &&\n commander.babelrc !== false\n ) {\n errors.push(\n \"stdin compilation requires either -f/--filename [filename] or --no-babelrc\",\n );\n }\n\n if (commander.keepFileExtension && commander.outFileExtension) {\n errors.push(\n \"--out-file-extension cannot be used with --keep-file-extension\",\n );\n }\n\n if (errors.length) {\n console.error(\"babel:\");\n errors.forEach(function (e) {\n console.error(\" \" + e);\n });\n return null;\n }\n\n const opts = commander.opts();\n\n const babelOptions: InputOptions = {\n presets: opts.presets,\n plugins: opts.plugins,\n rootMode: opts.rootMode,\n configFile: opts.configFile,\n envName: opts.envName,\n sourceType: opts.sourceType,\n ignore: opts.ignore,\n only: opts.only,\n retainLines: opts.retainLines,\n compact: opts.compact,\n minified: opts.minified,\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n sourceMaps: opts.sourceMaps,\n sourceFileName: opts.sourceFileName,\n sourceRoot: opts.sourceRoot,\n\n // Commander will default the \"--no-\" arguments to true, but we want to\n // leave them undefined so that @babel/core can handle the\n // default-assignment logic on its own.\n babelrc: opts.babelrc === true ? undefined : opts.babelrc,\n highlightCode: opts.highlightCode === true ? undefined : opts.highlightCode,\n comments: opts.comments === true ? undefined : opts.comments,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n Object.assign(babelOptions, {\n moduleRoot: opts.moduleRoot,\n moduleIds: opts.moduleIds,\n moduleId: opts.moduleId,\n });\n }\n\n // If the @babel/cli version is newer than the @babel/core version, and we have added\n // new options for @babel/core, we'll potentially get option validation errors from\n // @babel/core. To avoid that, we delete undefined options, so @babel/core will only\n // give the error if users actually pass an unsupported CLI option.\n for (const key of Object.keys(babelOptions) as Array<\n keyof typeof babelOptions\n >) {\n if (babelOptions[key] === undefined) {\n delete babelOptions[key];\n }\n }\n\n return {\n babelOptions,\n cliOptions: {\n filename: opts.filename,\n filenames,\n extensions: opts.extensions,\n keepFileExtension: opts.keepFileExtension,\n outFileExtension: opts.outFileExtension,\n watch: opts.watch,\n skipInitialBuild: opts.skipInitialBuild,\n outFile: opts.outFile,\n outDir: opts.outDir,\n relative: opts.relative,\n copyFiles: opts.copyFiles,\n copyIgnored: opts.copyFiles && opts.copyIgnored,\n includeDotfiles: opts.includeDotfiles,\n verbose: opts.verbose,\n quiet: opts.quiet,\n deleteDirOnStart: opts.deleteDirOnStart,\n sourceMapTarget: opts.sourceMapTarget,\n },\n };\n}\n\nfunction booleanify(val: any): boolean | any {\n if (val === undefined) return undefined;\n\n if (val === \"true\" || val == 1) {\n return true;\n }\n\n if (val === \"false\" || val == 0 || !val) {\n return false;\n }\n\n return val;\n}\n\nfunction collect(\n value: string | any,\n previousValue: Array<string>,\n): Array<string> {\n // If the user passed the option with no value, like \"babel file.js --presets\", do nothing.\n if (typeof value !== \"string\") return previousValue;\n\n const values = value.split(\",\");\n\n if (previousValue) {\n previousValue.push(...values);\n return previousValue;\n }\n return values;\n}\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AAEnB,OAAOC,SAAS,MAAM,WAAW;AACjC,SAASC,OAAO,EAAEC,kBAAkB,QAAQ,aAAa;AACzD,OAAOC,IAAI,MAAM,MAAM;AAKvBH,SAAS,CAACI,MAAM,CACd,2BAA2B,EAC3B,4FAA4F,CAC7F;AACDJ,SAAS,CAACI,MAAM,CACd,kBAAkB,EAClB,yCAAyC,EACzCC,OAAO,CACR;AACDL,SAAS,CAACI,MAAM,CACd,kBAAkB,EAClB,yCAAyC,EACzCC,OAAO,CACR;AACDL,SAAS,CAACI,MAAM,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;AAC3EJ,SAAS,CAACI,MAAM,CACd,mBAAmB,EACnB,iEAAiE,GAC/D,8EAA8E,CACjF;AACDJ,SAAS,CAACI,MAAM,CACd,oBAAoB,EACpB,oCAAoC,GAClC,8DAA8D,CACjE;AAGDJ,SAAS,CAACI,MAAM,CAAC,+BAA+B,EAAE,EAAE,CAAC;AACrDJ,SAAS,CAACI,MAAM,CACd,cAAc,EACd,4DAA4D,CAC7D;AACDJ,SAAS,CAACI,MAAM,CACd,iBAAiB,EACjB,wCAAwC,EACxCC,OAAO,CACR;AACDL,SAAS,CAACI,MAAM,CACd,eAAe,EACf,yCAAyC,EACzCC,OAAO,CACR;AAGDL,SAAS,CAACI,MAAM,CACd,qBAAqB,EACrB,4EAA4E,CAC7E;AAGDJ,SAAS,CAACI,MAAM,CACd,eAAe,EACf,uDAAuD,CACxD;AACDJ,SAAS,CAACI,MAAM,CACd,gBAAgB,EAChB,4DAA4D,CAC7D;AACDJ,SAAS,CAACI,MAAM,CACd,6BAA6B,EAC7B,wEAAwE,EACxEE,UAAU,CACX;AACDN,SAAS,CAACI,MAAM,CACd,YAAY,EACZ,sDAAsD,CACvD;AACDJ,SAAS,CAACI,MAAM,CACd,qCAAqC,EACrC,oDAAoD,CACrD;AACDJ,SAAS,CAACI,MAAM,CACd,oCAAoC,EACpC,mDAAmD,CACpD;AAGDJ,SAAS,CAACI,MAAM,CACd,4CAA4C,EAC5C,EAAE,EACFE,UAAU,EACVC,SAAS,CACV;AACDP,SAAS,CAACI,MAAM,CACd,8BAA8B,EAC9B,oCAAoC,CACrC;AACDJ,SAAS,CAACI,MAAM,CACd,6BAA6B,EAC7B,0CAA0C,CAC3C;AACDJ,SAAS,CAACI,MAAM,CACd,0BAA0B,EAC1B,+CAA+C,CAChD;AAEkC;EAEjCJ,SAAS,CAACI,MAAM,CACd,0BAA0B,EAE1B,4GAA4G,CAC7G;EACDJ,SAAS,CAACI,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;EAC1EJ,SAAS,CAACI,MAAM,CACd,sBAAsB,EACtB,uCAAuC,CACxC;AACH;AAGAJ,SAAS,CAACI,MAAM,CACd,+BAA+B,EAC/B,sEAAsE,GACpEF,kBAAkB,CAACM,IAAI,EAAE,GACzB,GAAG,EACLH,OAAO,CACR;AACDL,SAAS,CAACI,MAAM,CACd,uBAAuB,EACvB,kDAAkD,CACnD;AACDJ,SAAS,CAACI,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;AAC9DJ,SAAS,CAACI,MAAM,CACd,sBAAsB,EACtB,uCAAuC,CACxC;AACDJ,SAAS,CAACI,MAAM,CACd,sBAAsB,EACtB,6CAA6C,CAC9C;AACDJ,SAAS,CAACI,MAAM,CACd,qBAAqB,EACrB,iEAAiE,CAClE;AACDJ,SAAS,CAACI,MAAM,CACd,YAAY,EACZ,gGAAgG,CACjG;AAEDJ,SAAS,CAACI,MAAM,CACd,kBAAkB,EAClB,4DAA4D,CAC7D;AACDJ,SAAS,CAACI,MAAM,CACd,oBAAoB,EACpB,mEAAmE,CACpE;AACDJ,SAAS,CAACI,MAAM,CACd,mBAAmB,EACnB,0DAA0D,CAC3D;AAEDJ,SAAS,CAACI,MAAM,CACd,WAAW,EACX,oDAAoD,CACrD;AACDJ,SAAS,CAACI,MAAM,CACd,SAAS,EACT,0DAA0D,CAC3D;AACDJ,SAAS,CAACI,MAAM,CACd,uBAAuB,EACvB,8CAA8C,CAC/C;AACDJ,SAAS,CAACI,MAAM,CACd,+BAA+B,EAC/B,+CAA+C,CAChD;AAGDJ,SAAS,CAACC,OAAO,CAAC,iBAAuB,gBAAgB,GAAGA,OAAO,GAAG,GAAG,CAAC;AAC1ED,SAAS,CAACS,KAAK,CAAC,uBAAuB,CAAC;AAIxCT,SAAS,CAACU,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAyB1B,eAAe,SAASC,SAASA,CAACC,IAAmB,EAAqB;EAExEZ,SAAS,CAACa,KAAK,CAACD,IAAI,CAAC;EAErB,MAAME,MAAgB,GAAG,EAAE;EAE3B,IAAIC,SAAS,GAAGf,SAAS,CAACY,IAAI,CAACI,MAAM,CAAC,UAAUC,OAAiB,EAAEC,KAAK,EAAE;IACxE,IAAIC,KAAK,GAAGhB,IAAI,CAACiB,IAAI,CAACF,KAAK,CAAC;IAC5B,IAAI,CAACC,KAAK,CAACE,MAAM,EAAEF,KAAK,GAAG,CAACD,KAAK,CAAC;IAClCD,OAAO,CAACK,IAAI,CAAC,GAAGH,KAAK,CAAC;IACtB,OAAOF,OAAO;EAChB,CAAC,EAAE,EAAE,CAAC;EAENF,SAAS,GAAGQ,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAACV,SAAS,CAAC,CAAC;EAE1CA,SAAS,CAACW,OAAO,CAAC,UAAUC,QAAQ,EAAE;IACpC,IAAI,CAAC5B,EAAE,CAAC6B,UAAU,CAACD,QAAQ,CAAC,EAAE;MAC5Bb,MAAM,CAACQ,IAAI,CAACK,QAAQ,GAAG,iBAAiB,CAAC;IAC3C;EACF,CAAC,CAAC;EAEF,IAAI3B,SAAS,CAAC6B,MAAM,IAAI,CAACd,SAAS,CAACM,MAAM,EAAE;IACzCP,MAAM,CAACQ,IAAI,CAAC,8BAA8B,CAAC;EAC7C;EAEA,IAAItB,SAAS,CAAC8B,OAAO,IAAI9B,SAAS,CAAC6B,MAAM,EAAE;IACzCf,MAAM,CAACQ,IAAI,CAAC,kDAAkD,CAAC;EACjE;EAEA,IAAItB,SAAS,CAAC+B,QAAQ,IAAI,CAAC/B,SAAS,CAAC6B,MAAM,EAAE;IAC3Cf,MAAM,CAACQ,IAAI,CAAC,qCAAqC,CAAC;EACpD;EAEA,IAAItB,SAAS,CAACgC,KAAK,EAAE;IACnB,IAAI,CAAChC,SAAS,CAAC8B,OAAO,IAAI,CAAC9B,SAAS,CAAC6B,MAAM,EAAE;MAC3Cf,MAAM,CAACQ,IAAI,CAAC,0CAA0C,CAAC;IACzD;IAEA,IAAI,CAACP,SAAS,CAACM,MAAM,EAAE;MACrBP,MAAM,CAACQ,IAAI,CAAC,4BAA4B,CAAC;IAC3C;EACF;EAEA,IAAItB,SAAS,CAACiC,gBAAgB,IAAI,CAACjC,SAAS,CAACgC,KAAK,EAAE;IAClDlB,MAAM,CAACQ,IAAI,CAAC,uCAAuC,CAAC;EACtD;EACA,IAAItB,SAAS,CAACkC,gBAAgB,IAAI,CAAClC,SAAS,CAAC6B,MAAM,EAAE;IACnDf,MAAM,CAACQ,IAAI,CAAC,0CAA0C,CAAC;EACzD;EAEA,IAAItB,SAAS,CAACmC,OAAO,IAAInC,SAAS,CAACoC,KAAK,EAAE;IACxCtB,MAAM,CAACQ,IAAI,CAAC,+CAA+C,CAAC;EAC9D;EAEA,IACE,CAACtB,SAAS,CAAC6B,MAAM,IACjBd,SAAS,CAACM,MAAM,KAAK,CAAC,IACtB,OAAOrB,SAAS,CAAC2B,QAAQ,KAAK,QAAQ,IACtC3B,SAAS,CAACqC,OAAO,KAAK,KAAK,EAC3B;IACAvB,MAAM,CAACQ,IAAI,CACT,4EAA4E,CAC7E;EACH;EAEA,IAAItB,SAAS,CAACsC,iBAAiB,IAAItC,SAAS,CAACuC,gBAAgB,EAAE;IAC7DzB,MAAM,CAACQ,IAAI,CACT,gEAAgE,CACjE;EACH;EAEA,IAAIR,MAAM,CAACO,MAAM,EAAE;IACjBmB,OAAO,CAACC,KAAK,CAAC,QAAQ,CAAC;IACvB3B,MAAM,CAACY,OAAO,CAAC,UAAUgB,CAAC,EAAE;MAC1BF,OAAO,CAACC,KAAK,CAAC,IAAI,GAAGC,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,IAAI;EACb;EAEA,MAAMC,IAAI,GAAG3C,SAAS,CAAC2C,IAAI,EAAE;EAE7B,MAAMC,YAA0B,GAAG;IACjCC,OAAO,EAAEF,IAAI,CAACE,OAAO;IACrBC,OAAO,EAAEH,IAAI,CAACG,OAAO;IACrBC,QAAQ,EAAEJ,IAAI,CAACI,QAAQ;IACvBC,UAAU,EAAEL,IAAI,CAACK,UAAU;IAC3BC,OAAO,EAAEN,IAAI,CAACM,OAAO;IACrBC,UAAU,EAAEP,IAAI,CAACO,UAAU;IAC3BC,MAAM,EAAER,IAAI,CAACQ,MAAM;IACnBC,IAAI,EAAET,IAAI,CAACS,IAAI;IACfC,WAAW,EAAEV,IAAI,CAACU,WAAW;IAC7BC,OAAO,EAAEX,IAAI,CAACW,OAAO;IACrBC,QAAQ,EAAEZ,IAAI,CAACY,QAAQ;IACvBC,sBAAsB,EAAEb,IAAI,CAACa,sBAAsB;IACnDC,qBAAqB,EAAEd,IAAI,CAACc,qBAAqB;IACjDC,UAAU,EAAEf,IAAI,CAACe,UAAU;IAC3BC,cAAc,EAAEhB,IAAI,CAACgB,cAAc;IACnCC,UAAU,EAAEjB,IAAI,CAACiB,UAAU;IAK3BvB,OAAO,EAAEM,IAAI,CAACN,OAAO,KAAK,IAAI,GAAG9B,SAAS,GAAGoC,IAAI,CAACN,OAAO;IACzDwB,aAAa,EAAElB,IAAI,CAACkB,aAAa,KAAK,IAAI,GAAGtD,SAAS,GAAGoC,IAAI,CAACkB,aAAa;IAC3EC,QAAQ,EAAEnB,IAAI,CAACmB,QAAQ,KAAK,IAAI,GAAGvD,SAAS,GAAGoC,IAAI,CAACmB;EACtD,CAAC;EAEkC;IACjCC,MAAM,CAACC,MAAM,CAACpB,YAAY,EAAE;MAC1BqB,UAAU,EAAEtB,IAAI,CAACsB,UAAU;MAC3BC,SAAS,EAAEvB,IAAI,CAACuB,SAAS;MACzBC,QAAQ,EAAExB,IAAI,CAACwB;IACjB,CAAC,CAAC;EACJ;EAMA,KAAK,MAAMC,GAAG,IAAIL,MAAM,CAACM,IAAI,CAACzB,YAAY,CAAC,EAExC;IACD,IAAIA,YAAY,CAACwB,GAAG,CAAC,KAAK7D,SAAS,EAAE;MACnC,OAAOqC,YAAY,CAACwB,GAAG,CAAC;IAC1B;EACF;EAEA,OAAO;IACLxB,YAAY;IACZ0B,UAAU,EAAE;MACV3C,QAAQ,EAAEgB,IAAI,CAAChB,QAAQ;MACvBZ,SAAS;MACTwD,UAAU,EAAE5B,IAAI,CAAC4B,UAAU;MAC3BjC,iBAAiB,EAAEK,IAAI,CAACL,iBAAiB;MACzCC,gBAAgB,EAAEI,IAAI,CAACJ,gBAAgB;MACvCP,KAAK,EAAEW,IAAI,CAACX,KAAK;MACjBC,gBAAgB,EAAEU,IAAI,CAACV,gBAAgB;MACvCH,OAAO,EAAEa,IAAI,CAACb,OAAO;MACrBD,MAAM,EAAEc,IAAI,CAACd,MAAM;MACnBE,QAAQ,EAAEY,IAAI,CAACZ,QAAQ;MACvByC,SAAS,EAAE7B,IAAI,CAAC6B,SAAS;MACzBC,WAAW,EAAE9B,IAAI,CAAC6B,SAAS,IAAI7B,IAAI,CAAC8B,WAAW;MAC/CC,eAAe,EAAE/B,IAAI,CAAC+B,eAAe;MACrCvC,OAAO,EAAEQ,IAAI,CAACR,OAAO;MACrBC,KAAK,EAAEO,IAAI,CAACP,KAAK;MACjBF,gBAAgB,EAAES,IAAI,CAACT,gBAAgB;MACvCyC,eAAe,EAAEhC,IAAI,CAACgC;IACxB;EACF,CAAC;AACH;AAEA,SAASrE,UAAUA,CAACsE,GAAQ,EAAiB;EAC3C,IAAIA,GAAG,KAAKrE,SAAS,EAAE,OAAOA,SAAS;EAEvC,IAAIqE,GAAG,KAAK,MAAM,IAAIA,GAAG,IAAI,CAAC,EAAE;IAC9B,OAAO,IAAI;EACb;EAEA,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,IAAI,CAAC,IAAI,CAACA,GAAG,EAAE;IACvC,OAAO,KAAK;EACd;EAEA,OAAOA,GAAG;AACZ;AAEA,SAASvE,OAAOA,CACdwE,KAAmB,EACnBC,aAA4B,EACb;EAEf,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE,OAAOC,aAAa;EAEnD,MAAMC,MAAM,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;EAE/B,IAAIF,aAAa,EAAE;IACjBA,aAAa,CAACxD,IAAI,CAAC,GAAGyD,MAAM,CAAC;IAC7B,OAAOD,aAAa;EACtB;EACA,OAAOC,MAAM;AACf"} | ||
| {"version":3,"names":["_fs","data","require","_commander","_core","_glob","commander","option","collect","booleanify","undefined","DEFAULT_EXTENSIONS","join","version","usage","action","parseArgv","args","parse","errors","filenames","reduce","globbed","input","files","glob","sync","length","push","Array","from","Set","forEach","filename","fs","existsSync","outDir","outFile","relative","watch","skipInitialBuild","deleteDirOnStart","verbose","quiet","babelrc","keepFileExtension","outFileExtension","console","error","e","opts","babelOptions","presets","plugins","rootMode","configFile","envName","sourceType","ignore","only","retainLines","compact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceMaps","sourceFileName","sourceRoot","highlightCode","comments","Object","assign","moduleRoot","moduleIds","moduleId","key","keys","cliOptions","extensions","copyFiles","copyIgnored","includeDotfiles","sourceMapTarget","val","value","previousValue","values","split"],"sources":["../../src/babel/options.ts"],"sourcesContent":["import fs from \"fs\";\n\nimport commander from \"commander\";\nimport { version, DEFAULT_EXTENSIONS } from \"@babel/core\";\nimport glob from \"glob\";\n\nimport type { InputOptions } from \"@babel/core\";\n\n// Standard Babel input configs.\ncommander.option(\n \"-f, --filename [filename]\",\n \"The filename to use when reading from stdin. This will be used in source-maps, errors etc.\",\n);\ncommander.option(\n \"--presets [list]\",\n \"A comma-separated list of preset names.\",\n collect,\n);\ncommander.option(\n \"--plugins [list]\",\n \"A comma-separated list of plugin names.\",\n collect,\n);\ncommander.option(\"--config-file [path]\", \"Path to a .babelrc file to use.\");\ncommander.option(\n \"--env-name [name]\",\n \"The name of the 'env' to use when loading configs and plugins. \" +\n \"Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'.\",\n);\ncommander.option(\n \"--root-mode [mode]\",\n \"The project-root resolution mode. \" +\n \"One of 'root' (the default), 'upward', or 'upward-optional'.\",\n);\n\n// Basic file input configuration.\ncommander.option(\"--source-type [script|module]\", \"\");\ncommander.option(\n \"--no-babelrc\",\n \"Whether or not to look up .babelrc and .babelignore files.\",\n);\ncommander.option(\n \"--ignore [list]\",\n \"List of glob paths to **not** compile.\",\n collect,\n);\ncommander.option(\n \"--only [list]\",\n \"List of glob paths to **only** compile.\",\n collect,\n);\n\n// Misc babel config.\ncommander.option(\n \"--no-highlight-code\",\n \"Enable or disable ANSI syntax highlighting of code frames. (on by default)\",\n);\n\n// General output formatting.\ncommander.option(\n \"--no-comments\",\n \"Write comments to generated output. (true by default)\",\n);\ncommander.option(\n \"--retain-lines\",\n \"Retain line numbers. This will result in really ugly code.\",\n);\ncommander.option(\n \"--compact [true|false|auto]\",\n \"Do not include superfluous whitespace characters and line terminators.\",\n booleanify,\n);\ncommander.option(\n \"--minified\",\n \"Save as many bytes when printing. (false by default)\",\n);\ncommander.option(\n \"--auxiliary-comment-before [string]\",\n \"Print a comment before any injected non-user code.\",\n);\ncommander.option(\n \"--auxiliary-comment-after [string]\",\n \"Print a comment after any injected non-user code.\",\n);\n\n// General source map formatting.\ncommander.option(\n \"-s, --source-maps [true|false|inline|both]\",\n \"\",\n booleanify,\n undefined,\n);\ncommander.option(\n \"--source-map-target [string]\",\n \"Set `file` on returned source map.\",\n);\ncommander.option(\n \"--source-file-name [string]\",\n \"Set `sources[0]` on returned source map.\",\n);\ncommander.option(\n \"--source-root [filename]\",\n \"The root from which all sources are relative.\",\n);\n\nif (!process.env.BABEL_8_BREAKING) {\n // Config params for certain module output formats.\n commander.option(\n \"--module-root [filename]\",\n // eslint-disable-next-line max-len\n \"Optional prefix for the AMD module formatter that will be prepended to the filename on module definitions.\",\n );\n commander.option(\"-M, --module-ids\", \"Insert an explicit id for modules.\");\n commander.option(\n \"--module-id [string]\",\n \"Specify a custom name for module ids.\",\n );\n}\n\n// \"babel\" command specific arguments that are not passed to @babel/core.\ncommander.option(\n \"-x, --extensions [extensions]\",\n \"List of extensions to compile when a directory has been the input. [\" +\n DEFAULT_EXTENSIONS.join() +\n \"]\",\n collect,\n);\ncommander.option(\n \"--keep-file-extension\",\n \"Preserve the file extensions of the input files.\",\n);\ncommander.option(\"-w, --watch\", \"Recompile files on changes.\");\ncommander.option(\n \"--skip-initial-build\",\n \"Do not compile files before watching.\",\n);\ncommander.option(\n \"-o, --out-file [out]\",\n \"Compile all input files into a single file.\",\n);\ncommander.option(\n \"-d, --out-dir [out]\",\n \"Compile an input directory of modules into an output directory.\",\n);\ncommander.option(\n \"--relative\",\n \"Compile into an output directory relative to input directory or file. Requires --out-dir [out]\",\n);\n\ncommander.option(\n \"-D, --copy-files\",\n \"When compiling a directory copy over non-compilable files.\",\n);\ncommander.option(\n \"--include-dotfiles\",\n \"Include dotfiles when compiling and copying non-compilable files.\",\n);\ncommander.option(\n \"--no-copy-ignored\",\n \"Exclude ignored files when copying non-compilable files.\",\n);\n\ncommander.option(\n \"--verbose\",\n \"Log everything. This option conflicts with --quiet\",\n);\ncommander.option(\n \"--quiet\",\n \"Don't log anything. This option conflicts with --verbose\",\n);\ncommander.option(\n \"--delete-dir-on-start\",\n \"Delete the out directory before compilation.\",\n);\ncommander.option(\n \"--out-file-extension [string]\",\n \"Use a specific extension for the output files\",\n);\n\ndeclare const PACKAGE_JSON: { name: string; version: string };\ncommander.version(PACKAGE_JSON.version + \" (@babel/core \" + version + \")\");\ncommander.usage(\"[options] <files ...>\");\n// register an empty action handler so that commander.js can throw on\n// unknown options _after_ args\n// see https://github.com/tj/commander.js/issues/561#issuecomment-522209408\ncommander.action(() => {});\n\nexport type CmdOptions = {\n babelOptions: InputOptions;\n cliOptions: {\n filename: string;\n filenames: string[];\n extensions: string[];\n keepFileExtension: boolean;\n outFileExtension: string;\n watch: boolean;\n skipInitialBuild: boolean;\n outFile: string;\n outDir: string;\n relative: boolean;\n copyFiles: boolean;\n copyIgnored: boolean;\n includeDotfiles: boolean;\n verbose: boolean;\n quiet: boolean;\n deleteDirOnStart: boolean;\n sourceMapTarget: string;\n };\n};\n\nexport default function parseArgv(args: Array<string>): CmdOptions | null {\n //\n commander.parse(args);\n\n const errors: string[] = [];\n\n let filenames = commander.args.reduce(function (globbed: string[], input) {\n let files = glob.sync(input);\n if (!files.length) files = [input];\n globbed.push(...files);\n return globbed;\n }, []);\n\n filenames = Array.from(new Set(filenames));\n\n filenames.forEach(function (filename) {\n if (!fs.existsSync(filename)) {\n errors.push(filename + \" does not exist\");\n }\n });\n\n if (commander.outDir && !filenames.length) {\n errors.push(\"--out-dir requires filenames\");\n }\n\n if (commander.outFile && commander.outDir) {\n errors.push(\"--out-file and --out-dir cannot be used together\");\n }\n\n if (commander.relative && !commander.outDir) {\n errors.push(\"--relative requires --out-dir usage\");\n }\n\n if (commander.watch) {\n if (!commander.outFile && !commander.outDir) {\n errors.push(\"--watch requires --out-file or --out-dir\");\n }\n\n if (!filenames.length) {\n errors.push(\"--watch requires filenames\");\n }\n }\n\n if (commander.skipInitialBuild && !commander.watch) {\n errors.push(\"--skip-initial-build requires --watch\");\n }\n if (commander.deleteDirOnStart && !commander.outDir) {\n errors.push(\"--delete-dir-on-start requires --out-dir\");\n }\n\n if (commander.verbose && commander.quiet) {\n errors.push(\"--verbose and --quiet cannot be used together\");\n }\n\n if (\n !commander.outDir &&\n filenames.length === 0 &&\n typeof commander.filename !== \"string\" &&\n commander.babelrc !== false\n ) {\n errors.push(\n \"stdin compilation requires either -f/--filename [filename] or --no-babelrc\",\n );\n }\n\n if (commander.keepFileExtension && commander.outFileExtension) {\n errors.push(\n \"--out-file-extension cannot be used with --keep-file-extension\",\n );\n }\n\n if (errors.length) {\n console.error(\"babel:\");\n errors.forEach(function (e) {\n console.error(\" \" + e);\n });\n return null;\n }\n\n const opts = commander.opts();\n\n const babelOptions: InputOptions = {\n presets: opts.presets,\n plugins: opts.plugins,\n rootMode: opts.rootMode,\n configFile: opts.configFile,\n envName: opts.envName,\n sourceType: opts.sourceType,\n ignore: opts.ignore,\n only: opts.only,\n retainLines: opts.retainLines,\n compact: opts.compact,\n minified: opts.minified,\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n sourceMaps: opts.sourceMaps,\n sourceFileName: opts.sourceFileName,\n sourceRoot: opts.sourceRoot,\n\n // Commander will default the \"--no-\" arguments to true, but we want to\n // leave them undefined so that @babel/core can handle the\n // default-assignment logic on its own.\n babelrc: opts.babelrc === true ? undefined : opts.babelrc,\n highlightCode: opts.highlightCode === true ? undefined : opts.highlightCode,\n comments: opts.comments === true ? undefined : opts.comments,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n Object.assign(babelOptions, {\n moduleRoot: opts.moduleRoot,\n moduleIds: opts.moduleIds,\n moduleId: opts.moduleId,\n });\n }\n\n // If the @babel/cli version is newer than the @babel/core version, and we have added\n // new options for @babel/core, we'll potentially get option validation errors from\n // @babel/core. To avoid that, we delete undefined options, so @babel/core will only\n // give the error if users actually pass an unsupported CLI option.\n for (const key of Object.keys(babelOptions) as Array<\n keyof typeof babelOptions\n >) {\n if (babelOptions[key] === undefined) {\n delete babelOptions[key];\n }\n }\n\n return {\n babelOptions,\n cliOptions: {\n filename: opts.filename,\n filenames,\n extensions: opts.extensions,\n keepFileExtension: opts.keepFileExtension,\n outFileExtension: opts.outFileExtension,\n watch: opts.watch,\n skipInitialBuild: opts.skipInitialBuild,\n outFile: opts.outFile,\n outDir: opts.outDir,\n relative: opts.relative,\n copyFiles: opts.copyFiles,\n copyIgnored: opts.copyFiles && opts.copyIgnored,\n includeDotfiles: opts.includeDotfiles,\n verbose: opts.verbose,\n quiet: opts.quiet,\n deleteDirOnStart: opts.deleteDirOnStart,\n sourceMapTarget: opts.sourceMapTarget,\n },\n };\n}\n\nfunction booleanify(val: any): boolean | any {\n if (val === undefined) return undefined;\n\n if (val === \"true\" || val == 1) {\n return true;\n }\n\n if (val === \"false\" || val == 0 || !val) {\n return false;\n }\n\n return val;\n}\n\nfunction collect(\n value: string | any,\n previousValue: Array<string>,\n): Array<string> {\n // If the user passed the option with no value, like \"babel file.js --presets\", do nothing.\n if (typeof value !== \"string\") return previousValue;\n\n const values = value.split(\",\");\n\n if (previousValue) {\n previousValue.push(...values);\n return previousValue;\n }\n return values;\n}\n"],"mappings":"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"} |
+71
-31
@@ -0,11 +1,51 @@ | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.addSourceMappingUrl = addSourceMappingUrl; | ||
| exports.chmod = chmod; | ||
| exports.compile = compile; | ||
| exports.debounce = debounce; | ||
| exports.deleteDir = deleteDir; | ||
| exports.hasDataSourcemap = hasDataSourcemap; | ||
| exports.isCompilableExtension = isCompilableExtension; | ||
| exports.readdir = readdir; | ||
| exports.readdirForCompilable = readdirForCompilable; | ||
| exports.transformRepl = transformRepl; | ||
| exports.withExtension = withExtension; | ||
| function _fsReaddirRecursive() { | ||
| const data = require("fs-readdir-recursive"); | ||
| _fsReaddirRecursive = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function babel() { | ||
| const data = require("@babel/core"); | ||
| babel = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _path() { | ||
| const data = require("path"); | ||
| _path = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| function _fs() { | ||
| const data = require("fs"); | ||
| _fs = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| var watcher = require("./watcher"); | ||
| function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
| function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
| import readdirRecursive from "fs-readdir-recursive"; | ||
| import * as babel from "@babel/core"; | ||
| import path from "path"; | ||
| import fs from "fs"; | ||
| import * as watcher from "./watcher.js"; | ||
| export function chmod(src, dest) { | ||
| function chmod(src, dest) { | ||
| try { | ||
| fs.chmodSync(dest, fs.statSync(src).mode); | ||
| _fs().chmodSync(dest, _fs().statSync(src).mode); | ||
| } catch (err) { | ||
@@ -15,5 +55,5 @@ console.warn(`Cannot change permissions of ${dest}`); | ||
| } | ||
| export function readdir(dirname, includeDotfiles, filter) { | ||
| return readdirRecursive(dirname, (filename, index, currentDirectory) => { | ||
| const stat = fs.statSync(path.join(currentDirectory, filename)); | ||
| function readdir(dirname, includeDotfiles, filter) { | ||
| return _fsReaddirRecursive()(dirname, (filename, index, currentDirectory) => { | ||
| const stat = _fs().statSync(_path().join(currentDirectory, filename)); | ||
| if (stat.isDirectory()) return true; | ||
@@ -23,3 +63,3 @@ return (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename)); | ||
| } | ||
| export function readdirForCompilable(dirname, includeDotfiles, altExts) { | ||
| function readdirForCompilable(dirname, includeDotfiles, altExts) { | ||
| return readdir(dirname, includeDotfiles, function (filename) { | ||
@@ -29,11 +69,11 @@ return isCompilableExtension(filename, altExts); | ||
| } | ||
| export function isCompilableExtension(filename, altExts) { | ||
| const exts = altExts || babel.DEFAULT_EXTENSIONS; | ||
| const ext = path.extname(filename); | ||
| function isCompilableExtension(filename, altExts) { | ||
| const exts = altExts || babel().DEFAULT_EXTENSIONS; | ||
| const ext = _path().extname(filename); | ||
| return exts.includes(ext); | ||
| } | ||
| export function addSourceMappingUrl(code, loc) { | ||
| return code + "\n//# sourceMappingURL=" + path.basename(loc); | ||
| function addSourceMappingUrl(code, loc) { | ||
| return code + "\n//# sourceMappingURL=" + _path().basename(loc); | ||
| } | ||
| export function hasDataSourcemap(code) { | ||
| function hasDataSourcemap(code) { | ||
| const pos = code.lastIndexOf("\n", code.length - 2); | ||
@@ -45,3 +85,3 @@ return pos != -1 && code.lastIndexOf("//# sourceMappingURL") < pos; | ||
| }; | ||
| export function transformRepl(filename, code, opts) { | ||
| function transformRepl(filename, code, opts) { | ||
| opts = Object.assign({}, opts, { | ||
@@ -52,3 +92,3 @@ caller: CALLER, | ||
| return new Promise((resolve, reject) => { | ||
| babel.transform(code, opts, (err, result) => { | ||
| babel().transform(code, opts, (err, result) => { | ||
| if (err) reject(err);else resolve(result); | ||
@@ -58,3 +98,3 @@ }); | ||
| } | ||
| export function compile(_x, _x2) { | ||
| function compile(_x, _x2) { | ||
| return _compile.apply(this, arguments); | ||
@@ -68,3 +108,3 @@ } | ||
| const result = yield new Promise((resolve, reject) => { | ||
| babel.transformFile(filename, opts, (err, result) => { | ||
| babel().transformFile(filename, opts, (err, result) => { | ||
| if (err) reject(err);else resolve(result); | ||
@@ -83,13 +123,13 @@ }); | ||
| } | ||
| export function deleteDir(path) { | ||
| if (fs.existsSync(path)) { | ||
| fs.readdirSync(path).forEach(function (file) { | ||
| function deleteDir(path) { | ||
| if (_fs().existsSync(path)) { | ||
| _fs().readdirSync(path).forEach(function (file) { | ||
| const curPath = path + "/" + file; | ||
| if (fs.lstatSync(curPath).isDirectory()) { | ||
| if (_fs().lstatSync(curPath).isDirectory()) { | ||
| deleteDir(curPath); | ||
| } else { | ||
| fs.unlinkSync(curPath); | ||
| _fs().unlinkSync(curPath); | ||
| } | ||
| }); | ||
| fs.rmdirSync(path); | ||
| _fs().rmdirSync(path); | ||
| } | ||
@@ -101,7 +141,7 @@ } | ||
| }); | ||
| export function withExtension(filename, ext = ".js") { | ||
| const newBasename = path.basename(filename, path.extname(filename)) + ext; | ||
| return path.join(path.dirname(filename), newBasename); | ||
| function withExtension(filename, ext = ".js") { | ||
| const newBasename = _path().basename(filename, _path().extname(filename)) + ext; | ||
| return _path().join(_path().dirname(filename), newBasename); | ||
| } | ||
| export function debounce(fn, time) { | ||
| function debounce(fn, time) { | ||
| let timer; | ||
@@ -108,0 +148,0 @@ function debounced() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["readdirRecursive","babel","path","fs","watcher","chmod","src","dest","chmodSync","statSync","mode","err","console","warn","readdir","dirname","includeDotfiles","filter","filename","index","currentDirectory","stat","join","isDirectory","readdirForCompilable","altExts","isCompilableExtension","exts","DEFAULT_EXTENSIONS","ext","extname","includes","addSourceMappingUrl","code","loc","basename","hasDataSourcemap","pos","lastIndexOf","length","CALLER","name","transformRepl","opts","Object","assign","caller","Promise","resolve","reject","transform","result","compile","_x","_x2","_compile","apply","arguments","_asyncToGenerator","transformFile","externalDependencies","updateExternalDependencies","deleteDir","existsSync","readdirSync","forEach","file","curPath","lstatSync","unlinkSync","rmdirSync","process","on","error","exitCode","withExtension","newBasename","debounce","fn","time","timer","debounced","clearTimeout","setTimeout","flush"],"sources":["../../src/babel/util.ts"],"sourcesContent":["import readdirRecursive from \"fs-readdir-recursive\";\nimport * as babel from \"@babel/core\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nimport * as watcher from \"./watcher\";\n\nimport type { FileResult, InputOptions } from \"@babel/core\";\n\nexport function chmod(src: string, dest: string): void {\n try {\n fs.chmodSync(dest, fs.statSync(src).mode);\n } catch (err) {\n console.warn(`Cannot change permissions of ${dest}`);\n }\n}\n\ntype ReaddirFilter = (filename: string) => boolean;\n\nexport function readdir(\n dirname: string,\n includeDotfiles: boolean,\n filter?: ReaddirFilter,\n): Array<string> {\n return readdirRecursive(dirname, (filename, index, currentDirectory) => {\n const stat = fs.statSync(path.join(currentDirectory, filename));\n\n if (stat.isDirectory()) return true;\n\n return (\n (includeDotfiles || filename[0] !== \".\") && (!filter || filter(filename))\n );\n });\n}\n\nexport function readdirForCompilable(\n dirname: string,\n includeDotfiles: boolean,\n altExts?: Array<string>,\n): Array<string> {\n return readdir(dirname, includeDotfiles, function (filename) {\n return isCompilableExtension(filename, altExts);\n });\n}\n\n/**\n * Test if a filename ends with a compilable extension.\n */\nexport function isCompilableExtension(\n filename: string,\n altExts?: readonly string[],\n): boolean {\n const exts = altExts || babel.DEFAULT_EXTENSIONS;\n const ext = path.extname(filename);\n return exts.includes(ext);\n}\n\nexport function addSourceMappingUrl(code: string, loc: string): string {\n return code + \"\\n//# sourceMappingURL=\" + path.basename(loc);\n}\n\nexport function hasDataSourcemap(code: string): boolean {\n const pos = code.lastIndexOf(\"\\n\", code.length - 2);\n return pos != -1 && code.lastIndexOf(\"//# sourceMappingURL\") < pos;\n}\n\nconst CALLER = {\n name: \"@babel/cli\",\n};\n\nexport function transformRepl(filename: string, code: string, opts: any) {\n opts = {\n ...opts,\n caller: CALLER,\n filename,\n };\n\n return new Promise<FileResult>((resolve, reject) => {\n babel.transform(code, opts, (err, result) => {\n if (err) reject(err);\n else resolve(result);\n });\n });\n}\n\nexport async function compile(filename: string, opts: InputOptions) {\n opts = {\n ...opts,\n caller: CALLER,\n };\n\n // TODO (Babel 8): Use `babel.transformFileAsync`\n const result = await new Promise<FileResult>((resolve, reject) => {\n babel.transformFile(filename, opts, (err, result) => {\n if (err) reject(err);\n else resolve(result);\n });\n });\n\n if (result) {\n if (!process.env.BABEL_8_BREAKING) {\n if (!result.externalDependencies) return result;\n }\n watcher.updateExternalDependencies(filename, result.externalDependencies);\n }\n\n return result;\n}\n\nexport function deleteDir(path: string): void {\n if (fs.existsSync(path)) {\n fs.readdirSync(path).forEach(function (file) {\n const curPath = path + \"/\" + file;\n if (fs.lstatSync(curPath).isDirectory()) {\n // recurse\n deleteDir(curPath);\n } else {\n // delete file\n fs.unlinkSync(curPath);\n }\n });\n fs.rmdirSync(path);\n }\n}\n\nprocess.on(\"uncaughtException\", function (err) {\n console.error(err);\n process.exitCode = 1;\n});\n\nexport function withExtension(filename: string, ext: string = \".js\") {\n const newBasename = path.basename(filename, path.extname(filename)) + ext;\n return path.join(path.dirname(filename), newBasename);\n}\n\nexport function debounce(fn: () => void, time: number) {\n let timer: NodeJS.Timeout;\n function debounced() {\n clearTimeout(timer);\n timer = setTimeout(fn, time);\n }\n debounced.flush = () => {\n clearTimeout(timer);\n fn();\n };\n return debounced;\n}\n"],"mappings":";;AAAA,OAAOA,gBAAgB,MAAM,sBAAsB;AACnD,OAAO,KAAKC,KAAK,MAAM,aAAa;AACpC,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,IAAI;AAEnB,OAAO,KAAKC,OAAO,MAAM,cAAW;AAIpC,OAAO,SAASC,KAAKA,CAACC,GAAW,EAAEC,IAAY,EAAQ;EACrD,IAAI;IACFJ,EAAE,CAACK,SAAS,CAACD,IAAI,EAAEJ,EAAE,CAACM,QAAQ,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC;EAC3C,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZC,OAAO,CAACC,IAAI,CAAE,gCAA+BN,IAAK,EAAC,CAAC;EACtD;AACF;AAIA,OAAO,SAASO,OAAOA,CACrBC,OAAe,EACfC,eAAwB,EACxBC,MAAsB,EACP;EACf,OAAOjB,gBAAgB,CAACe,OAAO,EAAE,CAACG,QAAQ,EAAEC,KAAK,EAAEC,gBAAgB,KAAK;IACtE,MAAMC,IAAI,GAAGlB,EAAE,CAACM,QAAQ,CAACP,IAAI,CAACoB,IAAI,CAACF,gBAAgB,EAAEF,QAAQ,CAAC,CAAC;IAE/D,IAAIG,IAAI,CAACE,WAAW,EAAE,EAAE,OAAO,IAAI;IAEnC,OACE,CAACP,eAAe,IAAIE,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAACD,MAAM,IAAIA,MAAM,CAACC,QAAQ,CAAC,CAAC;EAE7E,CAAC,CAAC;AACJ;AAEA,OAAO,SAASM,oBAAoBA,CAClCT,OAAe,EACfC,eAAwB,EACxBS,OAAuB,EACR;EACf,OAAOX,OAAO,CAACC,OAAO,EAAEC,eAAe,EAAE,UAAUE,QAAQ,EAAE;IAC3D,OAAOQ,qBAAqB,CAACR,QAAQ,EAAEO,OAAO,CAAC;EACjD,CAAC,CAAC;AACJ;AAKA,OAAO,SAASC,qBAAqBA,CACnCR,QAAgB,EAChBO,OAA2B,EAClB;EACT,MAAME,IAAI,GAAGF,OAAO,IAAIxB,KAAK,CAAC2B,kBAAkB;EAChD,MAAMC,GAAG,GAAG3B,IAAI,CAAC4B,OAAO,CAACZ,QAAQ,CAAC;EAClC,OAAOS,IAAI,CAACI,QAAQ,CAACF,GAAG,CAAC;AAC3B;AAEA,OAAO,SAASG,mBAAmBA,CAACC,IAAY,EAAEC,GAAW,EAAU;EACrE,OAAOD,IAAI,GAAG,yBAAyB,GAAG/B,IAAI,CAACiC,QAAQ,CAACD,GAAG,CAAC;AAC9D;AAEA,OAAO,SAASE,gBAAgBA,CAACH,IAAY,EAAW;EACtD,MAAMI,GAAG,GAAGJ,IAAI,CAACK,WAAW,CAAC,IAAI,EAAEL,IAAI,CAACM,MAAM,GAAG,CAAC,CAAC;EACnD,OAAOF,GAAG,IAAI,CAAC,CAAC,IAAIJ,IAAI,CAACK,WAAW,CAAC,sBAAsB,CAAC,GAAGD,GAAG;AACpE;AAEA,MAAMG,MAAM,GAAG;EACbC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,SAASC,aAAaA,CAACxB,QAAgB,EAAEe,IAAY,EAAEU,IAAS,EAAE;EACvEA,IAAI,GAAAC,MAAA,CAAAC,MAAA,KACCF,IAAI;IACPG,MAAM,EAAEN,MAAM;IACdtB;EAAQ,EACT;EAED,OAAO,IAAI6B,OAAO,CAAa,CAACC,OAAO,EAAEC,MAAM,KAAK;IAClDhD,KAAK,CAACiD,SAAS,CAACjB,IAAI,EAAEU,IAAI,EAAE,CAAChC,GAAG,EAAEwC,MAAM,KAAK;MAC3C,IAAIxC,GAAG,EAAEsC,MAAM,CAACtC,GAAG,CAAC,CAAC,KAChBqC,OAAO,CAACG,MAAM,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,gBAAsBC,OAAOA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,QAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAsB5B,SAAAF,SAAA;EAAAA,QAAA,GAAAG,iBAAA,CAtBM,WAAuBxC,QAAgB,EAAEyB,IAAkB,EAAE;IAClEA,IAAI,GAAAC,MAAA,CAAAC,MAAA,KACCF,IAAI;MACPG,MAAM,EAAEN;IAAM,EACf;IAGD,MAAMW,MAAM,SAAS,IAAIJ,OAAO,CAAa,CAACC,OAAO,EAAEC,MAAM,KAAK;MAChEhD,KAAK,CAAC0D,aAAa,CAACzC,QAAQ,EAAEyB,IAAI,EAAE,CAAChC,GAAG,EAAEwC,MAAM,KAAK;QACnD,IAAIxC,GAAG,EAAEsC,MAAM,CAACtC,GAAG,CAAC,CAAC,KAChBqC,OAAO,CAACG,MAAM,CAAC;MACtB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAIA,MAAM,EAAE;MACyB;QACjC,IAAI,CAACA,MAAM,CAACS,oBAAoB,EAAE,OAAOT,MAAM;MACjD;MACA/C,OAAO,CAACyD,0BAA0B,CAAC3C,QAAQ,EAAEiC,MAAM,CAACS,oBAAoB,CAAC;IAC3E;IAEA,OAAOT,MAAM;EACf,CAAC;EAAA,OAAAI,QAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,OAAO,SAASK,SAASA,CAAC5D,IAAY,EAAQ;EAC5C,IAAIC,EAAE,CAAC4D,UAAU,CAAC7D,IAAI,CAAC,EAAE;IACvBC,EAAE,CAAC6D,WAAW,CAAC9D,IAAI,CAAC,CAAC+D,OAAO,CAAC,UAAUC,IAAI,EAAE;MAC3C,MAAMC,OAAO,GAAGjE,IAAI,GAAG,GAAG,GAAGgE,IAAI;MACjC,IAAI/D,EAAE,CAACiE,SAAS,CAACD,OAAO,CAAC,CAAC5C,WAAW,EAAE,EAAE;QAEvCuC,SAAS,CAACK,OAAO,CAAC;MACpB,CAAC,MAAM;QAELhE,EAAE,CAACkE,UAAU,CAACF,OAAO,CAAC;MACxB;IACF,CAAC,CAAC;IACFhE,EAAE,CAACmE,SAAS,CAACpE,IAAI,CAAC;EACpB;AACF;AAEAqE,OAAO,CAACC,EAAE,CAAC,mBAAmB,EAAE,UAAU7D,GAAG,EAAE;EAC7CC,OAAO,CAAC6D,KAAK,CAAC9D,GAAG,CAAC;EAClB4D,OAAO,CAACG,QAAQ,GAAG,CAAC;AACtB,CAAC,CAAC;AAEF,OAAO,SAASC,aAAaA,CAACzD,QAAgB,EAAEW,GAAW,GAAG,KAAK,EAAE;EACnE,MAAM+C,WAAW,GAAG1E,IAAI,CAACiC,QAAQ,CAACjB,QAAQ,EAAEhB,IAAI,CAAC4B,OAAO,CAACZ,QAAQ,CAAC,CAAC,GAAGW,GAAG;EACzE,OAAO3B,IAAI,CAACoB,IAAI,CAACpB,IAAI,CAACa,OAAO,CAACG,QAAQ,CAAC,EAAE0D,WAAW,CAAC;AACvD;AAEA,OAAO,SAASC,QAAQA,CAACC,EAAc,EAAEC,IAAY,EAAE;EACrD,IAAIC,KAAqB;EACzB,SAASC,SAASA,CAAA,EAAG;IACnBC,YAAY,CAACF,KAAK,CAAC;IACnBA,KAAK,GAAGG,UAAU,CAACL,EAAE,EAAEC,IAAI,CAAC;EAC9B;EACAE,SAAS,CAACG,KAAK,GAAG,MAAM;IACtBF,YAAY,CAACF,KAAK,CAAC;IACnBF,EAAE,EAAE;EACN,CAAC;EACD,OAAOG,SAAS;AAClB"} | ||
| {"version":3,"names":["_fsReaddirRecursive","data","require","babel","_path","_fs","watcher","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","chmod","src","dest","fs","chmodSync","statSync","mode","console","warn","readdir","dirname","includeDotfiles","filter","readdirRecursive","filename","index","currentDirectory","stat","path","join","isDirectory","readdirForCompilable","altExts","isCompilableExtension","exts","DEFAULT_EXTENSIONS","ext","extname","includes","addSourceMappingUrl","code","loc","basename","hasDataSourcemap","pos","lastIndexOf","length","CALLER","name","transformRepl","opts","Object","assign","caller","transform","result","compile","_x","_x2","_compile","transformFile","externalDependencies","updateExternalDependencies","deleteDir","existsSync","readdirSync","forEach","file","curPath","lstatSync","unlinkSync","rmdirSync","process","on","exitCode","withExtension","newBasename","debounce","time","timer","debounced","clearTimeout","setTimeout","flush"],"sources":["../../src/babel/util.ts"],"sourcesContent":["import readdirRecursive from \"fs-readdir-recursive\";\nimport * as babel from \"@babel/core\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nimport * as watcher from \"./watcher\";\n\nimport type { FileResult, InputOptions } from \"@babel/core\";\n\nexport function chmod(src: string, dest: string): void {\n try {\n fs.chmodSync(dest, fs.statSync(src).mode);\n } catch (err) {\n console.warn(`Cannot change permissions of ${dest}`);\n }\n}\n\ntype ReaddirFilter = (filename: string) => boolean;\n\nexport function readdir(\n dirname: string,\n includeDotfiles: boolean,\n filter?: ReaddirFilter,\n): Array<string> {\n return readdirRecursive(dirname, (filename, index, currentDirectory) => {\n const stat = fs.statSync(path.join(currentDirectory, filename));\n\n if (stat.isDirectory()) return true;\n\n return (\n (includeDotfiles || filename[0] !== \".\") && (!filter || filter(filename))\n );\n });\n}\n\nexport function readdirForCompilable(\n dirname: string,\n includeDotfiles: boolean,\n altExts?: Array<string>,\n): Array<string> {\n return readdir(dirname, includeDotfiles, function (filename) {\n return isCompilableExtension(filename, altExts);\n });\n}\n\n/**\n * Test if a filename ends with a compilable extension.\n */\nexport function isCompilableExtension(\n filename: string,\n altExts?: readonly string[],\n): boolean {\n const exts = altExts || babel.DEFAULT_EXTENSIONS;\n const ext = path.extname(filename);\n return exts.includes(ext);\n}\n\nexport function addSourceMappingUrl(code: string, loc: string): string {\n return code + \"\\n//# sourceMappingURL=\" + path.basename(loc);\n}\n\nexport function hasDataSourcemap(code: string): boolean {\n const pos = code.lastIndexOf(\"\\n\", code.length - 2);\n return pos != -1 && code.lastIndexOf(\"//# sourceMappingURL\") < pos;\n}\n\nconst CALLER = {\n name: \"@babel/cli\",\n};\n\nexport function transformRepl(filename: string, code: string, opts: any) {\n opts = {\n ...opts,\n caller: CALLER,\n filename,\n };\n\n return new Promise<FileResult>((resolve, reject) => {\n babel.transform(code, opts, (err, result) => {\n if (err) reject(err);\n else resolve(result);\n });\n });\n}\n\nexport async function compile(filename: string, opts: InputOptions) {\n opts = {\n ...opts,\n caller: CALLER,\n };\n\n // TODO (Babel 8): Use `babel.transformFileAsync`\n const result = await new Promise<FileResult>((resolve, reject) => {\n babel.transformFile(filename, opts, (err, result) => {\n if (err) reject(err);\n else resolve(result);\n });\n });\n\n if (result) {\n if (!process.env.BABEL_8_BREAKING) {\n if (!result.externalDependencies) return result;\n }\n watcher.updateExternalDependencies(filename, result.externalDependencies);\n }\n\n return result;\n}\n\nexport function deleteDir(path: string): void {\n if (fs.existsSync(path)) {\n fs.readdirSync(path).forEach(function (file) {\n const curPath = path + \"/\" + file;\n if (fs.lstatSync(curPath).isDirectory()) {\n // recurse\n deleteDir(curPath);\n } else {\n // delete file\n fs.unlinkSync(curPath);\n }\n });\n fs.rmdirSync(path);\n }\n}\n\nprocess.on(\"uncaughtException\", function (err) {\n console.error(err);\n process.exitCode = 1;\n});\n\nexport function withExtension(filename: string, ext: string = \".js\") {\n const newBasename = path.basename(filename, path.extname(filename)) + ext;\n return path.join(path.dirname(filename), newBasename);\n}\n\nexport function debounce(fn: () => void, time: number) {\n let timer: NodeJS.Timeout;\n function debounced() {\n clearTimeout(timer);\n timer = setTimeout(fn, time);\n }\n debounced.flush = () => {\n clearTimeout(timer);\n fn();\n };\n return debounced;\n}\n"],"mappings":"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"} |
+27
-13
@@ -1,3 +0,18 @@ | ||
| import { createRequire } from "module"; | ||
| import path from "path"; | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.enable = enable; | ||
| exports.onFilesChange = onFilesChange; | ||
| exports.startWatcher = startWatcher; | ||
| exports.updateExternalDependencies = updateExternalDependencies; | ||
| exports.watch = watch; | ||
| function _path() { | ||
| const data = require("path"); | ||
| _path = function () { | ||
| return data; | ||
| }; | ||
| return data; | ||
| } | ||
| const fileToDeps = new Map(); | ||
@@ -9,3 +24,3 @@ const depToFiles = new Map(); | ||
| let hasStarted = false; | ||
| export function enable({ | ||
| function enable({ | ||
| enableGlobbing | ||
@@ -29,3 +44,3 @@ }) { | ||
| } | ||
| export function startWatcher() { | ||
| function startWatcher() { | ||
| hasStarted = true; | ||
@@ -40,3 +55,3 @@ for (const dep of watchQueue) { | ||
| } | ||
| export function watch(filename) { | ||
| function watch(filename) { | ||
| if (!isWatchMode) { | ||
@@ -46,8 +61,8 @@ throw new Error("Internal Babel error: .watch called when not in watch mode."); | ||
| if (!hasStarted) { | ||
| watchQueue.add(path.resolve(filename)); | ||
| watchQueue.add(_path().resolve(filename)); | ||
| } else { | ||
| watcher.add(path.resolve(filename)); | ||
| watcher.add(_path().resolve(filename)); | ||
| } | ||
| } | ||
| export function onFilesChange(callback) { | ||
| function onFilesChange(callback) { | ||
| if (!isWatchMode) { | ||
@@ -59,10 +74,10 @@ throw new Error("Internal Babel error: .onFilesChange called when not in watch mode."); | ||
| if (event !== "change" && event !== "add") return; | ||
| const absoluteFile = path.resolve(filename); | ||
| const absoluteFile = _path().resolve(filename); | ||
| callback([absoluteFile, ...((_depToFiles$get = depToFiles.get(absoluteFile)) != null ? _depToFiles$get : [])], event, absoluteFile); | ||
| }); | ||
| } | ||
| export function updateExternalDependencies(filename, dependencies) { | ||
| function updateExternalDependencies(filename, dependencies) { | ||
| if (!isWatchMode) return; | ||
| const absFilename = path.resolve(filename); | ||
| const absDependencies = new Set(Array.from(dependencies, dep => path.resolve(dep))); | ||
| const absFilename = _path().resolve(filename); | ||
| const absDependencies = new Set(Array.from(dependencies, dep => _path().resolve(dep))); | ||
| const deps = fileToDeps.get(absFilename); | ||
@@ -111,3 +126,2 @@ if (deps) { | ||
| function requireChokidar() { | ||
| const require = createRequire(import.meta.url); | ||
| try { | ||
@@ -114,0 +128,0 @@ return parseInt(process.versions.node) >= 8 ? require("chokidar") : require("@nicolo-ribaudo/chokidar-2"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["createRequire","path","fileToDeps","Map","depToFiles","isWatchMode","watcher","watchQueue","Set","hasStarted","enable","enableGlobbing","FSWatcher","requireChokidar","options","disableGlobbing","persistent","ignoreInitial","awaitWriteFinish","stabilityThreshold","pollInterval","on","unwatchFile","startWatcher","dep","add","clear","console","log","watch","filename","Error","resolve","onFilesChange","callback","event","_depToFiles$get","absoluteFile","get","updateExternalDependencies","dependencies","absFilename","absDependencies","Array","from","deps","has","removeFileDependency","set","delete","size","unwatch","require","import","meta","url","parseInt","process","versions","node","err","error"],"sources":["../../src/babel/watcher.ts"],"sourcesContent":["import { createRequire } from \"module\";\nimport path from \"path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map<string, Set<string>>();\nconst depToFiles = new Map<string, Set<string>>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set<string>();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set<string>,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep);\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return process.env.BABEL_8_BREAKING\n ? require(\"chokidar\")\n : parseInt(process.versions.node) >= 8\n ? require(\"chokidar\")\n : require(\"@nicolo-ribaudo/chokidar-2\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,QAAQ;AACtC,OAAOC,IAAI,MAAM,MAAM;AAGvB,MAAMC,UAAU,GAAG,IAAIC,GAAG,EAAuB;AACjD,MAAMC,UAAU,GAAG,IAAID,GAAG,EAAuB;AAEjD,IAAIE,WAAW,GAAG,KAAK;AACvB,IAAIC,OAAkB;AACtB,MAAMC,UAAU,GAAG,IAAIC,GAAG,EAAU;AACpC,IAAIC,UAAU,GAAG,KAAK;AAEtB,OAAO,SAASC,MAAMA,CAAC;EAAEC;AAA4C,CAAC,EAAE;EACtEN,WAAW,GAAG,IAAI;EAElB,MAAM;IAAEO;EAAU,CAAC,GAAGC,eAAe,EAAE;EAEvC,MAAMC,OAAqB,GAAG;IAC5BC,eAAe,EAAE,CAACJ,cAAc;IAChCK,UAAU,EAAE,IAAI;IAChBC,aAAa,EAAE,IAAI;IACnBC,gBAAgB,EAAE;MAChBC,kBAAkB,EAAE,EAAE;MACtBC,YAAY,EAAE;IAChB;EACF,CAAC;EACDd,OAAO,GAAG,IAAIM,SAAS,CAACE,OAAO,CAAC;EAEhCR,OAAO,CAACe,EAAE,CAAC,QAAQ,EAAEC,WAAW,CAAC;AACnC;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC7Bd,UAAU,GAAG,IAAI;EAEjB,KAAK,MAAMe,GAAG,IAAIjB,UAAU,EAAE;IAC5BD,OAAO,CAACmB,GAAG,CAACD,GAAG,CAAC;EAClB;EACAjB,UAAU,CAACmB,KAAK,EAAE;EAElBpB,OAAO,CAACe,EAAE,CAAC,OAAO,EAAE,MAAM;IACxBM,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;EACtC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,KAAKA,CAACC,QAAgB,EAAQ;EAC5C,IAAI,CAACzB,WAAW,EAAE;IAChB,MAAM,IAAI0B,KAAK,CACb,6DAA6D,CAC9D;EACH;EAEA,IAAI,CAACtB,UAAU,EAAE;IACfF,UAAU,CAACkB,GAAG,CAACxB,IAAI,CAAC+B,OAAO,CAACF,QAAQ,CAAC,CAAC;EACxC,CAAC,MAAM;IACLxB,OAAO,CAACmB,GAAG,CAACxB,IAAI,CAAC+B,OAAO,CAACF,QAAQ,CAAC,CAAC;EACrC;AACF;AASA,OAAO,SAASG,aAAaA,CAC3BC,QAAqE,EAC/D;EACN,IAAI,CAAC7B,WAAW,EAAE;IAChB,MAAM,IAAI0B,KAAK,CACb,qEAAqE,CACtE;EACH;EAEAzB,OAAO,CAACe,EAAE,CAAC,KAAK,EAAE,CAACc,KAAK,EAAEL,QAAQ,KAAK;IAAA,IAAAM,eAAA;IACrC,IAAID,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,KAAK,EAAE;IAE3C,MAAME,YAAY,GAAGpC,IAAI,CAAC+B,OAAO,CAACF,QAAQ,CAAC;IAC3CI,QAAQ,CACN,CAACG,YAAY,EAAE,KAAAD,eAAA,GAAIhC,UAAU,CAACkC,GAAG,CAACD,YAAY,CAAC,YAAAD,eAAA,GAAI,EAAE,CAAC,CAAC,EACvDD,KAAK,EACLE,YAAY,CACb;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,SAASE,0BAA0BA,CACxCT,QAAgB,EAChBU,YAAyB,EACzB;EACA,IAAI,CAACnC,WAAW,EAAE;EAGlB,MAAMoC,WAAW,GAAGxC,IAAI,CAAC+B,OAAO,CAACF,QAAQ,CAAC;EAC1C,MAAMY,eAAe,GAAG,IAAIlC,GAAG,CAC7BmC,KAAK,CAACC,IAAI,CAACJ,YAAY,EAAEhB,GAAG,IAAIvB,IAAI,CAAC+B,OAAO,CAACR,GAAG,CAAC,CAAC,CACnD;EAED,MAAMqB,IAAI,GAAG3C,UAAU,CAACoC,GAAG,CAACG,WAAW,CAAC;EACxC,IAAII,IAAI,EAAE;IACR,KAAK,MAAMrB,GAAG,IAAIqB,IAAI,EAAE;MACtB,IAAI,CAACH,eAAe,CAACI,GAAG,CAACtB,GAAG,CAAC,EAAE;QAC7BuB,oBAAoB,CAACN,WAAW,EAAEjB,GAAG,CAAC;MACxC;IACF;EACF;EACA,KAAK,MAAMA,GAAG,IAAIkB,eAAe,EAAE;IACjC,IAAIG,IAAI,GAAGzC,UAAU,CAACkC,GAAG,CAACd,GAAG,CAAC;IAC9B,IAAI,CAACqB,IAAI,EAAE;MACTzC,UAAU,CAAC4C,GAAG,CAACxB,GAAG,EAAGqB,IAAI,GAAG,IAAIrC,GAAG,EAAE,CAAE;MAEvC,IAAI,CAACC,UAAU,EAAE;QACfF,UAAU,CAACkB,GAAG,CAACD,GAAG,CAAC;MACrB,CAAC,MAAM;QACLlB,OAAO,CAACmB,GAAG,CAACD,GAAG,CAAC;MAClB;IACF;IAEAqB,IAAI,CAACpB,GAAG,CAACgB,WAAW,CAAC;EACvB;EAEAvC,UAAU,CAAC8C,GAAG,CAACP,WAAW,EAAEC,eAAe,CAAC;AAC9C;AAEA,SAASK,oBAAoBA,CAACjB,QAAgB,EAAEN,GAAW,EAAE;EAC3D,MAAMqB,IAAI,GAAGzC,UAAU,CAACkC,GAAG,CAACd,GAAG,CAAC;EAChCqB,IAAI,CAACI,MAAM,CAACnB,QAAQ,CAAC;EAErB,IAAIe,IAAI,CAACK,IAAI,KAAK,CAAC,EAAE;IACnB9C,UAAU,CAAC6C,MAAM,CAACzB,GAAG,CAAC;IAEtB,IAAI,CAACf,UAAU,EAAE;MACfF,UAAU,CAAC0C,MAAM,CAACzB,GAAG,CAAC;IACxB,CAAC,MAAM;MACLlB,OAAO,CAAC6C,OAAO,CAAC3B,GAAG,CAAC;IACtB;EACF;AACF;AAEA,SAASF,WAAWA,CAACQ,QAAgB,EAAE;EACrC,MAAMe,IAAI,GAAG3C,UAAU,CAACoC,GAAG,CAACR,QAAQ,CAAC;EACrC,IAAI,CAACe,IAAI,EAAE;EAEX,KAAK,MAAMrB,GAAG,IAAIqB,IAAI,EAAE;IACtBE,oBAAoB,CAACjB,QAAQ,EAAEN,GAAG,CAAC;EACrC;EACAtB,UAAU,CAAC+C,MAAM,CAACnB,QAAQ,CAAC;AAC7B;AAEA,SAASjB,eAAeA,CAAA,EAAQ;EAC9B,MAAMuC,OAAO,GAAGpD,aAAa,CAACqD,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;EAE9C,IAAI;IACF,OAEIC,QAAQ,CAACC,OAAO,CAACC,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC,GACpCP,OAAO,CAAC,UAAU,CAAC,GACnBA,OAAO,CAAC,4BAA4B,CAAC;EAC3C,CAAC,CAAC,OAAOQ,GAAG,EAAE;IACZjC,OAAO,CAACkC,KAAK,CACX,yEAAyE,GACvE,6DAA6D,CAChE;IACD,MAAMD,GAAG;EACX;AACF"} | ||
| {"version":3,"names":["_path","data","require","fileToDeps","Map","depToFiles","isWatchMode","watcher","watchQueue","Set","hasStarted","enable","enableGlobbing","FSWatcher","requireChokidar","options","disableGlobbing","persistent","ignoreInitial","awaitWriteFinish","stabilityThreshold","pollInterval","on","unwatchFile","startWatcher","dep","add","clear","console","log","watch","filename","Error","path","resolve","onFilesChange","callback","event","_depToFiles$get","absoluteFile","get","updateExternalDependencies","dependencies","absFilename","absDependencies","Array","from","deps","has","removeFileDependency","set","delete","size","unwatch","parseInt","process","versions","node","err","error"],"sources":["../../src/babel/watcher.ts"],"sourcesContent":["import { createRequire } from \"module\";\nimport path from \"path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map<string, Set<string>>();\nconst depToFiles = new Map<string, Set<string>>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set<string>();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set<string>,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep);\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return process.env.BABEL_8_BREAKING\n ? require(\"chokidar\")\n : parseInt(process.versions.node) >= 8\n ? require(\"chokidar\")\n : require(\"@nicolo-ribaudo/chokidar-2\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}\n"],"mappings":"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"} |
+3
-3
| { | ||
| "name": "@babel/cli", | ||
| "version": "7.21.4-esm.2", | ||
| "version": "7.21.4-esm.3", | ||
| "description": "Babel command line.", | ||
@@ -43,4 +43,4 @@ "author": "The Babel Team (https://babel.dev/team)", | ||
| "devDependencies": { | ||
| "@babel/core": "7.21.4-esm.2", | ||
| "@babel/helper-fixtures": "7.21.4-esm.2", | ||
| "@babel/core": "7.21.4-esm.3", | ||
| "@babel/helper-fixtures": "7.21.4-esm.3", | ||
| "@types/fs-readdir-recursive": "^1.1.0", | ||
@@ -47,0 +47,0 @@ "@types/glob": "^7.2.0", |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
113075
6.59%999
18.09%5
-16.67%