Migrate exportMetrics
Summary: _typescript_ Reviewed By: jknoxville Differential Revision: D16712087 fbshipit-source-id: 63dc45a26eb8112aef2b1bfa0d67bf57aa9ec72a
This commit is contained in:
committed by
Facebook Github Bot
parent
99ca6aa7e8
commit
6c7aeef7ed
2
flow-typed/plugin.js
vendored
2
flow-typed/plugin.js
vendored
@@ -17,7 +17,7 @@ declare module plugin {
|
|||||||
import type {Logger} from './fb-interfaces/Logger.js';
|
import type {Logger} from './fb-interfaces/Logger.js';
|
||||||
import type Client from './Client.js';
|
import type Client from './Client.js';
|
||||||
import type {Store, MiddlewareAPI} from './reducers/index.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 {Node} from 'react';
|
||||||
import type BaseDevice from './devices/BaseDevice.js';
|
import type BaseDevice from './devices/BaseDevice.js';
|
||||||
import type AndroidDevice from './devices/AndroidDevice';
|
import type AndroidDevice from './devices/AndroidDevice';
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import {exportStore, pluginsClassMap} from '../src/utils/exportData.tsx';
|
|||||||
import {
|
import {
|
||||||
exportMetricsWithoutTrace,
|
exportMetricsWithoutTrace,
|
||||||
exportMetricsFromTrace,
|
exportMetricsFromTrace,
|
||||||
} from '../src/utils/exportMetrics.js';
|
} from '../src/utils/exportMetrics.tsx';
|
||||||
import {listDevices} from '../src/utils/listDevices';
|
import {listDevices} from '../src/utils/listDevices';
|
||||||
// $FlowFixMe this file exist, trust me, flow!
|
// $FlowFixMe this file exist, trust me, flow!
|
||||||
import setup from '../static/setup.js';
|
import setup from '../static/setup.js';
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ export {
|
|||||||
callClient,
|
callClient,
|
||||||
} from './plugin.tsx';
|
} from './plugin.tsx';
|
||||||
export type {PluginClient, Props} 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 {default as Client} from './Client.tsx';
|
||||||
|
export type {MetricType} from './utils/exportMetrics.tsx';
|
||||||
export {clipboard} from 'electron';
|
export {clipboard} from 'electron';
|
||||||
export {default as constants} from './fb-stubs/constants.tsx';
|
export {default as constants} from './fb-stubs/constants.tsx';
|
||||||
export {connect} from 'react-redux';
|
export {connect} from 'react-redux';
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {App} from './App.js';
|
|||||||
import {Logger} from './fb-interfaces/Logger.js';
|
import {Logger} from './fb-interfaces/Logger.js';
|
||||||
import Client from './Client';
|
import Client from './Client';
|
||||||
import {Store, MiddlewareAPI} from './reducers/index';
|
import {Store, MiddlewareAPI} from './reducers/index';
|
||||||
import {MetricType} from './utils/exportMetrics.js';
|
import {MetricType} from './utils/exportMetrics';
|
||||||
import {ReactNode, Component} from 'react';
|
import {ReactNode, Component} from 'react';
|
||||||
import BaseDevice from './devices/BaseDevice';
|
import BaseDevice from './devices/BaseDevice';
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
import {getInstance as getLogger} from '../fb-stubs/Logger';
|
import {getInstance as getLogger} from '../fb-stubs/Logger';
|
||||||
import {Store, MiddlewareAPI} from '../reducers';
|
import {Store, MiddlewareAPI} from '../reducers';
|
||||||
import {DeviceExport} from '../devices/BaseDevice';
|
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 {PluginNotification} from '../reducers/notifications';
|
||||||
import {ClientExport} from '../Client.js';
|
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 {pluginKey} from '../reducers/pluginStates';
|
||||||
import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin';
|
import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin';
|
||||||
import {default as BaseDevice} from '../devices/BaseDevice';
|
import {default as BaseDevice} from '../devices/BaseDevice';
|
||||||
@@ -34,7 +34,7 @@ export type ExportType = {
|
|||||||
clients: Array<ClientExport>;
|
clients: Array<ClientExport>;
|
||||||
device: DeviceExport | null;
|
device: DeviceExport | null;
|
||||||
store: {
|
store: {
|
||||||
pluginStates: PluginStates;
|
pluginStates: PluginStatesState;
|
||||||
activeNotifications: Array<PluginNotification>;
|
activeNotifications: Array<PluginNotification>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -80,7 +80,7 @@ export function processClients(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function pluginsClassMap(
|
export function pluginsClassMap(
|
||||||
plugins: PluginStates,
|
plugins: PluginsState,
|
||||||
): Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin> {
|
): Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin> {
|
||||||
const pluginsMap: Map<
|
const pluginsMap: Map<
|
||||||
string,
|
string,
|
||||||
@@ -190,7 +190,7 @@ const addSaltToDeviceSerial = async (
|
|||||||
statusUpdate(
|
statusUpdate(
|
||||||
'Adding salt to the selected device id in the plugin states...',
|
'Adding salt to the selected device id in the plugin states...',
|
||||||
);
|
);
|
||||||
const updatedPluginStates: PluginStatesState = {};
|
const updatedPluginStates = {};
|
||||||
for (let key in pluginStates) {
|
for (let key in pluginStates) {
|
||||||
if (!key.includes(serial)) {
|
if (!key.includes(serial)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
|
|||||||
@@ -4,13 +4,12 @@
|
|||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
* @format
|
* @format
|
||||||
*/
|
*/
|
||||||
import type {FlipperPlugin, FlipperDevicePlugin} from 'flipper';
|
import {FlipperPlugin, FlipperDevicePlugin} from 'flipper';
|
||||||
import {serialize} from './serialization';
|
import {serialize} from './serialization';
|
||||||
import type {State as PluginStatesState} from '../reducers/pluginStates.tsx';
|
import {State as PluginStatesState} from '../reducers/pluginStates';
|
||||||
import type {Store} from '../reducers/index.tsx';
|
import {Store} from '../reducers';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import type {ExportType} from './exportData.tsx';
|
import {ExportType, fetchMetadata, pluginsClassMap} from './exportData';
|
||||||
import {fetchMetadata, pluginsClassMap} from './exportData.tsx';
|
|
||||||
import {deserializeObject} from './serialization';
|
import {deserializeObject} from './serialization';
|
||||||
|
|
||||||
export type MetricType = {[metricName: string]: number};
|
export type MetricType = {[metricName: string]: number};
|
||||||
@@ -19,7 +18,7 @@ export type ExportMetricType = {[clientID: string]: MetricPluginType};
|
|||||||
|
|
||||||
async function exportMetrics(
|
async function exportMetrics(
|
||||||
pluginStates: PluginStatesState,
|
pluginStates: PluginStatesState,
|
||||||
pluginsMap: Map<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>>,
|
pluginsMap: Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin>,
|
||||||
selectedPlugins: Array<string>,
|
selectedPlugins: Array<string>,
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const metrics: ExportMetricType = {};
|
const metrics: ExportMetricType = {};
|
||||||
@@ -31,9 +30,10 @@ async function exportMetrics(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const clientID = arr.join('#');
|
const clientID = arr.join('#');
|
||||||
const metricsReducer: ?(
|
const plugin = pluginsMap.get(pluginName);
|
||||||
|
const metricsReducer: (
|
||||||
persistedState: any,
|
persistedState: any,
|
||||||
) => Promise<MetricType> = pluginsMap.get(pluginName)?.metricsReducer;
|
) => Promise<MetricType> | undefined = plugin && plugin.metricsReducer;
|
||||||
if (pluginsMap.has(pluginName) && metricsReducer) {
|
if (pluginsMap.has(pluginName) && metricsReducer) {
|
||||||
const metricsObject = await metricsReducer(pluginStateData);
|
const metricsObject = await metricsReducer(pluginStateData);
|
||||||
const pluginObject = {};
|
const pluginObject = {};
|
||||||
@@ -52,10 +52,10 @@ async function exportMetrics(
|
|||||||
export async function exportMetricsWithoutTrace(
|
export async function exportMetricsWithoutTrace(
|
||||||
store: Store,
|
store: Store,
|
||||||
pluginStates: PluginStatesState,
|
pluginStates: PluginStatesState,
|
||||||
): Promise<?string> {
|
): Promise<string | null> {
|
||||||
const pluginsMap: Map<
|
const pluginsMap: Map<
|
||||||
string,
|
string,
|
||||||
Class<FlipperDevicePlugin<> | FlipperPlugin<>>,
|
typeof FlipperDevicePlugin | typeof FlipperPlugin
|
||||||
> = pluginsClassMap(store.getState().plugins);
|
> = pluginsClassMap(store.getState().plugins);
|
||||||
const metadata = await fetchMetadata(pluginStates, pluginsMap, store);
|
const metadata = await fetchMetadata(pluginStates, pluginsMap, store);
|
||||||
const newPluginStates = metadata.pluginStates;
|
const newPluginStates = metadata.pluginStates;
|
||||||
@@ -72,7 +72,7 @@ export async function exportMetricsWithoutTrace(
|
|||||||
return metrics;
|
return metrics;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseJSON(str: string): ?any {
|
function parseJSON(str: string): any {
|
||||||
try {
|
try {
|
||||||
return JSON.parse(str);
|
return JSON.parse(str);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -83,7 +83,7 @@ function parseJSON(str: string): ?any {
|
|||||||
|
|
||||||
export async function exportMetricsFromTrace(
|
export async function exportMetricsFromTrace(
|
||||||
trace: string,
|
trace: string,
|
||||||
pluginsMap: Map<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>>,
|
pluginsMap: Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin>,
|
||||||
selectedPlugins: Array<string>,
|
selectedPlugins: Array<string>,
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const data = fs.readFileSync(trace, 'utf8');
|
const data = fs.readFileSync(trace, 'utf8');
|
||||||
@@ -6,10 +6,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export type Rect = {
|
export type Rect = {
|
||||||
top: number,
|
top: number;
|
||||||
left: number,
|
left: number;
|
||||||
height: number,
|
height: number;
|
||||||
width: number,
|
width: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function isOverlappedRect(a: Rect, b: Rect): boolean {
|
export function isOverlappedRect(a: Rect, b: Rect): boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user