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
@@ -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';
|
||||
|
||||
@@ -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 {
|
||||
@@ -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};
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user