aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@babel/core/src/config/resolve-targets.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/core/src/config/resolve-targets.ts')
-rw-r--r--node_modules/@babel/core/src/config/resolve-targets.ts49
1 files changed, 49 insertions, 0 deletions
diff --git a/node_modules/@babel/core/src/config/resolve-targets.ts b/node_modules/@babel/core/src/config/resolve-targets.ts
new file mode 100644
index 0000000..90a443e
--- /dev/null
+++ b/node_modules/@babel/core/src/config/resolve-targets.ts
@@ -0,0 +1,49 @@
+type browserType = typeof import("./resolve-targets-browser");
+type nodeType = typeof import("./resolve-targets");
+
+// Kind of gross, but essentially asserting that the exports of this module are the same as the
+// exports of index-browser, since this file may be replaced at bundle time with index-browser.
+({} as any as browserType as nodeType);
+
+import type { ValidatedOptions } from "./validation/options";
+import path from "path";
+import getTargets from "@babel/helper-compilation-targets";
+
+import type { Targets } from "@babel/helper-compilation-targets";
+
+export function resolveBrowserslistConfigFile(
+ browserslistConfigFile: string,
+ configFileDir: string,
+): string | undefined {
+ return path.resolve(configFileDir, browserslistConfigFile);
+}
+
+export function resolveTargets(
+ options: ValidatedOptions,
+ root: string,
+): Targets {
+ // todo(flow->ts) remove any and refactor to not assign different types into same variable
+ let targets: any = options.targets;
+ if (typeof targets === "string" || Array.isArray(targets)) {
+ targets = { browsers: targets };
+ }
+ if (targets && targets.esmodules) {
+ targets = { ...targets, esmodules: "intersect" };
+ }
+
+ const { browserslistConfigFile } = options;
+ let configFile;
+ let ignoreBrowserslistConfig = false;
+ if (typeof browserslistConfigFile === "string") {
+ configFile = browserslistConfigFile;
+ } else {
+ ignoreBrowserslistConfig = browserslistConfigFile === false;
+ }
+
+ return getTargets(targets, {
+ ignoreBrowserslistConfig,
+ configFile,
+ configPath: root,
+ browserslistEnv: options.browserslistEnv,
+ });
+}