From 0f7e01d81716399bab56faf290df45289002d007 Mon Sep 17 00:00:00 2001 From: Rob Hogan <2590098+robhogan@users.noreply.github.com> Date: Wed, 4 Nov 2026 21:11:40 +0000 Subject: [PATCH] Give function type parameters descriptive names Follow up to https://github.com/react/metro/pull/2169, which named every unnamed parameter in Flow function types `v`, `v` or `rest`. This replaces those placeholders with descriptive names, taken from the implementation or call site wherever there is one. The only change beyond names is dropping two `void` parameters that are never passed, on `resolve` in `IncrementalBundler` and `cb` in `bundle.flow.js`. Changelog: Internal Test plan: Compiled each changed file outside `flow-typed/` with the repo's Babel config before and after this change, and the output is identical. API snapshots are unchanged. --- flow-typed/environment/node.js | 16 +++---- flow-typed/fb-watchman.js | 12 ++--- flow-typed/jest-worker.js | 2 +- flow-typed/jest.js | 6 +-- flow-typed/npm/babel-traverse_v7.x.x.js | 2 +- flow-typed/npm/babel_v7.x.x.js | 26 +++++------ flow-typed/npm/ws_v7.x.x.js | 45 +++++++++++-------- packages/buck-worker-tool/src/worker-tool.js | 14 +++--- packages/metro-config/src/loadConfig.js | 4 +- packages/metro-core/src/Terminal.js | 2 +- .../crawlers/__tests__/integration-test.js | 2 +- .../crawlers/watchman/__tests__/index-test.js | 4 +- packages/metro-file-map/src/flow-types.js | 6 +-- packages/metro-file-map/src/index.js | 4 +- .../metro-file-map/src/lib/FileProcessor.js | 4 +- .../src/lib/__tests__/FileProcessor-test.js | 4 +- .../src/lib/__tests__/RootPathUtils-test.js | 2 +- .../src/lib/__tests__/TreeFS-test.js | 2 +- .../metro-file-map/src/plugins/HastePlugin.js | 2 +- .../haste/__tests__/HastePlugin-test.js | 2 +- .../mocks/__tests__/MockPlugin-test.js | 2 +- .../src/watchers/FallbackWatcher.js | 8 ++-- .../watchers/__tests__/NativeWatcher-test.js | 8 ++-- .../__tests__/WatchmanWatcher-test.js | 4 +- .../metro-resolver/src/__tests__/utils.js | 2 +- .../src/modules/__tests__/HMRClient-test.js | 6 +-- .../metro-runtime/src/modules/asyncRequire.js | 4 +- .../__tests__/MetroFastRefreshMockRuntime.js | 8 ++-- .../metro-runtime/src/polyfills/require.js | 4 +- .../metro-source-map/src/Consumer/search.js | 2 +- .../src/generateFunctionMap.js | 4 +- packages/metro-source-map/src/source-map.js | 2 +- .../src/GoogleIgnoreListConsumer.js | 4 +- .../src/SourceMetadataMapConsumer.js | 4 +- packages/metro-transform-plugins/src/index.js | 2 +- packages/metro/src/Bundler/util.js | 2 +- .../Serializers/getRamBundleInfo.js | 4 +- .../Serializers/helpers/getSourceMapInfo.js | 2 +- .../DeltaBundler/Serializers/helpers/js.js | 2 +- .../Serializers/helpers/processModules.js | 2 +- .../DeltaBundler/Serializers/hmrJSBundle.js | 2 +- .../Serializers/sourceMapGenerator.js | 4 +- .../metro/src/DeltaBundler/Transformer.js | 2 +- .../metro/src/DeltaBundler/Worker.flow.js | 12 ++--- .../src/DeltaBundler/__tests__/Graph-test.js | 2 +- .../src/DeltaBundler/__tests__/test-utils.js | 2 +- .../metro/src/DeltaBundler/buildSubgraph.js | 5 ++- packages/metro/src/DeltaBundler/types.js | 4 +- packages/metro/src/HmrServer.js | 9 ++-- packages/metro/src/IncrementalBundler.js | 2 +- .../ModuleGraph/worker/collectDependencies.js | 4 +- packages/metro/src/Server.js | 4 +- packages/metro/src/Server/symbolicate.js | 4 +- .../metro/src/__tests__/HmrServer-test.js | 4 +- packages/metro/src/lib/debounceAsyncQueue.js | 32 ++++++------- packages/metro/src/lib/getAppendScripts.js | 6 +-- packages/metro/src/lib/pathUtils.js | 2 +- .../output/RamBundle/as-indexed-file.js | 12 ++--- .../metro/src/shared/output/bundle.flow.js | 4 +- private/metro-memory-fs/src/index.js | 22 ++++----- scripts/generateTypeScriptDefinitions.js | 2 +- 61 files changed, 201 insertions(+), 176 deletions(-) diff --git a/flow-typed/environment/node.js b/flow-typed/environment/node.js index cb70c63a4e..e1bd0da5fd 100644 --- a/flow-typed/environment/node.js +++ b/flow-typed/environment/node.js @@ -2549,7 +2549,7 @@ declare module 'fs' { ... }>, writeFile( - v0: FSPromisePath | FileHandle, + file: FSPromisePath | FileHandle, data: string | Buffer | Uint8Array, options?: string | WriteOptions, ): Promise, @@ -3343,9 +3343,9 @@ declare module 'perf_hooks' { setResourceTimingBufferSize(maxSize: number): void; readonly timeOrigin: number; timerify, TReturn>( - fn: (...rest: TArgs) => TReturn, + fn: (...args: TArgs) => TReturn, options?: Readonly<{histogram?: RecordableHistogram}>, - ): (...rest: TArgs) => TReturn; + ): (...args: TArgs) => TReturn; toJSON(): unknown; } @@ -3537,7 +3537,7 @@ type readline$InterfaceCompleter = ( | [Array, string] | (( line: string, - v1: (err: ?Error, data: [Array, string]) => void, + callback: (err: ?Error, data: [Array, string]) => void, ) => void); declare class readline$Interface extends events$EventEmitter { @@ -5630,18 +5630,18 @@ declare class Process extends events$EventEmitter { emitWarning(warning: string | Error): void; emitWarning( warning: string, - typeOrCtor: string | ((...rest: empty) => unknown), + typeOrCtor: string | ((...args: empty) => unknown), ): void; emitWarning( warning: string, type: string, - codeOrCtor: string | ((...rest: empty) => unknown), + codeOrCtor: string | ((...args: empty) => unknown), ): void; emitWarning( warning: string, type: string, code: string, - ctor?: (...rest: empty) => unknown, + ctor?: (...args: empty) => unknown, ): void; execArgv: Array; execPath: string; @@ -5671,7 +5671,7 @@ declare class Process extends events$EventEmitter { }, rss: () => number, }; - nextTick: (cb: (...rest: T) => unknown, ...rest: T) => void; + nextTick: (cb: (...args: T) => unknown, ...args: T) => void; pid: number; platform: string; release: { diff --git a/flow-typed/fb-watchman.js b/flow-typed/fb-watchman.js index 209ada0e26..2cd56cfb17 100644 --- a/flow-typed/fb-watchman.js +++ b/flow-typed/fb-watchman.js @@ -235,14 +235,14 @@ declare module 'fb-watchman' { ): void; end(): void; - on(v0: 'connect', v1: () => void): void; - on(v0: 'end', v1: () => void): void; - on(v0: 'error', v1: (error: Error) => void): void; + on(event: 'connect', listener: () => void): void; + on(event: 'end', listener: () => void): void; + on(event: 'error', listener: (error: Error) => void): void; on( - v0: 'subscription', - v1: (event: WatchmanSubscriptionEvent) => void, + event: 'subscription', + listener: (event: WatchmanSubscriptionEvent) => void, ): void; - on(v0: 'log', v1: (event: WatchmanLogEvent) => void): void; + on(event: 'log', listener: (event: WatchmanLogEvent) => void): void; removeAllListeners: (eventName?: string) => void; } diff --git a/flow-typed/jest-worker.js b/flow-typed/jest-worker.js index 86f0e4a682..cdbb8d8a72 100644 --- a/flow-typed/jest-worker.js +++ b/flow-typed/jest-worker.js @@ -263,7 +263,7 @@ declare module 'jest-worker' { declare export class Worker< TExposed extends Readonly<{ - [string]: (...rest: Array<$FlowFixMe>) => Promise<$FlowFixMe>, + [string]: (...args: Array<$FlowFixMe>) => Promise<$FlowFixMe>, }> = {}, TSetupArgs extends ReadonlyArray = ReadonlyArray, > { diff --git a/flow-typed/jest.js b/flow-typed/jest.js index 41eb31eeaf..d07660caea 100644 --- a/flow-typed/jest.js +++ b/flow-typed/jest.js @@ -1191,9 +1191,9 @@ type JestPrettyFormatColors = { ... }; -type JestPrettyFormatIndent = (v: string) => string; +type JestPrettyFormatIndent = (str: string) => string; type JestPrettyFormatRefs = Array; -type JestPrettyFormatPrint = (v: any) => string; +type JestPrettyFormatPrint = (val: any) => string; type JestPrettyFormatStringOrNull = string | null; type JestPrettyFormatOptions = {| @@ -1224,7 +1224,7 @@ type JestPrettyFormatPlugin = { opts: JestPrettyFormatOptions, colors: JestPrettyFormatColors, ) => string, - test: (v: any) => boolean, + test: (val: any) => boolean, ... }; diff --git a/flow-typed/npm/babel-traverse_v7.x.x.js b/flow-typed/npm/babel-traverse_v7.x.x.js index 93dbe352d2..c5988473f3 100644 --- a/flow-typed/npm/babel-traverse_v7.x.x.js +++ b/flow-typed/npm/babel-traverse_v7.x.x.js @@ -631,7 +631,7 @@ declare module '@babel/traverse' { constructor(hub: HubInterface, parent: BabelNode): NodePath; - static get(v: { + static get(options: { hub: HubInterface, parentPath: ?NodePath<>, parent: BabelNode, diff --git a/flow-typed/npm/babel_v7.x.x.js b/flow-typed/npm/babel_v7.x.x.js index c3a6e73508..d15984eaa0 100644 --- a/flow-typed/npm/babel_v7.x.x.js +++ b/flow-typed/npm/babel_v7.x.x.js @@ -387,7 +387,7 @@ declare module '@babel/core' { buildCodeFrameError( node: BabelNode, msg: string, - v2: Class, + Error: Class, ): TError; mergeSourceMap(map: _BabelSourceMap): _BabelSourceMap; @@ -408,7 +408,7 @@ declare module '@babel/core' { parseShebang(): void; - makeResult(v: TransformResult): TransformResult; + makeResult(result: TransformResult): TransformResult; generate(): TransformResult<>; } @@ -955,8 +955,8 @@ declare module '@babel/core' { |}; declare type TransformCallback = - | ((v0: Error, v1: null) => unknown) - | ((v0: null, v1: TransformResult | null) => unknown); + | ((error: Error, result: null) => unknown) + | ((error: null, result: TransformResult | null) => unknown); /** * Transforms the passed in code. Calling a callback with an object with the generated code, source map, and AST. @@ -1043,7 +1043,7 @@ declare module '@babel/core' { code: string, options?: BabelCoreOptions, callback: - ((error: Error) => void) | ((v0: void, v1: BabelNodeFile) => void), + ((error: Error) => void) | ((error: void, ast: BabelNodeFile) => void), ): void; declare export function parseSync( @@ -1097,8 +1097,8 @@ declare module '@babel/core' { declare export function loadOptions( options?: unknown, callback: - | ((error: Error, v1: null) => unknown) - | ((v0: null, config: ResolvedConfig | null) => unknown), + | ((error: Error, config: null) => unknown) + | ((error: null, config: ResolvedConfig | null) => unknown), ): void; declare export function loadOptionsSync( options?: unknown, @@ -1126,8 +1126,8 @@ declare module '@babel/core' { declare export function loadPartialConfig( options?: unknown, callback: - | ((error: Error, v1: null) => unknown) - | ((v0: null, config: PartialConfig | null) => unknown), + | ((error: Error, config: null) => unknown) + | ((error: null, config: PartialConfig | null) => unknown), ): void; declare export function loadPartialConfigSync( options?: unknown, @@ -1315,13 +1315,13 @@ declare module '@babel/template' { (opts: PublicOpts): TemplateBuilder, // Building from a string produces an AST builder function by default. - (tpl: string, opts: ?PublicOpts): (v: ?PublicReplacements) => T, + (tpl: string, opts: ?PublicOpts): (replacements: ?PublicReplacements) => T, // Building from a template literal produces an AST builder function by default. ( tpl: Array, ...args: Array - ): (v: ?PublicReplacements) => T, + ): (replacements: ?PublicReplacements) => T, // Allow users to explicitly create templates that produce ASTs, skipping // the need for an intermediate function. @@ -1354,13 +1354,13 @@ declare module '@babel/template' { ( tpl: string, opts: ?PublicOpts, - ): (v: ?PublicReplacements) => Statement | Array, + ): (replacements: ?PublicReplacements) => Statement | Array, // Building from a template literal produces an AST builder function by default. ( tpl: Array, ...args: Array - ): (v: ?PublicReplacements) => Statement | Array, + ): (replacements: ?PublicReplacements) => Statement | Array, // Allow users to explicitly create templates that produce ASTs, skipping // the need for an intermediate function. diff --git a/flow-typed/npm/ws_v7.x.x.js b/flow-typed/npm/ws_v7.x.x.js index 4dc479b4fd..32ef350263 100644 --- a/flow-typed/npm/ws_v7.x.x.js +++ b/flow-typed/npm/ws_v7.x.x.js @@ -47,20 +47,23 @@ declare class ws$WebSocketServer extends events$EventEmitter { /** * Emitted when the server closes. */ - on(event: 'close', v1: () => unknown): this; + on(event: 'close', listener: () => unknown): this; /** * Emitted when the handshake is complete. */ on( event: 'connection', - v1: (socket: ws$WebSocket, request: http$IncomingMessage<>) => unknown, + listener: ( + socket: ws$WebSocket, + request: http$IncomingMessage<>, + ) => unknown, ): this; /** * Emitted when an error occurs on the underlying server. */ - on(event: 'error', v1: (error: Error) => unknown): this; + on(event: 'error', listener: (error: Error) => unknown): this; /** * Emitted before the response headers are written to the socket as part of @@ -68,13 +71,16 @@ declare class ws$WebSocketServer extends events$EventEmitter { */ on( event: 'headers', - v1: (headers: Array, request: http$IncomingMessage<>) => unknown, + listener: ( + headers: Array, + request: http$IncomingMessage<>, + ) => unknown, ): this; /** * Emitted when the underlying server has been bound. */ - on(event: 'listening', v1: () => unknown): this; + on(event: 'listening', listener: () => unknown): this; /** * Returns the bound address, the address family name, and port of the server @@ -102,7 +108,7 @@ declare class ws$WebSocketServer extends events$EventEmitter { request: http$IncomingMessage<>, socket: net$Socket, head: Buffer, - callback: (v: ?ws$WebSocket) => unknown, + callback: (socket: ?ws$WebSocket) => unknown, ): void; /** @@ -137,8 +143,8 @@ declare type ws$MessageListener = ( isBinary: boolean, ) => unknown; declare type ws$OpenListener = () => unknown; -declare type ws$PingListener = (v: Buffer) => unknown; -declare type ws$PongListener = (v: Buffer) => unknown; +declare type ws$PingListener = (data: Buffer) => unknown; +declare type ws$PongListener = (data: Buffer) => unknown; declare type ws$UnexpectedResponseListener = ( request: http$ClientRequest<>, response: http$IncomingMessage<>, @@ -173,44 +179,47 @@ declare class ws$WebSocket extends events$EventEmitter { /* * Emitted when the connection is closed. */ - on(v0: 'close', v1: ws$CloseListener): this; + on(event: 'close', listener: ws$CloseListener): this; /* * Emitted when an error occurs. */ - on(v0: 'error', v1: ws$ErrorListener): this; + on(event: 'error', listener: ws$ErrorListener): this; /* * Emitted when a message is received from the server. */ - on(v0: 'message', v1: ws$MessageListener): this; + on(event: 'message', listener: ws$MessageListener): this; /* * Emitted when the connection is established. */ - on(v0: 'open', v1: ws$OpenListener): this; + on(event: 'open', listener: ws$OpenListener): this; /* * Emitted when a ping is received from the server. */ - on(v0: 'ping', v1: ws$PingListener): this; + on(event: 'ping', listener: ws$PingListener): this; /* * Emitted when a pong is received from the server. */ - on(v0: 'pong', v1: ws$PongListener): this; + on(event: 'pong', listener: ws$PongListener): this; /* * Emitted when the server response is not the expected one, * for example a 401 response. */ - on(v0: 'unexpected-response', v1: ws$UnexpectedResponseListener): this; + on( + event: 'unexpected-response', + listener: ws$UnexpectedResponseListener, + ): this; /* * Emitted when response headers are received from the server as part of the * handshake. */ - on(v0: 'upgrade', v1: ws$UpgradeListener): this; + on(event: 'upgrade', listener: ws$UpgradeListener): this; /** * Register an event listener emulating the `EventTarget` interface. @@ -247,7 +256,7 @@ declare class ws$WebSocket extends events$EventEmitter { ): this; addEventListener( type: 'unexpected-response', - v1: ws$UnexpectedResponseListener, + listener: ws$UnexpectedResponseListener, options?: {once?: boolean}, ): this; addEventListener( @@ -313,7 +322,7 @@ declare class ws$WebSocket extends events$EventEmitter { removeEventListener(type: 'pong', listener: ws$PongListener): this; removeEventListener( type: 'unexpected-response', - v1: ws$UnexpectedResponseListener, + listener: ws$UnexpectedResponseListener, ): this; removeEventListener(type: 'upgrade', listener: ws$UpgradeListener): this; diff --git a/packages/buck-worker-tool/src/worker-tool.js b/packages/buck-worker-tool/src/worker-tool.js index 9212c23c1a..034332e00d 100644 --- a/packages/buck-worker-tool/src/worker-tool.js +++ b/packages/buck-worker-tool/src/worker-tool.js @@ -67,20 +67,20 @@ type IncomingMessage = HandshakeMessage | CommandMessage; type Response = HandshakeResponse | CommandResponse | ErrorResponse; type RespondFn = (response: Response) => void; -type JSONReaderDataHandler = (v: IncomingMessage) => unknown; +type JSONReaderDataHandler = (message: IncomingMessage) => unknown; type JSONReaderEndHandler = () => unknown; type JSONReaderDataListener = ( - v0: 'data', - v1: JSONReaderDataHandler, + event: 'data', + handler: JSONReaderDataHandler, ) => JSONReader; type JSONReaderEndListener = ( - v0: 'end', - v1: JSONReaderEndHandler, + event: 'end', + handler: JSONReaderEndHandler, ) => JSONReader; type JSONReaderRootEndListener = ( - v0: 'root_end', - v1: JSONReaderEndHandler, + event: 'root_end', + handler: JSONReaderEndHandler, ) => JSONReader; type JSONReaderListener = JSONReaderDataListener & JSONReaderEndListener & diff --git a/packages/metro-config/src/loadConfig.js b/packages/metro-config/src/loadConfig.js index 03024d0285..7749eba6f5 100644 --- a/packages/metro-config/src/loadConfig.js +++ b/packages/metro-config/src/loadConfig.js @@ -246,7 +246,9 @@ function concatUnique( async function mergeConfigAsync( baseConfig: Promise, ...reversedConfigs: ReadonlyArray< - InputConfigT | ((v: T) => InputConfigT) | ((v: T) => Promise), + | InputConfigT + | ((baseConfig: T) => InputConfigT) + | ((baseConfig: T) => Promise), > ): Promise { let currentConfig: T = await baseConfig; diff --git a/packages/metro-core/src/Terminal.js b/packages/metro-core/src/Terminal.js index e6402ad90c..5ef2e0b6d7 100644 --- a/packages/metro-core/src/Terminal.js +++ b/packages/metro-core/src/Terminal.js @@ -104,7 +104,7 @@ export default class Terminal { #isUpdating: boolean; #hasPendingUpdate: boolean; #isFlushRequested: boolean; - #writeNonTTYStatusThrottled: (v: string) => void; + #writeNonTTYStatusThrottled: (status: string) => void; #bytesWrittenAfterStatus: ?number; constructor(stream: UnderlyingStream, opts: {ttyPrint?: boolean} = {}) { diff --git a/packages/metro-file-map/src/crawlers/__tests__/integration-test.js b/packages/metro-file-map/src/crawlers/__tests__/integration-test.js index fc937e6386..58bfe529bc 100644 --- a/packages/metro-file-map/src/crawlers/__tests__/integration-test.js +++ b/packages/metro-file-map/src/crawlers/__tests__/integration-test.js @@ -54,7 +54,7 @@ declare var expect: { extend(matchers: {[name: string]: JestMatcher, ...}): void, assertions(expectedAssertions: number): void, any(value: unknown): JestAsymmetricEqualityType, - oneOf: (v0: unknown, v1: unknown) => boolean, + oneOf: (first: unknown, second: unknown) => boolean, ... }; diff --git a/packages/metro-file-map/src/crawlers/watchman/__tests__/index-test.js b/packages/metro-file-map/src/crawlers/watchman/__tests__/index-test.js index 80e030bd6c..a035fe5b2b 100644 --- a/packages/metro-file-map/src/crawlers/watchman/__tests__/index-test.js +++ b/packages/metro-file-map/src/crawlers/watchman/__tests__/index-test.js @@ -28,11 +28,11 @@ jest.mock('fb-watchman', () => ({ })); // /some/path on posix, c:\some\path on Windows -const systemPath: (v: string) => string = filePath => +const systemPath: (filePath: string) => string = filePath => watchmanPath(filePath).replace(/\//g, path.sep); // /some/path on posix, c:/some/path on Windows. Relative unchanged. -const watchmanPath: (v: string) => string = filePath => +const watchmanPath: (filePath: string) => string = filePath => filePath.replace(/^\//, 'C:/'); const DEFAULT_OPTIONS: CrawlerOptions = { diff --git a/packages/metro-file-map/src/flow-types.js b/packages/metro-file-map/src/flow-types.js index cdd7eebb4c..633a328bf3 100644 --- a/packages/metro-file-map/src/flow-types.js +++ b/packages/metro-file-map/src/flow-types.js @@ -277,7 +277,7 @@ export type FileMapPluginWorker = Readonly<{ * This applies to files under node_modules too, which a plugin may reject * using `isNodeModules`. */ - filter: (v: {normalPath: string, isNodeModules: boolean}) => boolean, + filter: (file: {normalPath: string, isNodeModules: boolean}) => boolean, /** * If true, the worker is not run on files as they are crawled or changed, * and `filter` is not consulted. It runs only on the files the plugin asks @@ -316,8 +316,8 @@ export type InputFileMapPlugin = FileMapPlugin; export interface MetadataWorker { processFile( - v0: WorkerMessage, - v1: Readonly<{getContent: () => Buffer}>, + data: WorkerMessage, + utils: Readonly<{getContent: () => Buffer}>, ): V8Serializable; } diff --git a/packages/metro-file-map/src/index.js b/packages/metro-file-map/src/index.js index 8812ca6c30..f0132e8457 100644 --- a/packages/metro-file-map/src/index.js +++ b/packages/metro-file-map/src/index.js @@ -1325,8 +1325,8 @@ const toPublicMetadata = ( // TODO: Replace with it.map() from Node 22+ const mapIterable: ( - v0: Iterable, - v1: (v: T) => S, + it: Iterable, + fn: (item: T) => S, ) => IteratorObject = (it, fn) => (function* mapped() { for (const item of it) { diff --git a/packages/metro-file-map/src/lib/FileProcessor.js b/packages/metro-file-map/src/lib/FileProcessor.js index e5133d4319..a61a19f8bf 100644 --- a/packages/metro-file-map/src/lib/FileProcessor.js +++ b/packages/metro-file-map/src/lib/FileProcessor.js @@ -41,7 +41,7 @@ type ProcessFileRequest = Readonly<{ }>; interface AsyncWorker { - readonly processFile: (v: WorkerMessage) => Promise; + readonly processFile: (message: WorkerMessage) => Promise; readonly end: () => Promise; } @@ -237,7 +237,7 @@ export class FileProcessor { debug('Creating worker farm of %d worker threads', numWorkers); this.#perfLogger?.point('initWorkers_start'); const jestWorker = new JestWorker<{ - processFile: (v: WorkerMessage) => Promise, + processFile: (message: WorkerMessage) => Promise, }>(workerPath, { exposedMethods: ['processFile'], maxRetries: 3, diff --git a/packages/metro-file-map/src/lib/__tests__/FileProcessor-test.js b/packages/metro-file-map/src/lib/__tests__/FileProcessor-test.js index c0e21100fe..f1c9582717 100644 --- a/packages/metro-file-map/src/lib/__tests__/FileProcessor-test.js +++ b/packages/metro-file-map/src/lib/__tests__/FileProcessor-test.js @@ -29,7 +29,7 @@ const mockWorkerFn = jest.fn().mockReturnValue({}); // Convenience function to write paths with posix separators but convert them // to system separators -const p: (v: string) => string = filePath => +const p: (filePath: string) => string = filePath => process.platform === 'win32' ? filePath.replace(/\//g, '\\').replace(/^\\/, 'C:\\') : filePath; @@ -54,7 +54,7 @@ describe('processBatch', () => { setup: () => {}, processFile: mockWorkerFn, Worker: class { - processFile: (v: WorkerMessage) => WorkerMetadata = mockWorkerFn; + processFile: (message: WorkerMessage) => WorkerMetadata = mockWorkerFn; }, })); FileProcessor = require('../FileProcessor').FileProcessor; diff --git a/packages/metro-file-map/src/lib/__tests__/RootPathUtils-test.js b/packages/metro-file-map/src/lib/__tests__/RootPathUtils-test.js index e20667f4f3..d489c22063 100644 --- a/packages/metro-file-map/src/lib/__tests__/RootPathUtils-test.js +++ b/packages/metro-file-map/src/lib/__tests__/RootPathUtils-test.js @@ -17,7 +17,7 @@ jest.mock('node:path', () => mockPathModule); describe.each([['win32'], ['posix']])('RootPathUtils on %s', platform => { // Convenience function to write paths with posix separators but convert them // to system separators - const p: (v: string) => string = filePath => + const p: (filePath: string) => string = filePath => platform === 'win32' ? filePath.replace(/\//g, '\\').replace(/^\\/, 'C:\\') : filePath; diff --git a/packages/metro-file-map/src/lib/__tests__/TreeFS-test.js b/packages/metro-file-map/src/lib/__tests__/TreeFS-test.js index 356aab4f10..1e90ebbf79 100644 --- a/packages/metro-file-map/src/lib/__tests__/TreeFS-test.js +++ b/packages/metro-file-map/src/lib/__tests__/TreeFS-test.js @@ -31,7 +31,7 @@ jest.mock('node:path', () => mockPathModule); describe.each([['win32'], ['posix']])('TreeFS on %s', platform => { // Convenience function to write paths with posix separators but convert them // to system separators - const p: (v: string) => string = filePath => + const p: (filePath: string) => string = filePath => platform === 'win32' ? filePath.replace(/\//g, '\\').replace(/^\\/, 'C:\\') : filePath; diff --git a/packages/metro-file-map/src/plugins/HastePlugin.js b/packages/metro-file-map/src/plugins/HastePlugin.js index 24d76f0c65..6baed05b50 100644 --- a/packages/metro-file-map/src/plugins/HastePlugin.js +++ b/packages/metro-file-map/src/plugins/HastePlugin.js @@ -61,7 +61,7 @@ export default class HastePlugin readonly #duplicates: DuplicatesIndex = new Map(); readonly #enableHastePackages: boolean; readonly #failValidationOnConflicts: boolean; - #getModuleNameByPath: (v: string) => ?string; + #getModuleNameByPath: (mixedPath: string) => ?string; readonly #hasteImplModulePath: ?string; readonly #map: Map = new Map(); readonly #pathUtils: RootPathUtils; diff --git a/packages/metro-file-map/src/plugins/haste/__tests__/HastePlugin-test.js b/packages/metro-file-map/src/plugins/haste/__tests__/HastePlugin-test.js index 90edd2e3a9..00421797d7 100644 --- a/packages/metro-file-map/src/plugins/haste/__tests__/HastePlugin-test.js +++ b/packages/metro-file-map/src/plugins/haste/__tests__/HastePlugin-test.js @@ -19,7 +19,7 @@ let mockPathModule; jest.mock('node:path', () => mockPathModule); describe.each([['win32'], ['posix']])('HastePlugin on %s', platform => { - const p: (v: string) => string = filePath => + const p: (filePath: string) => string = filePath => platform === 'win32' ? filePath.replace(/\//g, '\\').replace(/^\\/, 'C:\\') : filePath; diff --git a/packages/metro-file-map/src/plugins/mocks/__tests__/MockPlugin-test.js b/packages/metro-file-map/src/plugins/mocks/__tests__/MockPlugin-test.js index 6bbc3f0787..97701b17e1 100644 --- a/packages/metro-file-map/src/plugins/mocks/__tests__/MockPlugin-test.js +++ b/packages/metro-file-map/src/plugins/mocks/__tests__/MockPlugin-test.js @@ -15,7 +15,7 @@ let mockPathModule; jest.mock('node:path', () => mockPathModule); describe.each([['win32'], ['posix']])('MockPlugin on %s', platform => { - const p: (v: string) => string = filePath => + const p: (filePath: string) => string = filePath => platform === 'win32' ? filePath.replace(/\//g, '\\').replace(/^\\/, 'C:\\') : filePath; diff --git a/packages/metro-file-map/src/watchers/FallbackWatcher.js b/packages/metro-file-map/src/watchers/FallbackWatcher.js index 47fc5d8c18..eac161e2ea 100644 --- a/packages/metro-file-map/src/watchers/FallbackWatcher.js +++ b/packages/metro-file-map/src/watchers/FallbackWatcher.js @@ -499,10 +499,10 @@ function isIgnorableFileError(error: Error | {code: string}) { */ async function recReaddir( root: string, - dirCallback: (v0: string, v1: Stats) => void, - fileCallback: (v0: string, v1: Stats) => void, - symlinkCallback: (v0: string, v1: Stats) => void, - errorCallback: (v: Error) => void, + dirCallback: (dirPath: string, stats: Stats) => void, + fileCallback: (filePath: string, stats: Stats) => void, + symlinkCallback: (symlinkPath: string, stats: Stats) => void, + errorCallback: (error: Error) => void, ignored: ?RegExp, ): Promise { const pending = [root]; diff --git a/packages/metro-file-map/src/watchers/__tests__/NativeWatcher-test.js b/packages/metro-file-map/src/watchers/__tests__/NativeWatcher-test.js index 7365812c7f..7d5683f899 100644 --- a/packages/metro-file-map/src/watchers/__tests__/NativeWatcher-test.js +++ b/packages/metro-file-map/src/watchers/__tests__/NativeWatcher-test.js @@ -24,13 +24,13 @@ const ROOT = resolve('/', 'project'); type Deferred = { promise: Promise, - resolve: (v: T) => void, - reject: (v: Error) => void, + resolve: (value: T) => void, + reject: (error: Error) => void, }; function deferred(): Deferred { - let resolve: (v: T) => void = () => {}; - let reject: (v: Error) => void = () => {}; + let resolve: (value: T) => void = () => {}; + let reject: (error: Error) => void = () => {}; const promise = new Promise((res, rej) => { resolve = res; reject = rej; diff --git a/packages/metro-file-map/src/watchers/__tests__/WatchmanWatcher-test.js b/packages/metro-file-map/src/watchers/__tests__/WatchmanWatcher-test.js index 7850e1f89d..63a0e9b90f 100644 --- a/packages/metro-file-map/src/watchers/__tests__/WatchmanWatcher-test.js +++ b/packages/metro-file-map/src/watchers/__tests__/WatchmanWatcher-test.js @@ -31,7 +31,7 @@ const cmdCallback = (err: ?Error, result: Partial): void => { // Convenience function to write paths with posix separators but convert them // to system separators, and prepend a mock drive letter to absolute paths on // Windows. -const p: (v: string) => string = filePath => +const p: (filePath: string) => string = filePath => process.platform === 'win32' ? filePath.replaceAll('/', '\\').replace(/^\\/, 'C:\\') : filePath; @@ -39,7 +39,7 @@ const p: (v: string) => string = filePath => // Format a posix path as a Watchman-native path on the current platform, i.e., // on Windows, drive letters on absolute paths, but posix-style separators. // This should be used for mocking Watchman *output*. -const wp: (v: string) => string = filePath => +const wp: (filePath: string) => string = filePath => process.platform === 'win32' ? filePath.replace(/^\//, 'C:/') : filePath; jest.mock('fb-watchman', () => ({ diff --git a/packages/metro-resolver/src/__tests__/utils.js b/packages/metro-resolver/src/__tests__/utils.js index 9a19328d2a..5615d24472 100644 --- a/packages/metro-resolver/src/__tests__/utils.js +++ b/packages/metro-resolver/src/__tests__/utils.js @@ -160,7 +160,7 @@ export function createPackageAccessors( }; } -export const posixToSystemPath: (v: string) => string = +export const posixToSystemPath: (filePath: string) => string = process.platform === 'win32' ? filePath => filePath.replaceAll('/', '\\').replace(/^\\/, 'C:\\') : filePath => filePath; diff --git a/packages/metro-runtime/src/modules/__tests__/HMRClient-test.js b/packages/metro-runtime/src/modules/__tests__/HMRClient-test.js index 76643c8f05..84d18ab041 100644 --- a/packages/metro-runtime/src/modules/__tests__/HMRClient-test.js +++ b/packages/metro-runtime/src/modules/__tests__/HMRClient-test.js @@ -17,10 +17,10 @@ const HMRClient = require('../HMRClient'); let mockSocket: ?{ onclose: () => void, - onmessage: (v: {data: string}) => void, - onerror: (v: {data: string}) => void, + onmessage: (event: {data: string}) => void, + onerror: (event: {data: string}) => void, close: () => void, - mockEmit: (v0: string, v1: {data: string}) => void, + mockEmit: (type: string, event: {data: string}) => void, } = null; let evaledCode = ''; diff --git a/packages/metro-runtime/src/modules/asyncRequire.js b/packages/metro-runtime/src/modules/asyncRequire.js index ae1a568797..c7ef012543 100644 --- a/packages/metro-runtime/src/modules/asyncRequire.js +++ b/packages/metro-runtime/src/modules/asyncRequire.js @@ -10,8 +10,8 @@ */ type MetroRequire = { - (v: number): unknown, - importAll: (v: number) => T, + (moduleID: number): unknown, + importAll: (moduleID: number) => T, ... }; diff --git a/packages/metro-runtime/src/polyfills/__tests__/MetroFastRefreshMockRuntime.js b/packages/metro-runtime/src/polyfills/__tests__/MetroFastRefreshMockRuntime.js index 23b71c088a..dd6df4f2a5 100644 --- a/packages/metro-runtime/src/polyfills/__tests__/MetroFastRefreshMockRuntime.js +++ b/packages/metro-runtime/src/polyfills/__tests__/MetroFastRefreshMockRuntime.js @@ -198,10 +198,10 @@ const moduleSystemCode = (() => { // instead of `__ReactRefresh.performFullRefresh`. const createModuleSystem: ( this: any, - v0: RuntimeGlobal, - v1: boolean, - v2: string, - v3: void, + global: RuntimeGlobal, + __DEV__: boolean, + __METRO_GLOBAL_PREFIX__: string, + window: void, ) => unknown = // eslint-disable-next-line no-new-func new Function( diff --git a/packages/metro-runtime/src/polyfills/require.js b/packages/metro-runtime/src/polyfills/require.js index 2da9533949..facd886012 100644 --- a/packages/metro-runtime/src/polyfills/require.js +++ b/packages/metro-runtime/src/polyfills/require.js @@ -839,8 +839,8 @@ if (__DEV__) { const topologicalSort = function ( roots: Array, - getEdges: (v: T) => Array, - earlyStop: (v: T) => boolean, + getEdges: (node: T) => Array, + earlyStop: (node: T) => boolean, ): Array { const result = []; const visited = new Set(); diff --git a/packages/metro-source-map/src/Consumer/search.js b/packages/metro-source-map/src/Consumer/search.js index 6fc57fda2a..7561ecbad1 100644 --- a/packages/metro-source-map/src/Consumer/search.js +++ b/packages/metro-source-map/src/Consumer/search.js @@ -12,7 +12,7 @@ export function greatestLowerBound( elements: ReadonlyArray, target: U, - comparator: (v0: U, v1: T) => number, + comparator: (target: U, element: T) => number, ): ?number { let first = 0; let it = 0; diff --git a/packages/metro-source-map/src/generateFunctionMap.js b/packages/metro-source-map/src/generateFunctionMap.js index 9f3089f05c..4c065435c9 100644 --- a/packages/metro-source-map/src/generateFunctionMap.js +++ b/packages/metro-source-map/src/generateFunctionMap.js @@ -159,7 +159,7 @@ function functionMapBabelPlugin(): PluginObj<> { function getFunctionMapVisitor( context: ?Context, - pushMapping: (v: RangeMapping) => void, + pushMapping: (mapping: RangeMapping) => void, ): FunctionMapVisitor { const nameStack: Array<{loc: BabelNodeSourceLocation, name: string}> = []; let tailPos = {line: 1, column: 0}; @@ -223,7 +223,7 @@ function getFunctionMapVisitor( function forEachMapping( ast: BabelNode, context: ?Context, - pushMapping: (v: RangeMapping) => void, + pushMapping: (mapping: RangeMapping) => void, ) { const visitor = getFunctionMapVisitor(context, pushMapping); diff --git a/packages/metro-source-map/src/source-map.js b/packages/metro-source-map/src/source-map.js index 7f911f73ae..457b7f7527 100644 --- a/packages/metro-source-map/src/source-map.js +++ b/packages/metro-source-map/src/source-map.js @@ -187,7 +187,7 @@ function isVlqMap( function fromRawMappingsImpl( isBlocking: boolean, - onDone: (v: Generator) => void, + onDone: (generator: Generator) => void, modules: ReadonlyArray, offsetLines: number, ): void { diff --git a/packages/metro-symbolicate/src/GoogleIgnoreListConsumer.js b/packages/metro-symbolicate/src/GoogleIgnoreListConsumer.js index 67c4ec6b0a..b638846f87 100644 --- a/packages/metro-symbolicate/src/GoogleIgnoreListConsumer.js +++ b/packages/metro-symbolicate/src/GoogleIgnoreListConsumer.js @@ -14,8 +14,8 @@ import type {BasicSourceMap, IndexMap, MixedSourceMap} from 'metro-source-map'; import {normalizeSourcePath} from 'metro-source-map'; type SourceNameNormalizer = ( - v0: string, - v1: {readonly sourceRoot?: ?string, ...}, + sourceInput: string, + map: {readonly sourceRoot?: ?string, ...}, ) => string; /** diff --git a/packages/metro-symbolicate/src/SourceMetadataMapConsumer.js b/packages/metro-symbolicate/src/SourceMetadataMapConsumer.js index cda9a04f93..ded7d45d2f 100644 --- a/packages/metro-symbolicate/src/SourceMetadataMapConsumer.js +++ b/packages/metro-symbolicate/src/SourceMetadataMapConsumer.js @@ -35,8 +35,8 @@ type FunctionMapping = { ... }; type SourceNameNormalizer = ( - v0: string, - v1: {readonly sourceRoot?: ?string, ...}, + sourceInput: string, + map: {readonly sourceRoot?: ?string, ...}, ) => string; type MetadataMap = {[source: string]: ?FBSourceMetadata, ...}; diff --git a/packages/metro-transform-plugins/src/index.js b/packages/metro-transform-plugins/src/index.js index c439c872a9..1cf817d61f 100644 --- a/packages/metro-transform-plugins/src/index.js +++ b/packages/metro-transform-plugins/src/index.js @@ -24,7 +24,7 @@ export type {Options as InlinePluginOptions} from './inline-plugin'; export type {PluginOptions as InlineRequiresPluginOptions} from './inline-requires-plugin'; type TransformPlugins = { - addParamsToDefineCall(v: string, ...rest: Array): string, + addParamsToDefineCall(code: string, ...paramsToAdd: Array): string, constantFoldingPlugin: ConstantFoldingPlugin, importExportPlugin: ImportExportPlugin, inlinePlugin: InlinePlugin, diff --git a/packages/metro/src/Bundler/util.js b/packages/metro/src/Bundler/util.js index 56e5a49e78..ee88d9baef 100644 --- a/packages/metro/src/Bundler/util.js +++ b/packages/metro/src/Bundler/util.js @@ -124,7 +124,7 @@ export function createRamBundleGroups( function* filter( iterator: ArrayMap, - predicate: (v: [A, Array]) => boolean, + predicate: (entry: [A, Array]) => boolean, ): Generator<[A, Array], void, void> { for (const value of iterator) { if (predicate(value)) { diff --git a/packages/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js b/packages/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js index f81ac4f5b8..8a39ebc2e8 100644 --- a/packages/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js +++ b/packages/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js @@ -30,7 +30,7 @@ type Options = Readonly<{ }>; export type RamBundleInfo = { - getDependencies: (v: string) => Set, + getDependencies: (filePath: string) => Set, startupModules: ReadonlyArray, lazyModules: ReadonlyArray, groups: Map>, @@ -139,7 +139,7 @@ async function _getRamOptions( platform: ?string, ... }, - getDependencies: (v: string) => Iterable, + getDependencies: (filePath: string) => Iterable, getTransformOptions: ?GetTransformOptions, ): Promise< Readonly<{ diff --git a/packages/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js b/packages/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js index 352ad7a595..cb05bb0a07 100644 --- a/packages/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +++ b/packages/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js @@ -22,7 +22,7 @@ export default function getSourceMapInfo( module: Module<>, options: { readonly excludeSource: boolean, - readonly shouldAddToIgnoreList: (v: Module<>) => boolean, + readonly shouldAddToIgnoreList: (module: Module<>) => boolean, getSourceUrl: ?(module: Module<>) => string, }, ): { diff --git a/packages/metro/src/DeltaBundler/Serializers/helpers/js.js b/packages/metro/src/DeltaBundler/Serializers/helpers/js.js index dab09f90c8..fe4f7ebcdc 100644 --- a/packages/metro/src/DeltaBundler/Serializers/helpers/js.js +++ b/packages/metro/src/DeltaBundler/Serializers/helpers/js.js @@ -31,7 +31,7 @@ import {addParamsToDefineCall} from 'metro-transform-plugins'; import path from 'node:path'; export type Options = Readonly<{ - createModuleId: (v: string) => number | string, + createModuleId: (absolutePath: string) => number | string, dev: boolean, includeAsyncPaths: boolean, projectRoot: string, diff --git a/packages/metro/src/DeltaBundler/Serializers/helpers/processModules.js b/packages/metro/src/DeltaBundler/Serializers/helpers/processModules.js index 174d9556e2..ba44c1eb49 100644 --- a/packages/metro/src/DeltaBundler/Serializers/helpers/processModules.js +++ b/packages/metro/src/DeltaBundler/Serializers/helpers/processModules.js @@ -29,7 +29,7 @@ export default function processModules( unstable_getAsyncDependencyPath, }: Readonly<{ filter?: (module: Module<>) => boolean, - createModuleId: (v: string) => number, + createModuleId: (absolutePath: string) => number, dev: boolean, includeAsyncPaths: boolean, projectRoot: string, diff --git a/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js b/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js index 62fb82ab3a..60f22a9390 100644 --- a/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js +++ b/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js @@ -27,7 +27,7 @@ const debug = debugModule('Metro:HMR'); type Options = Readonly<{ clientUrl: URL, - createModuleId: (v: string) => number, + createModuleId: (absolutePath: string) => number, includeAsyncPaths: boolean, projectRoot: string, serverRoot: string, diff --git a/packages/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js b/packages/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js index 9ff9908936..3e582af7a3 100644 --- a/packages/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js +++ b/packages/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js @@ -24,7 +24,9 @@ export type SourceMapGeneratorOptions = Readonly<{ function getSourceMapInfosImpl( isBlocking: boolean, - onDone: (v: ReadonlyArray>) => void, + onDone: ( + sourceMapInfos: ReadonlyArray>, + ) => void, modules: ReadonlyArray>, options: SourceMapGeneratorOptions, ): void { diff --git a/packages/metro/src/DeltaBundler/Transformer.js b/packages/metro/src/DeltaBundler/Transformer.js index bba83acf90..c268d2ed78 100644 --- a/packages/metro/src/DeltaBundler/Transformer.js +++ b/packages/metro/src/DeltaBundler/Transformer.js @@ -28,7 +28,7 @@ import path from 'node:path'; const debug = debugModule('Metro:Transformer'); type GetOrComputeSha1Fn = ( - v: string, + filePath: string, ) => Promise>; export default class Transformer { diff --git a/packages/metro/src/DeltaBundler/Worker.flow.js b/packages/metro/src/DeltaBundler/Worker.flow.js index f373da8321..c26dbf155a 100644 --- a/packages/metro/src/DeltaBundler/Worker.flow.js +++ b/packages/metro/src/DeltaBundler/Worker.flow.js @@ -25,12 +25,12 @@ export type {JsTransformOptions as TransformOptions} from 'metro-transform-worke type TransformerInterface = { transform( - v0: JsTransformerConfig, - v1: string, - v2: string, - v3: Buffer, - v4: JsTransformOptions, - v5: ?string, + config: JsTransformerConfig, + projectRoot: string, + projectRelativePath: string, + data: Buffer, + options: JsTransformOptions, + assetUrlPath: ?string, ): Promise>, }; diff --git a/packages/metro/src/DeltaBundler/__tests__/Graph-test.js b/packages/metro/src/DeltaBundler/__tests__/Graph-test.js index 869a687e68..8d72419ae6 100644 --- a/packages/metro/src/DeltaBundler/__tests__/Graph-test.js +++ b/packages/metro/src/DeltaBundler/__tests__/Graph-test.js @@ -469,7 +469,7 @@ Generate the initial dependency graph: Paths are given as posix and mapped through `p`, so that tests exercising path-sensitive logic can use system paths. */ -function setUpInitialGraph(p: (v: string) => string) { +function setUpInitialGraph(p: (posixPath: string) => string) { mockedDependencies = new Set(); mockedDependencyTree = new Map(); diff --git a/packages/metro/src/DeltaBundler/__tests__/test-utils.js b/packages/metro/src/DeltaBundler/__tests__/test-utils.js index 1419c96be0..8c2e22a331 100644 --- a/packages/metro/src/DeltaBundler/__tests__/test-utils.js +++ b/packages/metro/src/DeltaBundler/__tests__/test-utils.js @@ -63,7 +63,7 @@ export const createPathNormalizer = ( platform: 'win32' | 'posix' = process.platform === 'win32' ? 'win32' : 'posix', -): ((v: string) => string) => +): ((posixPath: string) => string) => platform === 'win32' ? posixPath => posixPath.replace(/^\//, 'C:\\').replaceAll('/', '\\') : posixPath => posixPath; diff --git a/packages/metro/src/DeltaBundler/buildSubgraph.js b/packages/metro/src/DeltaBundler/buildSubgraph.js index b3a4a98730..b274923c88 100644 --- a/packages/metro/src/DeltaBundler/buildSubgraph.js +++ b/packages/metro/src/DeltaBundler/buildSubgraph.js @@ -27,7 +27,10 @@ import path from 'node:path'; type Parameters = Readonly<{ resolve: ResolveFn, transform: TransformFn, - shouldTraverse: (v0: ResolvedDependency, v1: ?VirtualSource) => boolean, + shouldTraverse: ( + dependency: ResolvedDependency, + virtualSource: ?VirtualSource, + ) => boolean, }>; // The source hash seen for each virtual module, to catch edges that disagree. diff --git a/packages/metro/src/DeltaBundler/types.js b/packages/metro/src/DeltaBundler/types.js index dbdd53eeb2..9aa22b4f0d 100644 --- a/packages/metro/src/DeltaBundler/types.js +++ b/packages/metro/src/DeltaBundler/types.js @@ -158,8 +158,8 @@ export type TransformResultWithSource = Readonly<{ }>; export type TransformFn = ( - v0: string, - v1: ?VirtualSource, + modulePath: string, + virtualSource: ?VirtualSource, ) => Promise>; export type ResolveFn = ( diff --git a/packages/metro/src/HmrServer.js b/packages/metro/src/HmrServer.js index 4a5408625d..f80f290bb1 100644 --- a/packages/metro/src/HmrServer.js +++ b/packages/metro/src/HmrServer.js @@ -42,7 +42,7 @@ const {createActionStartEntry, createActionEndEntry, log} = Logger; export type Client = { optedIntoHMR: boolean, revisionIds: Array, - readonly sendFn: (v: string) => void, + readonly sendFn: (message: string) => void, }; type ClientGroup = { @@ -53,9 +53,12 @@ type ClientGroup = { readonly graphOptions: GraphOptions, }; -function send(sendFns: Array<(v: string) => void>, message: HmrMessage): void { +function send( + sendFns: Array<(message: string) => void>, + message: HmrMessage, +): void { const strMessage = JSON.stringify(message); - sendFns.forEach((sendFn: (v: string) => void) => sendFn(strMessage)); + sendFns.forEach((sendFn: (message: string) => void) => sendFn(strMessage)); } /** diff --git a/packages/metro/src/IncrementalBundler.js b/packages/metro/src/IncrementalBundler.js index a8745f2702..e3d0fc8051 100644 --- a/packages/metro/src/IncrementalBundler.js +++ b/packages/metro/src/IncrementalBundler.js @@ -350,7 +350,7 @@ export default class IncrementalBundler { absoluteEntryFiles.map( (entryFile: string) => new Promise( - (resolve: (v: void) => void, reject: (v: unknown) => unknown) => { + (resolve: () => void, reject: (reason: unknown) => unknown) => { // This should throw an error if the file doesn't exist. // Using this instead of fs.exists to account for SimLinks. fs.realpath(entryFile, err => { diff --git a/packages/metro/src/ModuleGraph/worker/collectDependencies.js b/packages/metro/src/ModuleGraph/worker/collectDependencies.js index 33ecef3385..c5a561da83 100644 --- a/packages/metro/src/ModuleGraph/worker/collectDependencies.js +++ b/packages/metro/src/ModuleGraph/worker/collectDependencies.js @@ -96,7 +96,7 @@ export type State = { allowOptionalDependencies: AllowOptionalDependencies, /** Enable `require.context` statements which can be used to import multiple files in a directory. */ unstable_allowRequireContext: boolean, - unstable_isESMImportAtSource: ?(v: ReadonlySourceLocation) => boolean, + unstable_isESMImportAtSource: ?(location: ReadonlySourceLocation) => boolean, }; export type Options = Readonly<{ @@ -109,7 +109,7 @@ export type Options = Readonly<{ dependencyTransformer?: DependencyTransformer, /** Enable `require.context` statements which can be used to import multiple files in a directory. */ unstable_allowRequireContext: boolean, - unstable_isESMImportAtSource?: ?(v: ReadonlySourceLocation) => boolean, + unstable_isESMImportAtSource?: ?(location: ReadonlySourceLocation) => boolean, }>; export type CollectedDependencies = Readonly<{ diff --git a/packages/metro/src/Server.js b/packages/metro/src/Server.js index 98db21b3ad..1582eb04ec 100644 --- a/packages/metro/src/Server.js +++ b/packages/metro/src/Server.js @@ -604,7 +604,7 @@ export default class Server { ) => void = ( req: IncomingMessage, res: ServerResponse, - next: (v: ?Error) => void, + next: (error: ?Error) => void, ) => { this._processRequest(req, res, next).catch(next); }; @@ -627,7 +627,7 @@ export default class Server { async _processRequest( req: IncomingMessage, res: ServerResponse, - next: (v: ?Error) => void, + next: (error: ?Error) => void, ): Promise { const originalUrl = req.url; debug('Handling request: %s', originalUrl); diff --git a/packages/metro/src/Server/symbolicate.js b/packages/metro/src/Server/symbolicate.js index e59ada4a0d..31add751f4 100644 --- a/packages/metro/src/Server/symbolicate.js +++ b/packages/metro/src/Server/symbolicate.js @@ -108,7 +108,7 @@ function originalPositionInTuples( function createFunctionNameGetter( module: ExplodedSourceMapModule, -): (v: Position) => ?string { +): (position: Position) => ?string { const consumer = new SourceMetadataMapConsumer( { version: 3, @@ -144,7 +144,7 @@ export default async function symbolicate( readonly map: Array | VlqMap, readonly path: string, }, - (v: Position) => ?string, + (position: Position) => ?string, >(); function findModule(frame: StackFrameInput): ?ExplodedSourceMapModule { diff --git a/packages/metro/src/__tests__/HmrServer-test.js b/packages/metro/src/__tests__/HmrServer-test.js index c4c8b7782a..d4bd0c577f 100644 --- a/packages/metro/src/__tests__/HmrServer-test.js +++ b/packages/metro/src/__tests__/HmrServer-test.js @@ -169,7 +169,7 @@ describe('HmrServer', () => { connect = async ( relativeUrl: string, - sendFn?: (v: string) => void, + sendFn?: (message: string) => void, {baseUrl = 'ws://localhost'}: {baseUrl?: string} = {}, ) => { const absoluteUrl = baseUrl + relativeUrl; @@ -191,7 +191,7 @@ describe('HmrServer', () => { message = async ( client: Client, message: HmrClientMessage, - sendFn?: (v: string) => void, + sendFn?: (message: string) => void, ) => { await hmrServer.onClientMessage( client, diff --git a/packages/metro/src/lib/debounceAsyncQueue.js b/packages/metro/src/lib/debounceAsyncQueue.js index 73df7e2001..aceb857a84 100644 --- a/packages/metro/src/lib/debounceAsyncQueue.js +++ b/packages/metro/src/lib/debounceAsyncQueue.js @@ -18,14 +18,14 @@ export default function debounceAsyncQueue( let timeout; let waiting = false; let executing = false; - let callbacks: Array<(v: T) => void> = []; + let callbacks: Array<(result: T) => void> = []; async function execute(): Promise { const currentCallbacks = callbacks; callbacks = []; executing = true; const res = await fn(); - currentCallbacks.forEach((c: (v: T) => void) => c(res)); + currentCallbacks.forEach((c: (result: T) => void) => c(res)); executing = false; if (callbacks.length > 0) { await execute(); @@ -33,19 +33,21 @@ export default function debounceAsyncQueue( } return () => - new Promise((resolve: (v: T) => void, reject: (v: unknown) => void) => { - callbacks.push(resolve); + new Promise( + (resolve: (result: T) => void, reject: (reason: unknown) => void) => { + callbacks.push(resolve); - if (!executing) { - if (waiting) { - clearTimeout(timeout); - } else { - waiting = true; + if (!executing) { + if (waiting) { + clearTimeout(timeout); + } else { + waiting = true; + } + timeout = setTimeout(async () => { + waiting = false; + await execute(); + }, delay); } - timeout = setTimeout(async () => { - waiting = false; - await execute(); - }, delay); - } - }); + }, + ); } diff --git a/packages/metro/src/lib/getAppendScripts.js b/packages/metro/src/lib/getAppendScripts.js index a20121c369..8eb0943fe7 100644 --- a/packages/metro/src/lib/getAppendScripts.js +++ b/packages/metro/src/lib/getAppendScripts.js @@ -20,17 +20,17 @@ import nullthrows from 'nullthrows'; type Options = Readonly<{ asyncRequireModulePath: string, - createModuleId: (v: string) => T, + createModuleId: (absolutePath: string) => T, getRunModuleStatement: (moduleId: T, globalPrefix: string) => string, globalPrefix: string, inlineSourceMap: ?boolean, processModuleFilter: (module: Module<>) => boolean, runBeforeMainModule: ReadonlyArray, runModule: boolean, - shouldAddToIgnoreList: (v: Module<>) => boolean, + shouldAddToIgnoreList: (module: Module<>) => boolean, sourceMapUrl: ?string, sourceUrl: ?string, - getSourceUrl: ?(v: Module<>) => string, + getSourceUrl: ?(module: Module<>) => string, ... }>; diff --git a/packages/metro/src/lib/pathUtils.js b/packages/metro/src/lib/pathUtils.js index 1e2e3ef6de..ae7b7bf84d 100644 --- a/packages/metro/src/lib/pathUtils.js +++ b/packages/metro/src/lib/pathUtils.js @@ -10,7 +10,7 @@ import * as path from 'node:path'; -export const normalizePathSeparatorsToPosix: (v: string) => string = +export const normalizePathSeparatorsToPosix: (filePath: string) => string = path.sep === '/' ? filePath => filePath : filePath => filePath.replaceAll('\\', '/'); diff --git a/packages/metro/src/shared/output/RamBundle/as-indexed-file.js b/packages/metro/src/shared/output/RamBundle/as-indexed-file.js index ba4ff703b6..9eb9d95568 100644 --- a/packages/metro/src/shared/output/RamBundle/as-indexed-file.js +++ b/packages/metro/src/shared/output/RamBundle/as-indexed-file.js @@ -96,11 +96,13 @@ function writeBuffers( buffers: Array, ): Promise { buffers.forEach((buffer: Buffer) => stream.write(buffer)); - return new Promise((resolve: () => void, reject: (v: unknown) => unknown) => { - stream.on('error', reject); - stream.on('finish', () => resolve()); - stream.end(); - }); + return new Promise( + (resolve: () => void, reject: (reason: unknown) => unknown) => { + stream.on('error', reject); + stream.on('finish', () => resolve()); + stream.end(); + }, + ); } function nullTerminatedBuffer( diff --git a/packages/metro/src/shared/output/bundle.flow.js b/packages/metro/src/shared/output/bundle.flow.js index c36abd997d..b96cc6ff07 100644 --- a/packages/metro/src/shared/output/bundle.flow.js +++ b/packages/metro/src/shared/output/bundle.flow.js @@ -68,7 +68,7 @@ export async function save( ... }, options: OutputOptions, - log: (v: string) => void, + log: (message: string) => void, ): Promise { const { bundleOutput, @@ -101,7 +101,7 @@ export async function save( } // Wait until everything is written to disk. - await Promise.all(writeFns.map((cb: (v: void) => unknown) => cb())); + await Promise.all(writeFns.map((cb: () => unknown) => cb())); } export const formatName = 'bundle'; diff --git a/private/metro-memory-fs/src/index.js b/private/metro-memory-fs/src/index.js index 9396f720d3..f26e8ec246 100644 --- a/private/metro-memory-fs/src/index.js +++ b/private/metro-memory-fs/src/index.js @@ -222,7 +222,7 @@ class MemoryFs { offset: number, length: number, position: ?number, - callback: (v0: ?Error, v1: ?number) => unknown, + callback: (error: ?Error, bytesRead: ?number) => unknown, ) => void; readFile: ( filePath: FilePath, @@ -233,20 +233,22 @@ class MemoryFs { ... } | Encoding - | ((v0: ?Error, v1: ?Buffer | string) => unknown), - callback?: (v0: ?Error, v1: ?Buffer | string) => unknown, + | ((error: ?Error, data: ?Buffer | string) => unknown), + callback?: (error: ?Error, data: ?Buffer | string) => unknown, ) => void; realpath: ( filePath: FilePath, - callback: (v0: ?Error, v1: ?string) => unknown, + callback: (error: ?Error, resolvedPath: ?string) => unknown, ) => void; write: ( fd: number, bufferOrString: Buffer | string, - offsetOrPosition?: number | ((v0: ?Error, v1: number) => unknown), - lengthOrEncoding?: number | string | ((v0: ?Error, v1: number) => unknown), - position?: number | ((v0: ?Error, v1: number) => unknown), - callback?: (v0: ?Error, v1: number) => unknown, + offsetOrPosition?: + number | ((error: ?Error, bytesWritten: number) => unknown), + lengthOrEncoding?: + number | string | ((error: ?Error, bytesWritten: number) => unknown), + position?: number | ((error: ?Error, bytesWritten: number) => unknown), + callback?: (error: ?Error, bytesWritten: number) => unknown, ) => void; writeFile: ( filePath: FilePath, @@ -259,8 +261,8 @@ class MemoryFs { ... } | Encoding - | ((v: ?Error) => unknown), - callback?: (v: ?Error) => unknown, + | ((error: ?Error) => unknown), + callback?: (error: ?Error) => unknown, ) => void; constructor(options?: ?Options) { diff --git a/scripts/generateTypeScriptDefinitions.js b/scripts/generateTypeScriptDefinitions.js index 1f63649416..0a8d24d67b 100644 --- a/scripts/generateTypeScriptDefinitions.js +++ b/scripts/generateTypeScriptDefinitions.js @@ -419,7 +419,7 @@ function removeDeclareConstAtLine( function findBlockStart( lines: ReadonlyArray, lineIndex: number, - predicate: (v: string) => boolean, + predicate: (line: string) => boolean, ): ?number { for (let i = lineIndex; i >= 0; i--) { if (predicate(lines[i])) {