From 89f08e796ec85fe95fceb590876202ac6079dd43 Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Sat, 4 Jun 2022 04:37:16 +0800 Subject: [PATCH] review --- .../babel-core/src/config/config-chain.ts | 26 +++++++++++++++---- .../src/config/files/import-meta-resolve.ts | 3 ++- packages/babel-core/src/config/files/types.ts | 4 ++- packages/babel-core/src/config/full.ts | 4 +-- packages/babel-core/src/config/plugin.ts | 6 ++--- .../src/tools/build-external-helpers.ts | 16 +++++++++--- .../babel-core/src/transform-file-browser.ts | 10 ++++--- 7 files changed, 50 insertions(+), 19 deletions(-) diff --git a/packages/babel-core/src/config/config-chain.ts b/packages/babel-core/src/config/config-chain.ts index bdbf3b53f995..82ebdb4adfac 100644 --- a/packages/babel-core/src/config/config-chain.ts +++ b/packages/babel-core/src/config/config-chain.ts @@ -451,7 +451,11 @@ function buildFileLogger( function buildRootDescriptors( { dirname, options }: Partial, alias: string, - descriptors: Function, + descriptors: ( + dirname: string, + options: ValidatedOptions, + alias: string, + ) => OptionsAndDescriptors, ) { return descriptors(dirname, options, alias); } @@ -465,7 +469,7 @@ function buildProgrammaticLogger( return () => {}; } return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, { - // @ts-expect-error caller maybe void + // @ts-expect-error caller may be void callerName: context.caller?.name, }); } @@ -473,7 +477,11 @@ function buildProgrammaticLogger( function buildEnvDescriptors( { dirname, options }: Partial, alias: string, - descriptors: Function, + descriptors: ( + dirname: string, + options: ValidatedOptions, + alias: string, + ) => OptionsAndDescriptors, envName: string, ) { const opts = options.env && options.env[envName]; @@ -483,7 +491,11 @@ function buildEnvDescriptors( function buildOverrideDescriptors( { dirname, options }: Partial, alias: string, - descriptors: Function, + descriptors: ( + dirname: string, + options: ValidatedOptions, + alias: string, + ) => OptionsAndDescriptors, index: number, ) { const opts = options.overrides && options.overrides[index]; @@ -495,7 +507,11 @@ function buildOverrideDescriptors( function buildOverrideEnvDescriptors( { dirname, options }: Partial, alias: string, - descriptors: Function, + descriptors: ( + dirname: string, + options: ValidatedOptions, + alias: string, + ) => OptionsAndDescriptors, index: number, envName: string, ) { diff --git a/packages/babel-core/src/config/files/import-meta-resolve.ts b/packages/babel-core/src/config/files/import-meta-resolve.ts index c01bd6bb1a8c..591aec4d9de4 100644 --- a/packages/babel-core/src/config/files/import-meta-resolve.ts +++ b/packages/babel-core/src/config/files/import-meta-resolve.ts @@ -34,7 +34,8 @@ const importMetaResolveP: Promise = // it throws because it's a module, will fallback to import(). process.execArgv.includes("--experimental-import-meta-resolve") ? import_("data:text/javascript,export default import.meta.resolve").then( - (m: any) => m.default || polyfill, + (m: { default: ImportMeta["resolve"] | undefined }) => + m.default || polyfill, () => polyfill, ) : Promise.resolve(polyfill); diff --git a/packages/babel-core/src/config/files/types.ts b/packages/babel-core/src/config/files/types.ts index 8eb1a6e414b3..ca55383d33b2 100644 --- a/packages/babel-core/src/config/files/types.ts +++ b/packages/babel-core/src/config/files/types.ts @@ -1,7 +1,9 @@ +import type { InputOptions } from ".."; + export type ConfigFile = { filepath: string; dirname: string; - options: { [key: string]: any }; + options: InputOptions; }; export type IgnoreFile = { diff --git a/packages/babel-core/src/config/full.ts b/packages/babel-core/src/config/full.ts index 1f83f9cae170..cfd57a86edb3 100644 --- a/packages/babel-core/src/config/full.ts +++ b/packages/babel-core/src/config/full.ts @@ -392,8 +392,8 @@ const instantiatePlugin = makeWeakCache(function* ( return cache.invalidate(data => run(inheritsDescriptor, data)); }); - plugin.pre = chain(inherits.pre as (...args: any[]) => void, plugin.pre); - plugin.post = chain(inherits.post as (...args: any[]) => void, plugin.post); + plugin.pre = chain(inherits.pre, plugin.pre); + plugin.post = chain(inherits.post, plugin.post); plugin.manipulateOptions = chain( inherits.manipulateOptions, plugin.manipulateOptions, diff --git a/packages/babel-core/src/config/plugin.ts b/packages/babel-core/src/config/plugin.ts index ea10bb8c7eaa..782b57ec6175 100644 --- a/packages/babel-core/src/config/plugin.ts +++ b/packages/babel-core/src/config/plugin.ts @@ -5,9 +5,9 @@ import type { PluginObject } from "./validation/plugins"; export default class Plugin { key: string | undefined | null; manipulateOptions?: (options: unknown, parserOpts: unknown) => void; - post?: Function; - pre?: Function; - visitor: {}; + post?: PluginObject["post"]; + pre?: PluginObject["pre"]; + visitor: PluginObject["visitor"]; parserOverride?: Function; generatorOverride?: Function; diff --git a/packages/babel-core/src/tools/build-external-helpers.ts b/packages/babel-core/src/tools/build-external-helpers.ts index e3c06dfd9c31..0c9f61e23bc3 100644 --- a/packages/babel-core/src/tools/build-external-helpers.ts +++ b/packages/babel-core/src/tools/build-external-helpers.ts @@ -95,10 +95,7 @@ function buildModule(allowlist?: Array) { exportNamedDeclaration( null, Object.keys(refs).map(name => { - return exportSpecifier( - cloneNode(refs[name] as t.Identifier), - identifier(name), - ); + return exportSpecifier(cloneNode(refs[name]), identifier(name)); }), ), ); @@ -149,6 +146,17 @@ function buildVar(allowlist?: Array) { return tree; } +function buildHelpers( + body: t.Statement[], + namespace: t.Expression, + allowlist?: Array, +): Record; +function buildHelpers( + body: t.Statement[], + namespace: null, + allowlist?: Array, +): Record; + function buildHelpers( body: t.Statement[], namespace: t.Expression | null, diff --git a/packages/babel-core/src/transform-file-browser.ts b/packages/babel-core/src/transform-file-browser.ts index e89debb7cd4c..f316cb432e7c 100644 --- a/packages/babel-core/src/transform-file-browser.ts +++ b/packages/babel-core/src/transform-file-browser.ts @@ -1,13 +1,17 @@ // duplicated from transform-file so we do not have to import anything here type TransformFile = { - (filename: string, callback: Function): void; - (filename: string, opts: any, callback: Function): void; + (filename: string, callback: (error: Error, file: null) => void): void; + ( + filename: string, + opts: any, + callback: (error: Error, file: null) => void, + ): void; }; export const transformFile: TransformFile = function transformFile( filename, opts, - callback?: Function, + callback?: (error: Error, file: null) => void, ) { if (typeof opts === "function") { callback = opts;