Migrate exportMetrics

Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D16712087

fbshipit-source-id: 63dc45a26eb8112aef2b1bfa0d67bf57aa9ec72a
This commit is contained in:
Pascal Hartig
2019-08-12 03:44:51 -07:00
committed by Facebook Github Bot
parent 99ca6aa7e8
commit 6c7aeef7ed
7 changed files with 25 additions and 25 deletions

View File

@@ -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';

View File

@@ -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';

View File

@@ -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';

View File

@@ -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';

View File

@@ -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<ClientExport>;
device: DeviceExport | null;
store: {
pluginStates: PluginStates;
pluginStates: PluginStatesState;
activeNotifications: Array<PluginNotification>;
};
};
@@ -80,7 +80,7 @@ export function processClients(
}
export function pluginsClassMap(
plugins: PluginStates,
plugins: PluginsState,
): Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin> {
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(

View File

@@ -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<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>>,
pluginsMap: Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin>,
selectedPlugins: Array<string>,
): Promise<string> {
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<MetricType> = pluginsMap.get(pluginName)?.metricsReducer;
) => Promise<MetricType> | 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<?string> {
): Promise<string | null> {
const pluginsMap: Map<
string,
Class<FlipperDevicePlugin<> | 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<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>>,
pluginsMap: Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin>,
selectedPlugins: Array<string>,
): Promise<string> {
const data = fs.readFileSync(trace, 'utf8');

View File

@@ -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 {