From aa6873fa66507eb9db58d9d13c8617df9069f1f4 Mon Sep 17 00:00:00 2001 From: Marco Wang Date: Tue, 26 May 2026 17:40:09 -0700 Subject: [PATCH] Transform readonly in xplatjs Summary: ``` js1 flow-runner codemod flow/transformAllVariance --variance readonly --format-files=false @ ``` Reviewed By: SamChou19815 Differential Revision: D106410842 --- .../src/__tests__/InspectorDebuggerUtils.js | 2 +- .../src/__tests__/InspectorDeviceUtils.js | 12 +++++---- .../__tests__/StandaloneFuseboxShell-test.js | 2 +- .../src/inspector-proxy/Device.js | 2 +- .../src/inspector-proxy/InspectorProxy.js | 2 +- .../src/inspector-proxy/types.js | 2 +- .../src/types/DevToolLauncher.js | 9 ++++--- .../dev-middleware/src/types/ReadonlyURL.js | 26 +++++++++---------- 8 files changed, 31 insertions(+), 26 deletions(-) diff --git a/packages/dev-middleware/src/__tests__/InspectorDebuggerUtils.js b/packages/dev-middleware/src/__tests__/InspectorDebuggerUtils.js index d847bce6aa7b..cbaf79a5efbe 100644 --- a/packages/dev-middleware/src/__tests__/InspectorDebuggerUtils.js +++ b/packages/dev-middleware/src/__tests__/InspectorDebuggerUtils.js @@ -84,7 +84,7 @@ export class DebuggerAgent { export class DebuggerMock extends DebuggerAgent { // Empty handlers - +handle: JestMockFn<[message: JSONSerializable], void> = jest.fn(); + readonly handle: JestMockFn<[message: JSONSerializable], void> = jest.fn(); __handle(message: JSONSerializable): void { this.handle(message); diff --git a/packages/dev-middleware/src/__tests__/InspectorDeviceUtils.js b/packages/dev-middleware/src/__tests__/InspectorDeviceUtils.js index f8ef55eb4c0e..41b7cdd59dc6 100644 --- a/packages/dev-middleware/src/__tests__/InspectorDeviceUtils.js +++ b/packages/dev-middleware/src/__tests__/InspectorDeviceUtils.js @@ -98,16 +98,18 @@ export class DeviceAgent { export class DeviceMock extends DeviceAgent { // Empty handlers - +connect: JestMockFn<[message: ConnectRequest], void> = jest.fn(); - +disconnect: JestMockFn<[message: DisconnectRequest], void> = jest.fn(); - +getPages: JestMockFn< + readonly connect: JestMockFn<[message: ConnectRequest], void> = jest.fn(); + readonly disconnect: JestMockFn<[message: DisconnectRequest], void> = + jest.fn(); + readonly getPages: JestMockFn< [message: GetPagesRequest], | GetPagesResponse['payload'] | Promise | void, > = jest.fn(); - +wrappedEvent: JestMockFn<[message: WrappedEventToDevice], void> = jest.fn(); - +wrappedEventParsed: JestMockFn< + readonly wrappedEvent: JestMockFn<[message: WrappedEventToDevice], void> = + jest.fn(); + readonly wrappedEventParsed: JestMockFn< [ payload: { ...WrappedEventToDevice['payload'], diff --git a/packages/dev-middleware/src/__tests__/StandaloneFuseboxShell-test.js b/packages/dev-middleware/src/__tests__/StandaloneFuseboxShell-test.js index 89385b56ceba..18f45b3f97e3 100644 --- a/packages/dev-middleware/src/__tests__/StandaloneFuseboxShell-test.js +++ b/packages/dev-middleware/src/__tests__/StandaloneFuseboxShell-test.js @@ -25,7 +25,7 @@ const PAGES_POLLING_DELAY = 2100; jest.useFakeTimers(); async function setupDevice( - serverRef: {+serverBaseWsUrl: string, ...}, + serverRef: {readonly serverBaseWsUrl: string, ...}, signal: AbortSignal, ) { const device = await createDeviceMock( diff --git a/packages/dev-middleware/src/inspector-proxy/Device.js b/packages/dev-middleware/src/inspector-proxy/Device.js index b41dda0bb60f..4dc3d685defc 100644 --- a/packages/dev-middleware/src/inspector-proxy/Device.js +++ b/packages/dev-middleware/src/inspector-proxy/Device.js @@ -138,7 +138,7 @@ export default class Device { // Logging reporting batches of cdp messages #cdpDebugLogging: CdpDebugLogging; - +#experiments: Experiments; + readonly #experiments: Experiments; constructor(deviceOptions: DeviceOptions) { this.#experiments = deviceOptions.experiments; diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index 22d18ef6ab2a..672181f39cf7 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -93,7 +93,7 @@ export default class InspectorProxy implements InspectorProxyQueries { #eventReporter: ?EventReporter; - +#experiments: Experiments; + readonly #experiments: Experiments; // custom message handler factory allowing implementers to handle unsupported CDP messages. #customMessageHandler: ?CreateCustomMessageHandlerFn; diff --git a/packages/dev-middleware/src/inspector-proxy/types.js b/packages/dev-middleware/src/inspector-proxy/types.js index de27524066ca..8d95b8554517 100644 --- a/packages/dev-middleware/src/inspector-proxy/types.js +++ b/packages/dev-middleware/src/inspector-proxy/types.js @@ -156,7 +156,7 @@ export type JSONSerializable = | string | null | ReadonlyArray - | {+[string]: JSONSerializable}; + | {readonly [string]: JSONSerializable}; export type DeepReadOnly = T extends ReadonlyArray diff --git a/packages/dev-middleware/src/types/DevToolLauncher.js b/packages/dev-middleware/src/types/DevToolLauncher.js index fb598f88edf3..3c9e63ee9257 100644 --- a/packages/dev-middleware/src/types/DevToolLauncher.js +++ b/packages/dev-middleware/src/types/DevToolLauncher.js @@ -27,7 +27,7 @@ export interface DevToolLauncher { * the host of dev-middleware. Implementations are responsible for rewriting * this as necessary where the server is remote. */ - +launchDebuggerAppWindow: (url: string) => Promise; + readonly launchDebuggerAppWindow: (url: string) => Promise; /** * Attempt to open a debugger frontend URL in a standalone shell window @@ -47,7 +47,10 @@ export interface DevToolLauncher { * the host of dev-middleware. Implementations are responsible for rewriting * this as necessary where the server is remote. */ - +launchDebuggerShell?: (url: string, windowKey: string) => Promise; + readonly launchDebuggerShell?: ( + url: string, + windowKey: string, + ) => Promise; /** * Attempt to prepare the debugger shell for use and returns a coded result @@ -60,5 +63,5 @@ export interface DevToolLauncher { * SHOULD NOT return a rejecting promise in any case, and instead SHOULD report * errors via the returned result object. */ - +prepareDebuggerShell?: () => Promise; + readonly prepareDebuggerShell?: () => Promise; } diff --git a/packages/dev-middleware/src/types/ReadonlyURL.js b/packages/dev-middleware/src/types/ReadonlyURL.js index b8c46a4c9c5f..dbdb0e71e1e4 100644 --- a/packages/dev-middleware/src/types/ReadonlyURL.js +++ b/packages/dev-middleware/src/types/ReadonlyURL.js @@ -15,7 +15,7 @@ export interface ReadonlyURLSearchParams { get(name: string): string | null; getAll(name: string): Array; has(name: string, value?: string): boolean; - +size: number; + readonly size: number; entries(): Iterator<[string, string]>; keys(): Iterator; values(): Iterator; @@ -37,18 +37,18 @@ export interface ReadonlyURLSearchParams { * Used for URLs passed between module boundaries. */ export interface ReadonlyURL { - +hash: string; - +host: string; - +hostname: string; - +href: string; - +origin: string; - +password: string; - +pathname: string; - +port: string; - +protocol: string; - +search: string; - +searchParams: ReadonlyURLSearchParams; - +username: string; + readonly hash: string; + readonly host: string; + readonly hostname: string; + readonly href: string; + readonly origin: string; + readonly password: string; + readonly pathname: string; + readonly port: string; + readonly protocol: string; + readonly search: string; + readonly searchParams: ReadonlyURLSearchParams; + readonly username: string; toString(): string; toJSON(): string; }