diff --git a/packages/metro-transform-worker/types/index.d.ts b/packages/metro-transform-worker/types/index.d.ts index bdf15a472e..f15d5c146c 100644 --- a/packages/metro-transform-worker/types/index.d.ts +++ b/packages/metro-transform-worker/types/index.d.ts @@ -8,7 +8,6 @@ * @oncall react_native */ -import type {DynamicRequiresBehavior} from 'metro'; import type { CustomTransformOptions, TransformProfile, @@ -20,28 +19,21 @@ import type { } from 'metro-source-map'; import type {TransformResultDependency} from 'metro/private/DeltaBundler'; import type {AllowOptionalDependencies} from 'metro/private/DeltaBundler/types'; +import type {DynamicRequiresBehavior} from 'metro/private/ModuleGraph/worker/collectDependencies'; -export type MinifierConfig = Readonly>; - -export interface MinifierOptions { +type MinifierConfig = Readonly<{[$$Key$$: string]: unknown}>; +export type MinifierOptions = { code: string; - map?: BasicSourceMap; + map: null | undefined | BasicSourceMap; filename: string; reserved: ReadonlyArray; config: MinifierConfig; -} - -export interface MinifierResult { - code: string; - map?: BasicSourceMap; -} - +}; +export type MinifierResult = {code: string; map?: BasicSourceMap}; export type Minifier = ( - options: MinifierOptions, + $$PARAM_0$$: MinifierOptions, ) => MinifierResult | Promise; - export type Type = 'script' | 'module' | 'asset'; - export type JsTransformerConfig = Readonly<{ assetPlugins: ReadonlyArray; assetRegistryPath: string; @@ -49,7 +41,7 @@ export type JsTransformerConfig = Readonly<{ babelTransformerPath: string; dynamicDepsInPackages: DynamicRequiresBehavior; enableBabelRCLookup: boolean; - enableBabelRuntime: boolean; + enableBabelRuntime: boolean | string; globalPrefix: string; hermesParser: boolean; minifierConfig: MinifierConfig; @@ -57,8 +49,7 @@ export type JsTransformerConfig = Readonly<{ optimizationSizeLimit: number; publicPath: string; allowOptionalDependencies: AllowOptionalDependencies; - unstable_collectDependenciesPath: string; - unstable_dependencyMapReservedName?: string; + unstable_dependencyMapReservedName: null | undefined | string; unstable_disableModuleWrapping: boolean; unstable_disableNormalizePseudoGlobals: boolean; unstable_compactOutput: boolean; @@ -71,9 +62,7 @@ export type JsTransformerConfig = Readonly<{ /** Whether to rename scoped `require` functions to `_$$_REQUIRE`, usually an extraneous operation when serializing to iife (default). */ unstable_renameRequire?: boolean; }>; - -export {CustomTransformOptions} from 'metro-babel-transformer'; - +export type {CustomTransformOptions} from 'metro-babel-transformer'; export type JsTransformOptions = Readonly<{ customTransformOptions?: CustomTransformOptions; dev: boolean; @@ -82,47 +71,37 @@ export type JsTransformOptions = Readonly<{ inlineRequires: boolean; minify: boolean; nonInlinedRequires?: ReadonlyArray; - platform?: string; - runtimeBytecodeVersion?: number; + platform: null | undefined | string; type: Type; + unstable_memoizeInlineRequires?: boolean; + unstable_nonMemoizedInlineRequires?: ReadonlyArray; + unstable_staticHermesOptimizedRequire?: boolean; unstable_transformProfile: TransformProfile; }>; - -export type BytecodeFileType = - | 'bytecode/module' - | 'bytecode/module/asset' - | 'bytecode/script'; - -export type JSFileType = 'js/script' | 'js/module' | 'js/module/asset'; - +type JSFileType = 'js/script' | 'js/module' | 'js/module/asset'; export type JsOutput = Readonly<{ data: Readonly<{ code: string; lineCount: number; - map: MetroSourceMapSegmentTuple[]; - functionMap: FBSourceFunctionMap | null; + map: Array; + functionMap: null | undefined | FBSourceFunctionMap; }>; type: JSFileType; }>; - -// Hermes byte-code output type -export type BytecodeOutput = unknown; - -export type TransformResponse = Readonly<{ +type TransformResponse = Readonly<{ dependencies: ReadonlyArray; - output: ReadonlyArray; + output: ReadonlyArray; }>; - -export function transform( +export declare const transform: ( config: JsTransformerConfig, projectRoot: string, filename: string, data: Buffer, options: JsTransformOptions, -): Promise; - -export function getCacheKey(config: JsTransformerConfig): string; - +) => Promise; +export declare type transform = typeof transform; +export declare const getCacheKey: (config: JsTransformerConfig) => string; +export declare type getCacheKey = typeof getCacheKey; /** * Backwards-compatibility with CommonJS consumers using interopRequireDefault. * Do not add to this list. diff --git a/packages/metro-transform-worker/types/utils/assetTransformer.d.ts b/packages/metro-transform-worker/types/utils/assetTransformer.d.ts new file mode 100644 index 0000000000..7e90848ecd --- /dev/null +++ b/packages/metro-transform-worker/types/utils/assetTransformer.d.ts @@ -0,0 +1,18 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +import type {File} from '@babel/types'; +import type {BabelTransformerArgs} from 'metro-babel-transformer'; + +export declare function transform( + $$PARAM_0$$: BabelTransformerArgs, + assetRegistryPath: string, + assetDataPlugins: ReadonlyArray, +): Promise<{ast: File}>; diff --git a/packages/metro-transform-worker/types/utils/getMinifier.d.ts b/packages/metro-transform-worker/types/utils/getMinifier.d.ts new file mode 100644 index 0000000000..45b1cbc46d --- /dev/null +++ b/packages/metro-transform-worker/types/utils/getMinifier.d.ts @@ -0,0 +1,14 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +import type {Minifier} from '../index.js'; + +declare function getMinifier(minifierPath: string): Minifier; +export default getMinifier; diff --git a/scripts/generateTypeScriptDefinitions.js b/scripts/generateTypeScriptDefinitions.js index 36a615a486..c936bd22d0 100644 --- a/scripts/generateTypeScriptDefinitions.js +++ b/scripts/generateTypeScriptDefinitions.js @@ -32,6 +32,7 @@ export const AUTO_GENERATED_PATTERNS: $ReadOnlyArray = [ 'packages/metro-core/**', 'packages/metro-resolver/**', 'packages/metro-source-map/**', + 'packages/metro-transform-worker/**', 'packages/ob1/**', ];