Visitar URL original
review · babel/babel@8f32ea5 · GitHub
Skip to content

Commit 8f32ea5

Browse files
committed
review
1 parent c1e79d3 commit 8f32ea5

4 files changed

Lines changed: 32 additions & 11 deletions

File tree

‎eslint/babel-eslint-parser/src/worker/configuration.cts‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import babel = require("./babel-core.cts");
22
import semver = require("semver");
33
import ESLINT_VERSION = require("../utils/eslint-version.cts");
4-
import type { InputOptions } from "@babel/core";
4+
import type { InputOptions, NormalizedOptions } from "@babel/core";
55
import type { Options } from "../types.cts";
66
import type { PartialConfig } from "../../../../packages/babel-core/src/config";
77

@@ -80,7 +80,7 @@ function validateResolvedConfig(
8080
config: PartialConfig,
8181
options: Options,
8282
parseOptions: InputOptions,
83-
) {
83+
): InputOptions | NormalizedOptions {
8484
if (config !== null) {
8585
if (options.requireConfigFile !== false) {
8686
if (!config.hasFilesystemConfig()) {
@@ -93,7 +93,7 @@ function validateResolvedConfig(
9393
throw new Error(error);
9494
}
9595
}
96-
if (config.options) return config.options as InputOptions;
96+
if (config.options) return config.options;
9797
}
9898

9999
return getDefaultParserOptions(parseOptions);
@@ -113,13 +113,15 @@ function getDefaultParserOptions(options: InputOptions): InputOptions {
113113

114114
export async function normalizeBabelParseConfig(
115115
options: Options,
116-
): Promise<InputOptions> {
116+
): Promise<InputOptions | NormalizedOptions> {
117117
const parseOptions = normalizeParserOptions(options, babel.version);
118118
const config = await babel.loadPartialConfigAsync(parseOptions);
119119
return validateResolvedConfig(config, options, parseOptions);
120120
}
121121

122-
export function normalizeBabelParseConfigSync(options: Options): InputOptions {
122+
export function normalizeBabelParseConfigSync(
123+
options: Options,
124+
): InputOptions | NormalizedOptions {
123125
const parseOptions = normalizeParserOptions(options, babel.version);
124126
const config = babel.loadPartialConfigSync(parseOptions);
125127
return validateResolvedConfig(config, options, parseOptions);

‎eslint/babel-eslint-parser/src/worker/maybeParseSync.cts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import convert = require("../convert/index.cts");
33
import astInfo = require("./ast-info.cts");
44
import extractParserOptionsPlugin = require("./extract-parser-options-plugin.cjs");
55

6-
import type { InputOptions, ConfigItem } from "@babel/core";
6+
import type { InputOptions, ConfigItem, NormalizedOptions } from "@babel/core";
77
import type { AST, ParseResult } from "../types.cts";
88

99
const { getVisitorKeys, getTokLabels } = astInfo;
@@ -15,7 +15,7 @@ const MULTIPLE_OVERRIDES = /More than one plugin attempted to override parsing/;
1515

1616
export = function maybeParseSync(
1717
code: string,
18-
options: InputOptions,
18+
options: InputOptions | NormalizedOptions,
1919
): {
2020
ast: AST.Program | null;
2121
parserOptions: ParseResult | null;

‎packages/babel-core/src/config/config-chain.ts‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type {
1010
CallerMetadata,
1111
MatchItem,
1212
InputOptions,
13+
ConfigChainOptions,
1314
} from "./validation/options.ts";
1415
import pathPatternToRegex from "./pattern-to-regex.ts";
1516
import { ConfigPrinter, ChainFormatter } from "./printer.ts";
@@ -44,7 +45,7 @@ import type {
4445
export type ConfigChain = {
4546
plugins: Array<UnloadedDescriptor<PluginAPI>>;
4647
presets: Array<UnloadedDescriptor<PresetAPI>>;
47-
options: Array<InputOptions>;
48+
options: Array<ConfigChainOptions>;
4849
files: Set<string>;
4950
};
5051

@@ -77,7 +78,7 @@ export function* buildPresetChain(
7778
return {
7879
plugins: dedupDescriptors(chain.plugins),
7980
presets: dedupDescriptors(chain.presets),
80-
options: chain.options.map(o => normalizeOptions(o)),
81+
options: chain.options.map(o => createConfigChainOptions(o)),
8182
files: new Set(),
8283
};
8384
}
@@ -278,7 +279,9 @@ export function* buildRootChain(
278279
return {
279280
plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),
280281
presets: isIgnored ? [] : dedupDescriptors(chain.presets),
281-
options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)),
282+
options: isIgnored
283+
? []
284+
: chain.options.map(o => createConfigChainOptions(o)),
282285
fileHandling: isIgnored ? "ignored" : "transpile",
283286
ignore: ignoreFile || undefined,
284287
babelrc: babelrcFile || undefined,
@@ -735,7 +738,7 @@ function emptyChain(): ConfigChain {
735738
};
736739
}
737740

738-
function normalizeOptions(opts: InputOptions): InputOptions {
741+
function createConfigChainOptions(opts: InputOptions): ConfigChainOptions {
739742
const options = {
740743
...opts,
741744
};

‎packages/babel-core/src/config/validation/options.ts‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,22 @@ export type ResolvedOptions = Omit<
240240
passPerPreset: boolean;
241241
};
242242

243+
export type ConfigChainOptions = Omit<
244+
InputOptions,
245+
| "extends"
246+
| "env"
247+
| "overrides"
248+
| "plugins"
249+
| "presets"
250+
| "passPerPreset"
251+
| "ignore"
252+
| "only"
253+
| "test"
254+
| "include"
255+
| "exclude"
256+
| "sourceMap"
257+
>;
258+
243259
export type CallerMetadata = {
244260
// If 'caller' is specified, require that the name is given for debugging
245261
// messages.

0 commit comments

Comments
 (0)