Migrate exportData

Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D16711940

fbshipit-source-id: 2e0e5cd0440fe1cdb7bd29af94e22c7f6b9137f8
This commit is contained in:
Pascal Hartig
2019-08-12 03:44:51 -07:00
committed by Facebook Github Bot
parent 8c05c73c5f
commit 99ca6aa7e8
9 changed files with 74 additions and 73 deletions

View File

@@ -12,7 +12,7 @@ import yargs from 'yargs';
import dispatcher from '../src/dispatcher/index.tsx';
import reducers from '../src/reducers/index.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 {
exportMetricsWithoutTrace,
exportMetricsFromTrace,

View File

@@ -6,7 +6,7 @@
*/
import type {FlipperPlugin, FlipperDevicePlugin} from './plugin.tsx';
import {showOpenDialog} from './utils/exportData.js';
import {showOpenDialog} from './utils/exportData.tsx';
import {
setExportDataToFileActiveSheet,
setActiveSheet,

View File

@@ -12,7 +12,7 @@ import {dirname} from 'path';
import {selectDevice, preferDevice} from '../reducers/connections.tsx';
import {default as which} from 'which';
import {promisify} from 'util';
import {showOpenDialog} from '../utils/exportData';
import {showOpenDialog} from '../utils/exportData.tsx';
import PropTypes from 'prop-types';
import type BaseDevice from '../devices/BaseDevice.tsx';

View File

@@ -24,7 +24,7 @@ import {
import type {Logger} from '../fb-interfaces/Logger.js';
import {Idler} from '../utils/Idler';
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 {clipboard} from 'electron';
import ShareSheetErrorList from './ShareSheetErrorList.js';

View File

@@ -28,7 +28,7 @@ import {Idler} from '../utils/Idler';
import {
exportStoreToFile,
EXPORT_FLIPPER_TRACE_EVENT,
} from '../utils/exportData.js';
} from '../utils/exportData.tsx';
import PropTypes from 'prop-types';
import ShareSheetErrorList from './ShareSheetErrorList.js';

View File

@@ -7,7 +7,7 @@
import {default as BaseDevice} from '../../devices/BaseDevice.tsx';
import {default as ArchivedDevice} from '../../devices/ArchivedDevice.tsx';
import {processStore} from '../exportData';
import {processStore} from '../exportData.tsx';
import {FlipperDevicePlugin} from '../../plugin.tsx';
import type {Notification} from '../../plugin.tsx';
import type {ClientExport} from '../../Client.tsx';

View File

@@ -4,18 +4,18 @@
* LICENSE file in the root directory of this source tree.
* @format
*/
import type {Store, MiddlewareAPI} from '../reducers.tsx';
import {getInstance as getLogger} from '../fb-stubs/Logger.tsx';
import type {DeviceExport} from '../devices/BaseDevice.tsx';
import type {State as PluginStates} from '../reducers/pluginStates.tsx';
import type {PluginNotification} from '../reducers/notifications.tsx';
import type {ClientExport} from '../Client.tsx';
import type {State as PluginStatesState} from '../reducers/pluginStates.tsx';
import {pluginKey} from '../reducers/pluginStates.tsx';
import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin.tsx';
import {default as BaseDevice} from '../devices/BaseDevice.tsx';
import {default as Client} from '../Client.tsx';
import {default as ArchivedDevice} from '../devices/ArchivedDevice.tsx';
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 {PluginNotification} from '../reducers/notifications';
import {ClientExport} from '../Client.js';
import {State as PluginStatesState} from '../reducers/pluginStates';
import {pluginKey} from '../reducers/pluginStates';
import {FlipperDevicePlugin, FlipperPlugin, callClient} from '../plugin';
import {default as BaseDevice} from '../devices/BaseDevice';
import {default as ArchivedDevice} from '../devices/ArchivedDevice';
import {default as Client} from '../Client';
import fs from 'fs';
import uuid from 'uuid';
import {remote} from 'electron';
@@ -23,47 +23,47 @@ import {serialize, deserialize} from './serialization';
import {readCurrentRevision} from './packageMetadata.js';
import {tryCatchReportPlatformFailures} from './metrics';
import {promisify} from 'util';
import promiseTimeout from './promiseTimeout.tsx';
import promiseTimeout from './promiseTimeout';
import {Idler} from './Idler';
export const IMPORT_FLIPPER_TRACE_EVENT = 'import-flipper-trace';
export const EXPORT_FLIPPER_TRACE_EVENT = 'export-flipper-trace';
export type ExportType = {|
fileVersion: string,
flipperReleaseRevision: ?string,
clients: Array<ClientExport>,
device: ?DeviceExport,
export type ExportType = {
fileVersion: string;
flipperReleaseRevision: string | null;
clients: Array<ClientExport>;
device: DeviceExport | null;
store: {
pluginStates: PluginStates,
activeNotifications: Array<PluginNotification>,
},
|};
pluginStates: PluginStates;
activeNotifications: Array<PluginNotification>;
};
};
type ProcessPluginStatesOptions = {|
clients: Array<ClientExport>,
serial: string,
allPluginStates: PluginStatesState,
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
selectedPlugins: Array<string>,
statusUpdate?: (msg: string) => void,
|};
type ProcessPluginStatesOptions = {
clients: Array<ClientExport>;
serial: string;
allPluginStates: PluginStatesState;
devicePlugins: Map<string, typeof FlipperDevicePlugin>;
selectedPlugins: Array<string>;
statusUpdate?: (msg: string) => void;
};
type ProcessNotificationStatesOptions = {
clients: Array<ClientExport>,
serial: string,
allActiveNotifications: Array<PluginNotification>,
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
statusUpdate?: (msg: string) => void,
clients: Array<ClientExport>;
serial: string;
allActiveNotifications: Array<PluginNotification>;
devicePlugins: Map<string, typeof FlipperDevicePlugin>;
statusUpdate?: (msg: string) => void;
};
type AddSaltToDeviceSerialOptions = {
salt: string,
device: BaseDevice,
clients: Array<ClientExport>,
pluginStates: PluginStatesState,
pluginNotification: Array<PluginNotification>,
selectedPlugins: Array<string>,
statusUpdate?: (msg: string) => void,
salt: string;
device: BaseDevice;
clients: Array<ClientExport>;
pluginStates: PluginStatesState;
pluginNotification: Array<PluginNotification>;
selectedPlugins: Array<string>;
statusUpdate?: (msg: string) => void;
};
export function processClients(
@@ -81,10 +81,10 @@ export function processClients(
export function pluginsClassMap(
plugins: PluginStates,
): Map<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>> {
): Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin> {
const pluginsMap: Map<
string,
Class<FlipperDevicePlugin<> | FlipperPlugin<>>,
typeof FlipperDevicePlugin | typeof FlipperPlugin
> = new Map([]);
plugins.clientPlugins.forEach((val, key) => {
pluginsMap.set(key, val);
@@ -216,7 +216,7 @@ const addSaltToDeviceSerial = async (
}
return {...notif, client: notif.client.replace(serial, newSerial)};
});
const revision: ?string = await readCurrentRevision();
const revision: string | null = await readCurrentRevision();
return {
fileVersion: remote.app.getVersion(),
flipperReleaseRevision: revision,
@@ -229,20 +229,20 @@ const addSaltToDeviceSerial = async (
};
};
type ProcessStoreOptions = {|
activeNotifications: Array<PluginNotification>,
device: ?BaseDevice,
pluginStates: PluginStatesState,
clients: Array<ClientExport>,
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
salt: string,
selectedPlugins: Array<string>,
statusUpdate?: (msg: string) => void,
|};
type ProcessStoreOptions = {
activeNotifications: Array<PluginNotification>;
device: BaseDevice | null;
pluginStates: PluginStatesState;
clients: Array<ClientExport>;
devicePlugins: Map<string, typeof FlipperDevicePlugin>;
salt: string;
selectedPlugins: Array<string>;
statusUpdate?: (msg: string) => void;
};
export const processStore = async (
options: ProcessStoreOptions,
): Promise<?ExportType> => {
): Promise<ExportType | null> => {
const {
activeNotifications,
device,
@@ -289,10 +289,10 @@ export const processStore = async (
export async function fetchMetadata(
pluginStates: PluginStatesState,
pluginsMap: Map<string, Class<FlipperDevicePlugin<> | FlipperPlugin<>>>,
pluginsMap: Map<string, typeof FlipperDevicePlugin | typeof FlipperPlugin>,
store: MiddlewareAPI,
statusUpdate?: (msg: string) => void,
): Promise<{pluginStates: PluginStatesState, errorArray: Array<Error>}> {
): Promise<{pluginStates: PluginStatesState; errorArray: Array<Error>}> {
const newPluginState = {...pluginStates};
const errorArray: Array<Error> = [];
const clients = store.getState().connections.clients;
@@ -311,9 +311,10 @@ export async function fetchMetadata(
? client.plugins.filter(plugin => selectedPlugins.includes(plugin))
: client.plugins;
for (const plugin of selectedFilteredPlugins) {
const pluginClass: ?Class<
FlipperDevicePlugin<> | FlipperPlugin<>,
> = plugin ? pluginsMap.get(plugin) : null;
const pluginClass:
| typeof FlipperDevicePlugin
| typeof FlipperPlugin
| null = plugin ? pluginsMap.get(plugin) : null;
const exportState = pluginClass ? pluginClass.exportPersistedState : null;
if (exportState) {
const key = pluginKey(client.id, plugin);
@@ -339,7 +340,7 @@ export async function fetchMetadata(
export async function getStoreExport(
store: MiddlewareAPI,
statusUpdate?: (msg: string) => void,
): Promise<{exportData: ?ExportType, errorArray: Array<Error>}> {
): Promise<{exportData: ExportType | null; errorArray: Array<Error>}> {
const state = store.getState();
const {clients} = state.connections;
const {pluginStates} = state;
@@ -353,7 +354,7 @@ export async function getStoreExport(
const pluginsMap: Map<
string,
Class<FlipperDevicePlugin<> | FlipperPlugin<>>,
typeof FlipperDevicePlugin | typeof FlipperPlugin
> = new Map([]);
plugins.clientPlugins.forEach((val, key) => {
pluginsMap.set(key, val);
@@ -390,7 +391,7 @@ export function exportStore(
store: MiddlewareAPI,
idler?: Idler,
statusUpdate?: (msg: string) => void,
): Promise<{serializedString: string, errorArray: Array<Error>}> {
): Promise<{serializedString: string; errorArray: Array<Error>}> {
getLogger().track('usage', EXPORT_FLIPPER_TRACE_EVENT);
return new Promise(async (resolve, reject) => {
try {

View File

@@ -9,8 +9,8 @@ import {serialize} from './serialization';
import type {State as PluginStatesState} from '../reducers/pluginStates.tsx';
import type {Store} from '../reducers/index.tsx';
import fs from 'fs';
import type {ExportType} from './exportData';
import {fetchMetadata, pluginsClassMap} from './exportData';
import type {ExportType} from './exportData.tsx';
import {fetchMetadata, pluginsClassMap} from './exportData.tsx';
import {deserializeObject} from './serialization';
export type MetricType = {[metricName: string]: number};

View File

@@ -7,7 +7,7 @@
import {FlipperDevicePlugin, FlipperPlugin} from '../plugin';
import BaseDevice from '../devices/BaseDevice';
import {State as PluginStatesState} from '../reducers/pluginStates';
import {pluginsClassMap} from './exportData.js';
import {pluginsClassMap} from './exportData';
import {State as PluginsState} from '../reducers/plugins';
import {PluginDefinition} from '../dispatcher/plugins';