Migrate exportData
Summary: _typescript_ Reviewed By: jknoxville Differential Revision: D16711940 fbshipit-source-id: 2e0e5cd0440fe1cdb7bd29af94e22c7f6b9137f8
This commit is contained in:
committed by
Facebook Github Bot
parent
8c05c73c5f
commit
99ca6aa7e8
@@ -12,7 +12,7 @@ import yargs from 'yargs';
|
|||||||
import dispatcher from '../src/dispatcher/index.tsx';
|
import dispatcher from '../src/dispatcher/index.tsx';
|
||||||
import reducers from '../src/reducers/index.tsx';
|
import reducers from '../src/reducers/index.tsx';
|
||||||
import {init as initLogger} from '../src/fb-stubs/Logger.tsx';
|
import {init as initLogger} from '../src/fb-stubs/Logger.tsx';
|
||||||
import {exportStore, pluginsClassMap} from '../src/utils/exportData.js';
|
import {exportStore, pluginsClassMap} from '../src/utils/exportData.tsx';
|
||||||
import {
|
import {
|
||||||
exportMetricsWithoutTrace,
|
exportMetricsWithoutTrace,
|
||||||
exportMetricsFromTrace,
|
exportMetricsFromTrace,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import type {FlipperPlugin, FlipperDevicePlugin} from './plugin.tsx';
|
import type {FlipperPlugin, FlipperDevicePlugin} from './plugin.tsx';
|
||||||
import {showOpenDialog} from './utils/exportData.js';
|
import {showOpenDialog} from './utils/exportData.tsx';
|
||||||
import {
|
import {
|
||||||
setExportDataToFileActiveSheet,
|
setExportDataToFileActiveSheet,
|
||||||
setActiveSheet,
|
setActiveSheet,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import {dirname} from 'path';
|
|||||||
import {selectDevice, preferDevice} from '../reducers/connections.tsx';
|
import {selectDevice, preferDevice} from '../reducers/connections.tsx';
|
||||||
import {default as which} from 'which';
|
import {default as which} from 'which';
|
||||||
import {promisify} from 'util';
|
import {promisify} from 'util';
|
||||||
import {showOpenDialog} from '../utils/exportData';
|
import {showOpenDialog} from '../utils/exportData.tsx';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import type BaseDevice from '../devices/BaseDevice.tsx';
|
import type BaseDevice from '../devices/BaseDevice.tsx';
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import {
|
|||||||
import type {Logger} from '../fb-interfaces/Logger.js';
|
import type {Logger} from '../fb-interfaces/Logger.js';
|
||||||
import {Idler} from '../utils/Idler';
|
import {Idler} from '../utils/Idler';
|
||||||
import {shareFlipperData} from '../fb-stubs/user.tsx';
|
import {shareFlipperData} from '../fb-stubs/user.tsx';
|
||||||
import {exportStore, EXPORT_FLIPPER_TRACE_EVENT} from '../utils/exportData.js';
|
import {exportStore, EXPORT_FLIPPER_TRACE_EVENT} from '../utils/exportData.tsx';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import {clipboard} from 'electron';
|
import {clipboard} from 'electron';
|
||||||
import ShareSheetErrorList from './ShareSheetErrorList.js';
|
import ShareSheetErrorList from './ShareSheetErrorList.js';
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import {Idler} from '../utils/Idler';
|
|||||||
import {
|
import {
|
||||||
exportStoreToFile,
|
exportStoreToFile,
|
||||||
EXPORT_FLIPPER_TRACE_EVENT,
|
EXPORT_FLIPPER_TRACE_EVENT,
|
||||||
} from '../utils/exportData.js';
|
} from '../utils/exportData.tsx';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import ShareSheetErrorList from './ShareSheetErrorList.js';
|
import ShareSheetErrorList from './ShareSheetErrorList.js';
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
import {default as BaseDevice} from '../../devices/BaseDevice.tsx';
|
import {default as BaseDevice} from '../../devices/BaseDevice.tsx';
|
||||||
import {default as ArchivedDevice} from '../../devices/ArchivedDevice.tsx';
|
import {default as ArchivedDevice} from '../../devices/ArchivedDevice.tsx';
|
||||||
import {processStore} from '../exportData';
|
import {processStore} from '../exportData.tsx';
|
||||||
import {FlipperDevicePlugin} from '../../plugin.tsx';
|
import {FlipperDevicePlugin} from '../../plugin.tsx';
|
||||||
import type {Notification} from '../../plugin.tsx';
|
import type {Notification} from '../../plugin.tsx';
|
||||||
import type {ClientExport} from '../../Client.tsx';
|
import type {ClientExport} from '../../Client.tsx';
|
||||||
|
|||||||
@@ -4,18 +4,18 @@
|
|||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
* @format
|
* @format
|
||||||
*/
|
*/
|
||||||
import type {Store, MiddlewareAPI} from '../reducers.tsx';
|
import {getInstance as getLogger} from '../fb-stubs/Logger';
|
||||||
import {getInstance as getLogger} from '../fb-stubs/Logger.tsx';
|
import {Store, MiddlewareAPI} from '../reducers';
|
||||||
import type {DeviceExport} from '../devices/BaseDevice.tsx';
|
import {DeviceExport} from '../devices/BaseDevice';
|
||||||
import type {State as PluginStates} from '../reducers/pluginStates.tsx';
|
import {State as PluginStates} from '../reducers/pluginStates';
|
||||||
import type {PluginNotification} from '../reducers/notifications.tsx';
|
import {PluginNotification} from '../reducers/notifications';
|
||||||
import type {ClientExport} from '../Client.tsx';
|
import {ClientExport} from '../Client.js';
|
||||||
import type {State as PluginStatesState} from '../reducers/pluginStates.tsx';
|
import {State as PluginStatesState} from '../reducers/pluginStates';
|
||||||
import {pluginKey} from '../reducers/pluginStates.tsx';
|
import {pluginKey} from '../reducers/pluginStates';
|
||||||
import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin.tsx';
|
import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin';
|
||||||
import {default as BaseDevice} from '../devices/BaseDevice.tsx';
|
import {default as BaseDevice} from '../devices/BaseDevice';
|
||||||
import {default as Client} from '../Client.tsx';
|
import {default as ArchivedDevice} from '../devices/ArchivedDevice';
|
||||||
import {default as ArchivedDevice} from '../devices/ArchivedDevice.tsx';
|
import {default as Client} from '../Client';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import uuid from 'uuid';
|
import uuid from 'uuid';
|
||||||
import {remote} from 'electron';
|
import {remote} from 'electron';
|
||||||
@@ -23,47 +23,47 @@ import {serialize, deserialize} from './serialization';
|
|||||||
import {readCurrentRevision} from './packageMetadata.js';
|
import {readCurrentRevision} from './packageMetadata.js';
|
||||||
import {tryCatchReportPlatformFailures} from './metrics';
|
import {tryCatchReportPlatformFailures} from './metrics';
|
||||||
import {promisify} from 'util';
|
import {promisify} from 'util';
|
||||||
import promiseTimeout from './promiseTimeout.tsx';
|
import promiseTimeout from './promiseTimeout';
|
||||||
import {Idler} from './Idler';
|
import {Idler} from './Idler';
|
||||||
export const IMPORT_FLIPPER_TRACE_EVENT = 'import-flipper-trace';
|
export const IMPORT_FLIPPER_TRACE_EVENT = 'import-flipper-trace';
|
||||||
export const EXPORT_FLIPPER_TRACE_EVENT = 'export-flipper-trace';
|
export const EXPORT_FLIPPER_TRACE_EVENT = 'export-flipper-trace';
|
||||||
|
|
||||||
export type ExportType = {|
|
export type ExportType = {
|
||||||
fileVersion: string,
|
fileVersion: string;
|
||||||
flipperReleaseRevision: ?string,
|
flipperReleaseRevision: string | null;
|
||||||
clients: Array<ClientExport>,
|
clients: Array<ClientExport>;
|
||||||
device: ?DeviceExport,
|
device: DeviceExport | null;
|
||||||
store: {
|
store: {
|
||||||
pluginStates: PluginStates,
|
pluginStates: PluginStates;
|
||||||
activeNotifications: Array<PluginNotification>,
|
activeNotifications: Array<PluginNotification>;
|
||||||
},
|
};
|
||||||
|};
|
};
|
||||||
|
|
||||||
type ProcessPluginStatesOptions = {|
|
type ProcessPluginStatesOptions = {
|
||||||
clients: Array<ClientExport>,
|
clients: Array<ClientExport>;
|
||||||
serial: string,
|
serial: string;
|
||||||
allPluginStates: PluginStatesState,
|
allPluginStates: PluginStatesState;
|
||||||
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
|
devicePlugins: Map<string, typeof FlipperDevicePlugin>;
|
||||||
selectedPlugins: Array<string>,
|
selectedPlugins: Array<string>;
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void;
|
||||||
|};
|
};
|
||||||
|
|
||||||
type ProcessNotificationStatesOptions = {
|
type ProcessNotificationStatesOptions = {
|
||||||
clients: Array<ClientExport>,
|
clients: Array<ClientExport>;
|
||||||
serial: string,
|
serial: string;
|
||||||
allActiveNotifications: Array<PluginNotification>,
|
allActiveNotifications: Array<PluginNotification>;
|
||||||
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
|
devicePlugins: Map<string, typeof FlipperDevicePlugin>;
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
type AddSaltToDeviceSerialOptions = {
|
type AddSaltToDeviceSerialOptions = {
|
||||||
salt: string,
|
salt: string;
|
||||||
device: BaseDevice,
|
device: BaseDevice;
|
||||||
clients: Array<ClientExport>,
|
clients: Array<ClientExport>;
|
||||||
pluginStates: PluginStatesState,
|
pluginStates: PluginStatesState;
|
||||||
pluginNotification: Array<PluginNotification>,
|
pluginNotification: Array<PluginNotification>;
|
||||||
selectedPlugins: Array<string>,
|
selectedPlugins: Array<string>;
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function processClients(
|
export function processClients(
|
||||||
@@ -81,10 +81,10 @@ export function processClients(
|
|||||||
|
|
||||||
export function pluginsClassMap(
|
export function pluginsClassMap(
|
||||||
plugins: PluginStates,
|
plugins: PluginStates,
|
||||||
): Map<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>> {
|
): Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin> {
|
||||||
const pluginsMap: Map<
|
const pluginsMap: Map<
|
||||||
string,
|
string,
|
||||||
Class<FlipperDevicePlugin<> | FlipperPlugin<>>,
|
typeof FlipperDevicePlugin | typeof FlipperPlugin
|
||||||
> = new Map([]);
|
> = new Map([]);
|
||||||
plugins.clientPlugins.forEach((val, key) => {
|
plugins.clientPlugins.forEach((val, key) => {
|
||||||
pluginsMap.set(key, val);
|
pluginsMap.set(key, val);
|
||||||
@@ -216,7 +216,7 @@ const addSaltToDeviceSerial = async (
|
|||||||
}
|
}
|
||||||
return {...notif, client: notif.client.replace(serial, newSerial)};
|
return {...notif, client: notif.client.replace(serial, newSerial)};
|
||||||
});
|
});
|
||||||
const revision: ?string = await readCurrentRevision();
|
const revision: string | null = await readCurrentRevision();
|
||||||
return {
|
return {
|
||||||
fileVersion: remote.app.getVersion(),
|
fileVersion: remote.app.getVersion(),
|
||||||
flipperReleaseRevision: revision,
|
flipperReleaseRevision: revision,
|
||||||
@@ -229,20 +229,20 @@ const addSaltToDeviceSerial = async (
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
type ProcessStoreOptions = {|
|
type ProcessStoreOptions = {
|
||||||
activeNotifications: Array<PluginNotification>,
|
activeNotifications: Array<PluginNotification>;
|
||||||
device: ?BaseDevice,
|
device: BaseDevice | null;
|
||||||
pluginStates: PluginStatesState,
|
pluginStates: PluginStatesState;
|
||||||
clients: Array<ClientExport>,
|
clients: Array<ClientExport>;
|
||||||
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
|
devicePlugins: Map<string, typeof FlipperDevicePlugin>;
|
||||||
salt: string,
|
salt: string;
|
||||||
selectedPlugins: Array<string>,
|
selectedPlugins: Array<string>;
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void;
|
||||||
|};
|
};
|
||||||
|
|
||||||
export const processStore = async (
|
export const processStore = async (
|
||||||
options: ProcessStoreOptions,
|
options: ProcessStoreOptions,
|
||||||
): Promise<?ExportType> => {
|
): Promise<ExportType | null> => {
|
||||||
const {
|
const {
|
||||||
activeNotifications,
|
activeNotifications,
|
||||||
device,
|
device,
|
||||||
@@ -289,10 +289,10 @@ export const processStore = async (
|
|||||||
|
|
||||||
export async function fetchMetadata(
|
export async function fetchMetadata(
|
||||||
pluginStates: PluginStatesState,
|
pluginStates: PluginStatesState,
|
||||||
pluginsMap: Map<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>>,
|
pluginsMap: Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin>,
|
||||||
store: MiddlewareAPI,
|
store: MiddlewareAPI,
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void,
|
||||||
): Promise<{pluginStates: PluginStatesState, errorArray: Array<Error>}> {
|
): Promise<{pluginStates: PluginStatesState; errorArray: Array<Error>}> {
|
||||||
const newPluginState = {...pluginStates};
|
const newPluginState = {...pluginStates};
|
||||||
const errorArray: Array<Error> = [];
|
const errorArray: Array<Error> = [];
|
||||||
const clients = store.getState().connections.clients;
|
const clients = store.getState().connections.clients;
|
||||||
@@ -311,9 +311,10 @@ export async function fetchMetadata(
|
|||||||
? client.plugins.filter(plugin => selectedPlugins.includes(plugin))
|
? client.plugins.filter(plugin => selectedPlugins.includes(plugin))
|
||||||
: client.plugins;
|
: client.plugins;
|
||||||
for (const plugin of selectedFilteredPlugins) {
|
for (const plugin of selectedFilteredPlugins) {
|
||||||
const pluginClass: ?Class<
|
const pluginClass:
|
||||||
FlipperDevicePlugin<> | FlipperPlugin<>,
|
| typeof FlipperDevicePlugin
|
||||||
> = plugin ? pluginsMap.get(plugin) : null;
|
| typeof FlipperPlugin
|
||||||
|
| null = plugin ? pluginsMap.get(plugin) : null;
|
||||||
const exportState = pluginClass ? pluginClass.exportPersistedState : null;
|
const exportState = pluginClass ? pluginClass.exportPersistedState : null;
|
||||||
if (exportState) {
|
if (exportState) {
|
||||||
const key = pluginKey(client.id, plugin);
|
const key = pluginKey(client.id, plugin);
|
||||||
@@ -339,7 +340,7 @@ export async function fetchMetadata(
|
|||||||
export async function getStoreExport(
|
export async function getStoreExport(
|
||||||
store: MiddlewareAPI,
|
store: MiddlewareAPI,
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void,
|
||||||
): Promise<{exportData: ?ExportType, errorArray: Array<Error>}> {
|
): Promise<{exportData: ExportType | null; errorArray: Array<Error>}> {
|
||||||
const state = store.getState();
|
const state = store.getState();
|
||||||
const {clients} = state.connections;
|
const {clients} = state.connections;
|
||||||
const {pluginStates} = state;
|
const {pluginStates} = state;
|
||||||
@@ -353,7 +354,7 @@ export async function getStoreExport(
|
|||||||
|
|
||||||
const pluginsMap: Map<
|
const pluginsMap: Map<
|
||||||
string,
|
string,
|
||||||
Class<FlipperDevicePlugin<> | FlipperPlugin<>>,
|
typeof FlipperDevicePlugin | typeof FlipperPlugin
|
||||||
> = new Map([]);
|
> = new Map([]);
|
||||||
plugins.clientPlugins.forEach((val, key) => {
|
plugins.clientPlugins.forEach((val, key) => {
|
||||||
pluginsMap.set(key, val);
|
pluginsMap.set(key, val);
|
||||||
@@ -390,7 +391,7 @@ export function exportStore(
|
|||||||
store: MiddlewareAPI,
|
store: MiddlewareAPI,
|
||||||
idler?: Idler,
|
idler?: Idler,
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void,
|
||||||
): Promise<{serializedString: string, errorArray: Array<Error>}> {
|
): Promise<{serializedString: string; errorArray: Array<Error>}> {
|
||||||
getLogger().track('usage', EXPORT_FLIPPER_TRACE_EVENT);
|
getLogger().track('usage', EXPORT_FLIPPER_TRACE_EVENT);
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
@@ -9,8 +9,8 @@ import {serialize} from './serialization';
|
|||||||
import type {State as PluginStatesState} from '../reducers/pluginStates.tsx';
|
import type {State as PluginStatesState} from '../reducers/pluginStates.tsx';
|
||||||
import type {Store} from '../reducers/index.tsx';
|
import type {Store} from '../reducers/index.tsx';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import type {ExportType} from './exportData';
|
import type {ExportType} from './exportData.tsx';
|
||||||
import {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};
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
import {FlipperDevicePlugin, FlipperPlugin} from '../plugin';
|
import {FlipperDevicePlugin, FlipperPlugin} from '../plugin';
|
||||||
import BaseDevice from '../devices/BaseDevice';
|
import BaseDevice from '../devices/BaseDevice';
|
||||||
import {State as PluginStatesState} from '../reducers/pluginStates';
|
import {State as PluginStatesState} from '../reducers/pluginStates';
|
||||||
import {pluginsClassMap} from './exportData.js';
|
import {pluginsClassMap} from './exportData';
|
||||||
import {State as PluginsState} from '../reducers/plugins';
|
import {State as PluginsState} from '../reducers/plugins';
|
||||||
import {PluginDefinition} from '../dispatcher/plugins';
|
import {PluginDefinition} from '../dispatcher/plugins';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user