diff --git a/packages/babel-core/src/config/config-chain.ts b/packages/babel-core/src/config/config-chain.ts index 83853974f597..7867e039e433 100644 --- a/packages/babel-core/src/config/config-chain.ts +++ b/packages/babel-core/src/config/config-chain.ts @@ -54,7 +54,7 @@ export type PresetInstance = { }; export type ConfigContext = { - filename: string | void; + filename: string | undefined; cwd: string; root: string; envName: string; @@ -899,7 +899,7 @@ function matchesPatterns( function matchPattern( pattern: IgnoreItem, dirname: string, - pathToTest: unknown, + pathToTest: string | undefined, context: ConfigContext, configName?: string, ): boolean { diff --git a/packages/babel-core/src/config/validation/option-assertions.ts b/packages/babel-core/src/config/validation/option-assertions.ts index d233a02c3018..041e0c8cf0f5 100644 --- a/packages/babel-core/src/config/validation/option-assertions.ts +++ b/packages/babel-core/src/config/validation/option-assertions.ts @@ -256,7 +256,7 @@ function assertIgnoreItem(loc: GeneralPath, value: unknown): IgnoreItem { )} must be an array of string/Function/RegExp values, or undefined`, ); } - return value; + return value as IgnoreItem; } export function assertConfigApplicableTest( @@ -278,7 +278,7 @@ export function assertConfigApplicableTest( `${msg(loc)} must be a string/Function/RegExp, or an array of those`, ); } - return value; + return value as ConfigApplicableTest; } function checkValidTest(value: unknown): value is string | Function | RegExp { @@ -327,7 +327,7 @@ export function assertBabelrcSearch( `or an array of those, got ${JSON.stringify(value as any)}`, ); } - return value; + return value as BabelrcSearch; } export function assertPluginList( diff --git a/packages/babel-core/src/config/validation/options.ts b/packages/babel-core/src/config/validation/options.ts index cd62d884f725..0d96c0b15d20 100644 --- a/packages/babel-core/src/config/validation/options.ts +++ b/packages/babel-core/src/config/validation/options.ts @@ -201,7 +201,13 @@ export type CallerMetadata = { export type EnvSet = { [x: string]: T; }; -export type IgnoreItem = string | Function | RegExp; +export type IgnoreItem = + | string + | RegExp + | (( + path: string | undefined, + context: { dirname: string; caller: CallerMetadata; envName: string }, + ) => unknown); export type IgnoreList = ReadonlyArray; export type PluginOptions = object | void | false; diff --git a/packages/babel-core/src/errors/rewrite-stack-trace.ts b/packages/babel-core/src/errors/rewrite-stack-trace.ts index 9c8a30ae30b0..1b463077b627 100644 --- a/packages/babel-core/src/errors/rewrite-stack-trace.ts +++ b/packages/babel-core/src/errors/rewrite-stack-trace.ts @@ -94,26 +94,30 @@ export function expectedError(error: Error) { return error; } -export function beginHiddenCallStack(fn: Fn): Fn { +export function beginHiddenCallStack( + fn: (...args: A) => R, +) { if (!SUPPORTED) return fn; return Object.defineProperty( - function (this: any) { + function (...args: A) { setupPrepareStackTrace(); - return fn.apply(this, arguments); - } as any as Fn, + return fn(...args); + }, "name", { value: STOP_HIDNG }, ); } -export function endHiddenCallStack(fn: Fn): Fn { +export function endHiddenCallStack( + fn: (...args: A) => R, +) { if (!SUPPORTED) return fn; return Object.defineProperty( - function (this: any) { - return fn.apply(this, arguments); - } as any as Fn, + function (...args: A) { + return fn(...args); + }, "name", { value: START_HIDNG }, );