From 04ec026034fe6fb7d24fd857107de9979e421d66 Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Tue, 6 Jul 2021 01:45:41 -0700 Subject: [PATCH] Converted some left-over JavaScript file to TypeScript Summary: Found some errors in a CI failure originating from a JavaScript file. The horror! Reviewed By: jknoxville Differential Revision: D29549998 fbshipit-source-id: 633100ec9a446050bb0c703dcc37e9b132b17198 --- .../app/src/{HMRClient.js => HMRClient.tsx} | 45 +++++++++++-------- ...t.node.js => ShareSheetErrorList.node.tsx} | 2 +- ...-fast-refresh.js => init-fast-refresh.tsx} | 5 ++- .../{Idler.node.js => Idler.node.tsx} | 6 +-- .../{adbConfig.node.js => adbConfig.node.tsx} | 2 +- ....node.js => environmentVariables.node.tsx} | 2 +- .../{icons.node.ts => icons.node.tsx} | 0 ...orage.node.js => jsonFileStorage.node.tsx} | 2 +- ...adata.node.js => packageMetadata.node.tsx} | 2 +- ...sConfig.node.js => processConfig.node.tsx} | 2 +- ...imeout.node.js => promiseTimeout.node.tsx} | 6 +-- 11 files changed, 41 insertions(+), 33 deletions(-) rename desktop/app/src/{HMRClient.js => HMRClient.tsx} (89%) rename desktop/app/src/chrome/__tests__/{ShareSheetErrorList.node.js => ShareSheetErrorList.node.tsx} (92%) rename desktop/app/src/{init-fast-refresh.js => init-fast-refresh.tsx} (93%) rename desktop/app/src/utils/__tests__/{Idler.node.js => Idler.node.tsx} (92%) rename desktop/app/src/utils/__tests__/{adbConfig.node.js => adbConfig.node.tsx} (97%) rename desktop/app/src/utils/__tests__/{environmentVariables.node.js => environmentVariables.node.tsx} (94%) rename desktop/app/src/utils/__tests__/{icons.node.ts => icons.node.tsx} (100%) rename desktop/app/src/utils/__tests__/{jsonFileStorage.node.js => jsonFileStorage.node.tsx} (94%) rename desktop/app/src/utils/__tests__/{packageMetadata.node.js => packageMetadata.node.tsx} (86%) rename desktop/app/src/utils/__tests__/{processConfig.node.js => processConfig.node.tsx} (98%) rename desktop/app/src/utils/__tests__/{promiseTimeout.node.js => promiseTimeout.node.tsx} (86%) diff --git a/desktop/app/src/HMRClient.js b/desktop/app/src/HMRClient.tsx similarity index 89% rename from desktop/app/src/HMRClient.js rename to desktop/app/src/HMRClient.tsx index 1821dc6cf..6c2d83b42 100644 --- a/desktop/app/src/HMRClient.js +++ b/desktop/app/src/HMRClient.tsx @@ -16,16 +16,17 @@ // // const DevSettings = require('./DevSettings'); import invariant from 'invariant'; +// @ts-ignore import {default as MetroHMRClient} from 'metro-runtime/src/modules/HMRClient'; // // const Platform = require('./Platform'); import prettyFormat from 'pretty-format'; -const pendingEntryPoints = []; -let hmrClient = null; -let hmrUnavailableReason = null; -let currentCompileErrorMessage = null; +const pendingEntryPoints: string[] = []; +let hmrClient: any = null; +let hmrUnavailableReason: null | string = null; +let currentCompileErrorMessage: null | string = null; let didConnect = false; -const pendingLogs = []; +const pendingLogs: [string, any][] = []; /** * HMR Client that receives from the server HMR updates and propagates them @@ -75,13 +76,13 @@ const HMRClient = { hmrClient.disable(); }, - registerBundle(requestUrl) { + registerBundle(requestUrl: string) { invariant(hmrClient, 'Expected HMRClient.setup() call at startup.'); pendingEntryPoints.push(requestUrl); registerBundleEntryPoints(hmrClient); }, - log(level, data) { + log(level: string, data: any) { if (!hmrClient) { // Catch a reasonable number of early logs // in case hmrClient gets initialized later. @@ -96,7 +97,7 @@ const HMRClient = { JSON.stringify({ type: 'log', level, - data: data.map((item) => + data: data.map((item: any) => typeof item === 'string' ? item : prettyFormat(item, { @@ -104,7 +105,7 @@ const HMRClient = { highlight: true, maxDepth: 3, min: true, - plugins: [prettyFormat.plugins.ReactElement], + plugins: [(prettyFormat as any).plugins.ReactElement], }), ), }), @@ -117,7 +118,13 @@ const HMRClient = { // Called once by the bridge on startup, even if Fast Refresh is off. // It creates the HMR client but doesn't actually set up the socket yet. - setup(platform, bundleEntry, host, port, isEnabled) { + setup( + platform: string, + bundleEntry: string, + host: string, + port: string, + isEnabled: boolean, + ) { invariant(platform, 'Missing required parameter `platform`'); invariant(bundleEntry, 'Missing required parameter `bundleEntry`'); invariant(host, 'Missing required parameter `host`'); @@ -133,7 +140,7 @@ const HMRClient = { `ws://${wsHost}/hot?bundleEntry=${bundleEntry}&platform=${platform}`, ); - client.on('connection-error', (e) => { + client.on('connection-error', (e: any) => { let error = `Cannot connect to the Metro server. Try the following to fix the issue: - Ensure that the Metro server is running and available on the same network`; @@ -150,7 +157,7 @@ Error: ${e.message}`; setHMRUnavailableReason(error); }); - client.on('update-start', ({isInitialUpdate}) => { + client.on('update-start', ({isInitialUpdate}: any) => { currentCompileErrorMessage = null; didConnect = true; @@ -160,7 +167,7 @@ Error: ${e.message}`; } }); - client.on('update', ({isInitialUpdate}) => { + client.on('update', ({isInitialUpdate}: any) => { if (client.isEnabled() && !isInitialUpdate) { dismissRedbox(); //// LogBoxData.clear(); @@ -172,7 +179,7 @@ Error: ${e.message}`; console.log('Loading end'); }); - client.on('error', (data) => { + client.on('error', (data: any) => { //// LoadingView.hide(); console.log('Loading end'); @@ -194,7 +201,7 @@ Error: ${e.message}`; } }); - client.on('close', (data) => { + client.on('close', (data: any) => { //// LoadingView.hide(); console.log('Loading end'); setHMRUnavailableReason('Disconnected from the Metro server.'); @@ -211,7 +218,7 @@ Error: ${e.message}`; }, }; -function setHMRUnavailableReason(reason) { +function setHMRUnavailableReason(reason: string) { invariant(hmrClient, 'Expected HMRClient.setup() call at startup.'); if (hmrUnavailableReason !== null) { // Don't show more than one warning. @@ -228,7 +235,7 @@ function setHMRUnavailableReason(reason) { } } -function registerBundleEntryPoints(client) { +function registerBundleEntryPoints(client: any) { if (hmrUnavailableReason) { // // DevSettings.reload('Bundle Splitting – Metro disconnected'); console.log('Bundle Spliiting - Metro disconnected'); @@ -246,7 +253,7 @@ function registerBundleEntryPoints(client) { } } -function flushEarlyLogs(client) { +function flushEarlyLogs(_client: any) { try { pendingLogs.forEach(([level, data]) => { HMRClient.log(level, data); @@ -287,7 +294,7 @@ function showCompileError() { const error = new Error(message); // Symbolicating compile errors is wasted effort // because the stack trace is meaningless: - error.preventSymbolication = true; + (error as any).preventSymbolication = true; throw error; } diff --git a/desktop/app/src/chrome/__tests__/ShareSheetErrorList.node.js b/desktop/app/src/chrome/__tests__/ShareSheetErrorList.node.tsx similarity index 92% rename from desktop/app/src/chrome/__tests__/ShareSheetErrorList.node.js rename to desktop/app/src/chrome/__tests__/ShareSheetErrorList.node.tsx index 602bf4177..cee742727 100644 --- a/desktop/app/src/chrome/__tests__/ShareSheetErrorList.node.js +++ b/desktop/app/src/chrome/__tests__/ShareSheetErrorList.node.tsx @@ -7,7 +7,7 @@ * @format */ -import {formatError} from '../ShareSheetErrorList.tsx'; +import {formatError} from '../ShareSheetErrorList'; test('normal error is formatted', () => { const e = new Error('something went wrong'); diff --git a/desktop/app/src/init-fast-refresh.js b/desktop/app/src/init-fast-refresh.tsx similarity index 93% rename from desktop/app/src/init-fast-refresh.js rename to desktop/app/src/init-fast-refresh.tsx index f5617beaa..880d7f3cc 100644 --- a/desktop/app/src/init-fast-refresh.js +++ b/desktop/app/src/init-fast-refresh.tsx @@ -8,6 +8,7 @@ */ import {default as HmrClient} from './HMRClient'; +// @ts-ignore import {default as ReactRefreshRuntime} from 'react-refresh/runtime'; HmrClient.setup( @@ -21,7 +22,7 @@ HmrClient.setup( ReactRefreshRuntime.injectIntoGlobalHook(window); const Refresh = { - performFullRefresh(reason) { + performFullRefresh(reason: string) { console.log('Perform full refresh', reason); window.location.reload(); }, @@ -46,7 +47,7 @@ const Refresh = { }, }; -require.Refresh = Refresh; +(require as any).Refresh = Refresh; // eslint-disable-next-line import/no-commonjs require('./init.tsx'); diff --git a/desktop/app/src/utils/__tests__/Idler.node.js b/desktop/app/src/utils/__tests__/Idler.node.tsx similarity index 92% rename from desktop/app/src/utils/__tests__/Idler.node.js rename to desktop/app/src/utils/__tests__/Idler.node.tsx index 3795403fb..7fd59a25f 100644 --- a/desktop/app/src/utils/__tests__/Idler.node.js +++ b/desktop/app/src/utils/__tests__/Idler.node.tsx @@ -7,8 +7,8 @@ * @format */ -import {IdlerImpl, TestIdler} from '../Idler.tsx'; -import {sleep} from '../promiseTimeout.tsx'; +import {IdlerImpl, TestIdler} from '../Idler'; +import {sleep} from '../promiseTimeout'; test('Idler should interrupt', async () => { const idler = new IdlerImpl(); @@ -64,7 +64,7 @@ test('TestIdler can be controlled', async () => { expect(idler.shouldIdle()).toBe(true); let threw = false; - const p = idler.idle().catch((e) => { + const p = idler.idle().catch((e: any) => { threw = true; expect(e).toMatchInlineSnapshot( `[CancelledPromiseError: Idler got killed]`, diff --git a/desktop/app/src/utils/__tests__/adbConfig.node.js b/desktop/app/src/utils/__tests__/adbConfig.node.tsx similarity index 97% rename from desktop/app/src/utils/__tests__/adbConfig.node.js rename to desktop/app/src/utils/__tests__/adbConfig.node.tsx index 9ce750de1..760388c7e 100644 --- a/desktop/app/src/utils/__tests__/adbConfig.node.js +++ b/desktop/app/src/utils/__tests__/adbConfig.node.tsx @@ -7,7 +7,7 @@ * @format */ -import adbConfig from '../adbConfig.tsx'; +import adbConfig from '../adbConfig'; test('get host and port from ADB_SERVER_SOCKET', () => { process.env.ANDROID_ADB_SERVER_PORT = undefined; diff --git a/desktop/app/src/utils/__tests__/environmentVariables.node.js b/desktop/app/src/utils/__tests__/environmentVariables.node.tsx similarity index 94% rename from desktop/app/src/utils/__tests__/environmentVariables.node.js rename to desktop/app/src/utils/__tests__/environmentVariables.node.tsx index 4ed6998bb..bc99b556a 100644 --- a/desktop/app/src/utils/__tests__/environmentVariables.node.js +++ b/desktop/app/src/utils/__tests__/environmentVariables.node.tsx @@ -7,7 +7,7 @@ * @format */ -import {parseFlipperPorts} from '../environmentVariables.tsx'; +import {parseFlipperPorts} from '../environmentVariables'; test('Valid port overrides are parsed correctly', () => { const overrides = parseFlipperPorts('1111,2222'); diff --git a/desktop/app/src/utils/__tests__/icons.node.ts b/desktop/app/src/utils/__tests__/icons.node.tsx similarity index 100% rename from desktop/app/src/utils/__tests__/icons.node.ts rename to desktop/app/src/utils/__tests__/icons.node.tsx diff --git a/desktop/app/src/utils/__tests__/jsonFileStorage.node.js b/desktop/app/src/utils/__tests__/jsonFileStorage.node.tsx similarity index 94% rename from desktop/app/src/utils/__tests__/jsonFileStorage.node.js rename to desktop/app/src/utils/__tests__/jsonFileStorage.node.tsx index a1412f75b..927a19c80 100644 --- a/desktop/app/src/utils/__tests__/jsonFileStorage.node.js +++ b/desktop/app/src/utils/__tests__/jsonFileStorage.node.tsx @@ -7,7 +7,7 @@ * @format */ -import JsonFileStorage from '../jsonFileReduxPersistStorage.tsx'; +import JsonFileStorage from '../jsonFileReduxPersistStorage'; import fs from 'fs'; const validSerializedData = fs diff --git a/desktop/app/src/utils/__tests__/packageMetadata.node.js b/desktop/app/src/utils/__tests__/packageMetadata.node.tsx similarity index 86% rename from desktop/app/src/utils/__tests__/packageMetadata.node.js rename to desktop/app/src/utils/__tests__/packageMetadata.node.tsx index e395a8c72..6d91db8ef 100644 --- a/desktop/app/src/utils/__tests__/packageMetadata.node.js +++ b/desktop/app/src/utils/__tests__/packageMetadata.node.tsx @@ -7,7 +7,7 @@ * @format */ -import {readCurrentRevision} from '../packageMetadata.tsx'; +import {readCurrentRevision} from '../packageMetadata'; test('readCurrentRevision does not return something meaningful in dev mode', async () => { const ret = await readCurrentRevision(); diff --git a/desktop/app/src/utils/__tests__/processConfig.node.js b/desktop/app/src/utils/__tests__/processConfig.node.tsx similarity index 98% rename from desktop/app/src/utils/__tests__/processConfig.node.js rename to desktop/app/src/utils/__tests__/processConfig.node.tsx index 20022dc6f..8038f3236 100644 --- a/desktop/app/src/utils/__tests__/processConfig.node.js +++ b/desktop/app/src/utils/__tests__/processConfig.node.tsx @@ -7,7 +7,7 @@ * @format */ -import {default as config, resetConfigForTesting} from '../processConfig.tsx'; +import {default as config, resetConfigForTesting} from '../processConfig'; afterEach(() => { resetConfigForTesting(); diff --git a/desktop/app/src/utils/__tests__/promiseTimeout.node.js b/desktop/app/src/utils/__tests__/promiseTimeout.node.tsx similarity index 86% rename from desktop/app/src/utils/__tests__/promiseTimeout.node.js rename to desktop/app/src/utils/__tests__/promiseTimeout.node.tsx index 7607e8e91..489220a3a 100644 --- a/desktop/app/src/utils/__tests__/promiseTimeout.node.js +++ b/desktop/app/src/utils/__tests__/promiseTimeout.node.tsx @@ -7,12 +7,12 @@ * @format */ -import promiseTimeout from '../promiseTimeout.tsx'; +import promiseTimeout from '../promiseTimeout'; test('test promiseTimeout for timeout to happen', () => { const promise = promiseTimeout( 200, - new Promise((resolve, reject) => { + new Promise((resolve) => { const id = setTimeout(() => { clearTimeout(id); resolve(); @@ -27,7 +27,7 @@ test('test promiseTimeout for timeout to happen', () => { test('test promiseTimeout for timeout not to happen', () => { const promise = promiseTimeout( 200, - new Promise((resolve, reject) => { + new Promise((resolve) => { const id = setTimeout(() => { clearTimeout(id); resolve();