From 6c7aeef7ed59f7d46bb3094715cbfc32c16d065a Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Mon, 12 Aug 2019 03:44:51 -0700 Subject: [PATCH] Migrate exportMetrics Summary: _typescript_ Reviewed By: jknoxville Differential Revision: D16712087 fbshipit-source-id: 63dc45a26eb8112aef2b1bfa0d67bf57aa9ec72a --- flow-typed/plugin.js | 2 +- headless/index.js | 2 +- src/index.js | 2 +- src/plugin.tsx | 2 +- src/utils/exportData.tsx | 10 ++++---- .../{exportMetrics.js => exportMetrics.tsx} | 24 +++++++++---------- src/utils/geometry.tsx | 8 +++---- 7 files changed, 25 insertions(+), 25 deletions(-) rename src/utils/{exportMetrics.js => exportMetrics.tsx} (81%) diff --git a/flow-typed/plugin.js b/flow-typed/plugin.js index 7b465ff77..3502ba3ae 100644 --- a/flow-typed/plugin.js +++ b/flow-typed/plugin.js @@ -17,7 +17,7 @@ declare module plugin { import type {Logger} from './fb-interfaces/Logger.js'; import type Client from './Client.js'; import type {Store, MiddlewareAPI} from './reducers/index.js'; - import type {MetricType} from './utils/exportMetrics.js'; + import type {MetricType} from './utils/exportMetrics.tsx'; import type {Node} from 'react'; import type BaseDevice from './devices/BaseDevice.js'; import type AndroidDevice from './devices/AndroidDevice'; diff --git a/headless/index.js b/headless/index.js index 0d2a63d46..7ee0fe16d 100644 --- a/headless/index.js +++ b/headless/index.js @@ -16,7 +16,7 @@ import {exportStore, pluginsClassMap} from '../src/utils/exportData.tsx'; import { exportMetricsWithoutTrace, exportMetricsFromTrace, -} from '../src/utils/exportMetrics.js'; +} from '../src/utils/exportMetrics.tsx'; import {listDevices} from '../src/utils/listDevices'; // $FlowFixMe this file exist, trust me, flow! import setup from '../static/setup.js'; diff --git a/src/index.js b/src/index.js index df56a0c8d..4f5fe6c92 100644 --- a/src/index.js +++ b/src/index.js @@ -18,8 +18,8 @@ export { callClient, } from './plugin.tsx'; export type {PluginClient, Props} from './plugin.tsx'; -export type {MetricType} from './utils/exportMetrics.js'; export {default as Client} from './Client.tsx'; +export type {MetricType} from './utils/exportMetrics.tsx'; export {clipboard} from 'electron'; export {default as constants} from './fb-stubs/constants.tsx'; export {connect} from 'react-redux'; diff --git a/src/plugin.tsx b/src/plugin.tsx index 87c3099e9..8d1278b4e 100644 --- a/src/plugin.tsx +++ b/src/plugin.tsx @@ -10,7 +10,7 @@ import {App} from './App.js'; import {Logger} from './fb-interfaces/Logger.js'; import Client from './Client'; import {Store, MiddlewareAPI} from './reducers/index'; -import {MetricType} from './utils/exportMetrics.js'; +import {MetricType} from './utils/exportMetrics'; import {ReactNode, Component} from 'react'; import BaseDevice from './devices/BaseDevice'; diff --git a/src/utils/exportData.tsx b/src/utils/exportData.tsx index 94ce6fd16..432e0115e 100644 --- a/src/utils/exportData.tsx +++ b/src/utils/exportData.tsx @@ -7,10 +7,10 @@ import {getInstance as getLogger} from '../fb-stubs/Logger'; import {Store, MiddlewareAPI} from '../reducers'; import {DeviceExport} from '../devices/BaseDevice'; -import {State as PluginStates} from '../reducers/pluginStates'; +import {State as PluginStatesState} from '../reducers/pluginStates'; import {PluginNotification} from '../reducers/notifications'; import {ClientExport} from '../Client.js'; -import {State as PluginStatesState} from '../reducers/pluginStates'; +import {State as PluginsState} from '../reducers/plugins'; import {pluginKey} from '../reducers/pluginStates'; import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin'; import {default as BaseDevice} from '../devices/BaseDevice'; @@ -34,7 +34,7 @@ export type ExportType = { clients: Array; device: DeviceExport | null; store: { - pluginStates: PluginStates; + pluginStates: PluginStatesState; activeNotifications: Array; }; }; @@ -80,7 +80,7 @@ export function processClients( } export function pluginsClassMap( - plugins: PluginStates, + plugins: PluginsState, ): Map { const pluginsMap: Map< string, @@ -190,7 +190,7 @@ const addSaltToDeviceSerial = async ( statusUpdate( 'Adding salt to the selected device id in the plugin states...', ); - const updatedPluginStates: PluginStatesState = {}; + const updatedPluginStates = {}; for (let key in pluginStates) { if (!key.includes(serial)) { throw new Error( diff --git a/src/utils/exportMetrics.js b/src/utils/exportMetrics.tsx similarity index 81% rename from src/utils/exportMetrics.js rename to src/utils/exportMetrics.tsx index 8b9ea6d0b..020c61005 100644 --- a/src/utils/exportMetrics.js +++ b/src/utils/exportMetrics.tsx @@ -4,13 +4,12 @@ * LICENSE file in the root directory of this source tree. * @format */ -import type {FlipperPlugin, FlipperDevicePlugin} from 'flipper'; +import {FlipperPlugin, FlipperDevicePlugin} from 'flipper'; import {serialize} from './serialization'; -import type {State as PluginStatesState} from '../reducers/pluginStates.tsx'; -import type {Store} from '../reducers/index.tsx'; +import {State as PluginStatesState} from '../reducers/pluginStates'; +import {Store} from '../reducers'; import fs from 'fs'; -import type {ExportType} from './exportData.tsx'; -import {fetchMetadata, pluginsClassMap} from './exportData.tsx'; +import {ExportType, fetchMetadata, pluginsClassMap} from './exportData'; import {deserializeObject} from './serialization'; export type MetricType = {[metricName: string]: number}; @@ -19,7 +18,7 @@ export type ExportMetricType = {[clientID: string]: MetricPluginType}; async function exportMetrics( pluginStates: PluginStatesState, - pluginsMap: Map | FlipperPlugin<>>>, + pluginsMap: Map, selectedPlugins: Array, ): Promise { const metrics: ExportMetricType = {}; @@ -31,9 +30,10 @@ async function exportMetrics( continue; } const clientID = arr.join('#'); - const metricsReducer: ?( + const plugin = pluginsMap.get(pluginName); + const metricsReducer: ( persistedState: any, - ) => Promise = pluginsMap.get(pluginName)?.metricsReducer; + ) => Promise | undefined = plugin && plugin.metricsReducer; if (pluginsMap.has(pluginName) && metricsReducer) { const metricsObject = await metricsReducer(pluginStateData); const pluginObject = {}; @@ -52,10 +52,10 @@ async function exportMetrics( export async function exportMetricsWithoutTrace( store: Store, pluginStates: PluginStatesState, -): Promise { +): Promise { const pluginsMap: Map< string, - Class | FlipperPlugin<>>, + typeof FlipperDevicePlugin | typeof FlipperPlugin > = pluginsClassMap(store.getState().plugins); const metadata = await fetchMetadata(pluginStates, pluginsMap, store); const newPluginStates = metadata.pluginStates; @@ -72,7 +72,7 @@ export async function exportMetricsWithoutTrace( return metrics; } -function parseJSON(str: string): ?any { +function parseJSON(str: string): any { try { return JSON.parse(str); } catch (e) { @@ -83,7 +83,7 @@ function parseJSON(str: string): ?any { export async function exportMetricsFromTrace( trace: string, - pluginsMap: Map | FlipperPlugin<>>>, + pluginsMap: Map, selectedPlugins: Array, ): Promise { const data = fs.readFileSync(trace, 'utf8'); diff --git a/src/utils/geometry.tsx b/src/utils/geometry.tsx index 61fc87bb8..b748868e2 100644 --- a/src/utils/geometry.tsx +++ b/src/utils/geometry.tsx @@ -6,10 +6,10 @@ */ export type Rect = { - top: number, - left: number, - height: number, - width: number, + top: number; + left: number; + height: number; + width: number; }; export function isOverlappedRect(a: Rect, b: Rect): boolean {