Move metrics / tracking / error analysis to flipper-common package
Summary: what else can I say move_complexity Reviewed By: passy Differential Revision: D31483414 fbshipit-source-id: 1692c792121a3aae0843eb238040cae0445cdf54
This commit is contained in:
committed by
Facebook GitHub Bot
parent
51bfc8f05d
commit
3e7a6b1b4b
@@ -15,7 +15,7 @@ import BaseDevice from './devices/BaseDevice';
|
||||
import {Logger} from 'flipper-common';
|
||||
import {Store} from './reducers/index';
|
||||
import {performance} from 'perf_hooks';
|
||||
import {reportPluginFailures} from './utils/metrics';
|
||||
import {reportPluginFailures} from 'flipper-common';
|
||||
import {default as isProduction} from './utils/isProduction';
|
||||
import {EventEmitter} from 'events';
|
||||
import invariant from 'invariant';
|
||||
|
||||
@@ -46,7 +46,7 @@ import {InstalledPluginDetails} from 'flipper-plugin-lib';
|
||||
import semver from 'semver';
|
||||
import {loadPlugin} from './reducers/pluginManager';
|
||||
import {produce} from 'immer';
|
||||
import {reportUsage} from './utils/metrics';
|
||||
import {reportUsage} from 'flipper-common';
|
||||
import {PluginInfo} from './chrome/fb-stubs/PluginInfo';
|
||||
import {getActiveClient, getActivePlugin} from './selectors/connections';
|
||||
import {AnyAction} from 'redux';
|
||||
|
||||
@@ -11,7 +11,7 @@ import {Markdown} from '../ui';
|
||||
import {readFileSync} from 'fs';
|
||||
import React, {Component} from 'react';
|
||||
import path from 'path';
|
||||
import {reportUsage} from '../utils/metrics';
|
||||
import {reportUsage} from 'flipper-common';
|
||||
import {getChangelogPath} from '../utils/pathUtils';
|
||||
import {Modal} from 'antd';
|
||||
import {theme} from 'flipper-plugin';
|
||||
|
||||
@@ -38,7 +38,7 @@ import runHealthchecks, {
|
||||
HealthcheckEventsHandler,
|
||||
} from '../utils/runHealthchecks';
|
||||
import {getFlipperLib} from 'flipper-plugin';
|
||||
import {reportUsage} from '../utils/metrics';
|
||||
import {reportUsage} from 'flipper-common';
|
||||
|
||||
type StateFromProps = {
|
||||
healthcheckReport: HealthcheckReport;
|
||||
|
||||
@@ -32,7 +32,7 @@ import {Popover, Rate} from 'antd';
|
||||
import {useStore} from '../utils/useStore';
|
||||
import {isLoggedIn} from '../fb-stubs/user';
|
||||
import {useValue} from 'flipper-plugin';
|
||||
import {reportPlatformFailures} from '../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
|
||||
type NextAction = 'select-rating' | 'leave-comment' | 'finished';
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ import KeyboardShortcutInput from './settings/KeyboardShortcutInput';
|
||||
import {isEqual, isMatch, isEmpty} from 'lodash';
|
||||
import restartFlipper from '../utils/restartFlipper';
|
||||
import LauncherSettingsPanel from '../fb-stubs/LauncherSettingsPanel';
|
||||
import {reportUsage} from '../utils/metrics';
|
||||
import {reportUsage} from 'flipper-common';
|
||||
import {Modal, message, Button} from 'antd';
|
||||
import {Layout, withTrackingScope, _NuxManagerContext} from 'flipper-plugin';
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
import {FlexColumn, Button, styled, Text, FlexRow, Spacer} from '../ui';
|
||||
import React, {Component} from 'react';
|
||||
import {reportPlatformFailures} from '../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {performance} from 'perf_hooks';
|
||||
import {Logger} from 'flipper-common';
|
||||
import {IdlerImpl} from '../utils/Idler';
|
||||
|
||||
@@ -23,7 +23,7 @@ import {
|
||||
displayFetchMetadataErrors,
|
||||
} from '../utils/exportData';
|
||||
import ShareSheetErrorList from './ShareSheetErrorList';
|
||||
import {reportPlatformFailures} from '../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {performance} from 'perf_hooks';
|
||||
import ShareSheetPendingDialog from './ShareSheetPendingDialog';
|
||||
import {getLogger} from 'flipper-common';
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
import {notification, Typography} from 'antd';
|
||||
import isProduction from '../utils/isProduction';
|
||||
import {reportPlatformFailures} from '../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import React, {useEffect, useState} from 'react';
|
||||
import fbConfig from '../fb-stubs/config';
|
||||
import {useStore} from '../utils/useStore';
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
import {Layout, theme} from 'flipper-plugin';
|
||||
import {LoadingIndicator, TableRows, ManagedTable, Glyph} from '../../ui';
|
||||
import React, {useCallback, useState, useEffect} from 'react';
|
||||
import {reportPlatformFailures, reportUsage} from '../../utils/metrics';
|
||||
import {reportPlatformFailures, reportUsage} from 'flipper-common';
|
||||
import reloadFlipper from '../../utils/reloadFlipper';
|
||||
import {registerInstalledPlugins} from '../../reducers/plugins';
|
||||
import {
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
importFileToStore,
|
||||
IMPORT_FLIPPER_TRACE_EVENT,
|
||||
} from '../utils/exportData';
|
||||
import {tryCatchReportPlatformFailures} from '../utils/metrics';
|
||||
import {tryCatchReportPlatformFailures} from 'flipper-common';
|
||||
import {handleDeeplink} from '../deeplink';
|
||||
import {Dialog} from 'flipper-plugin';
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import Client from '../Client';
|
||||
import {notification} from 'antd';
|
||||
import BaseDevice from '../devices/BaseDevice';
|
||||
import {ClientDescription, timeout} from 'flipper-common';
|
||||
import {reportPlatformFailures} from '../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {sideEffect} from '../utils/sideEffect';
|
||||
|
||||
export default async (store: Store, logger: Logger) => {
|
||||
|
||||
@@ -14,7 +14,7 @@ import {getUser} from '../fb-stubs/user';
|
||||
import {State, Store} from '../reducers/index';
|
||||
import {checkForUpdate} from '../fb-stubs/checkForUpdate';
|
||||
import {getAppVersion} from '../utils/info';
|
||||
import {UserNotSignedInError} from '../utils/errors';
|
||||
import {UserNotSignedInError} from 'flipper-common';
|
||||
import {selectPlugin, setPluginEnabled} from '../reducers/connections';
|
||||
import {getUpdateAvailableMessage} from '../chrome/UpdateIndicator';
|
||||
import {Typography} from 'antd';
|
||||
|
||||
@@ -26,7 +26,7 @@ import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
import tmp from 'tmp';
|
||||
import {promisify} from 'util';
|
||||
import {reportPlatformFailures, reportUsage} from '../utils/metrics';
|
||||
import {reportPlatformFailures, reportUsage} from 'flipper-common';
|
||||
import {loadPlugin} from '../reducers/pluginManager';
|
||||
import {showErrorNotification} from '../utils/notifications';
|
||||
import {pluginInstalled} from '../reducers/plugins';
|
||||
|
||||
@@ -37,7 +37,7 @@ import {
|
||||
BundledPluginDetails,
|
||||
ConcretePluginDetails,
|
||||
} from 'flipper-plugin-lib';
|
||||
import {tryCatchReportPluginFailures, reportUsage} from '../utils/metrics';
|
||||
import {tryCatchReportPluginFailures, reportUsage} from 'flipper-common';
|
||||
import * as FlipperPluginSDK from 'flipper-plugin';
|
||||
import {_SandyPluginDefinition} from 'flipper-plugin';
|
||||
import loadDynamicPlugins from '../utils/loadDynamicPlugins';
|
||||
|
||||
@@ -8,10 +8,7 @@
|
||||
*/
|
||||
|
||||
import {Store} from '../../reducers/index';
|
||||
import {
|
||||
getErrorFromErrorLike,
|
||||
getStringFromErrorLike,
|
||||
} from '../../utils/errors';
|
||||
import {getErrorFromErrorLike, getStringFromErrorLike} from 'flipper-common';
|
||||
import {LoggerArgs, Logger} from 'flipper-common';
|
||||
|
||||
const instance = {
|
||||
|
||||
@@ -26,7 +26,7 @@ export {
|
||||
export {FlipperPlugin, FlipperDevicePlugin, BaseAction} from './plugin';
|
||||
export {PluginClient, Props} from './plugin';
|
||||
export {default as Client} from './Client';
|
||||
export {reportUsage} from './utils/metrics';
|
||||
export {reportUsage} from 'flipper-common';
|
||||
export {default as promiseTimeout} from './utils/promiseTimeout';
|
||||
export {clipboard, remote, OpenDialogOptions} from 'electron';
|
||||
export {bufferToBlob} from './utils/screenshot';
|
||||
|
||||
@@ -52,7 +52,8 @@ import {PersistGate} from 'redux-persist/integration/react';
|
||||
// eslint-disable-next-line flipper/no-electron-remote-imports
|
||||
import {ipcRenderer, remote} from 'electron';
|
||||
import {helloWorld} from 'flipper-server-core';
|
||||
import {setLoggerInstance} from 'flipper-common';
|
||||
import {setLoggerInstance, setUserSessionManagerInstance} from 'flipper-common';
|
||||
import {internGraphPOSTAPIRequest} from './fb-stubs/user';
|
||||
|
||||
helloWorld();
|
||||
|
||||
@@ -207,6 +208,10 @@ function init() {
|
||||
else console.warn(msg, r.error);
|
||||
}
|
||||
});
|
||||
setUserSessionManagerInstance({
|
||||
internGraphPOSTAPIRequest,
|
||||
});
|
||||
|
||||
ReactDOM.render(
|
||||
<AppFrame logger={logger} persistor={persistor} />,
|
||||
document.getElementById('root'),
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
import {Notification} from 'flipper-plugin';
|
||||
import {Actions} from './';
|
||||
import React from 'react';
|
||||
import {getStringFromErrorLike} from '../utils/errors';
|
||||
import {getStringFromErrorLike} from 'flipper-common';
|
||||
|
||||
export const GLOBAL_NOTIFICATION_PLUGIN_ID = 'Flipper';
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import {selectedPlugins as setSelectedPlugins} from './plugins';
|
||||
import {addStatusMessage, removeStatusMessage} from './application';
|
||||
import constants from '../fb-stubs/constants';
|
||||
import {getLogger} from 'flipper-common';
|
||||
import {logPlatformSuccessRate} from '../utils/metrics';
|
||||
import {logPlatformSuccessRate} from 'flipper-common';
|
||||
export const SUPPORT_FORM_PREFIX = 'support-form-v2';
|
||||
import {getExportablePlugins} from '../selectors/connections';
|
||||
import {DeviceOS} from 'flipper-plugin';
|
||||
|
||||
@@ -34,7 +34,7 @@ import {
|
||||
} from '../reducers/healthchecks';
|
||||
import runHealthchecks from '../utils/runHealthchecks';
|
||||
import {Healthchecks} from 'flipper-doctor';
|
||||
import {reportUsage} from '../utils/metrics';
|
||||
import {reportUsage} from 'flipper-common';
|
||||
|
||||
const {Title, Paragraph, Text} = Typography;
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ import {
|
||||
uninstallPlugin,
|
||||
} from '../../reducers/pluginManager';
|
||||
import {BundledPluginDetails} from 'flipper-plugin-lib';
|
||||
import {reportUsage} from '../../utils/metrics';
|
||||
import {reportUsage} from 'flipper-common';
|
||||
import ConnectivityStatus from './fb-stubs/ConnectivityStatus';
|
||||
import {useSelector} from 'react-redux';
|
||||
import {getPluginLists} from '../../selectors/connections';
|
||||
|
||||
@@ -13,7 +13,7 @@ import {ClientDescription, ClientQuery, isTest} from 'flipper-common';
|
||||
import CertificateProvider from '../utils/CertificateProvider';
|
||||
import {ClientConnection, ConnectionStatus} from './ClientConnection';
|
||||
import {UninitializedClient} from 'flipper-common';
|
||||
import {reportPlatformFailures} from '../../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {EventEmitter} from 'events';
|
||||
import invariant from 'invariant';
|
||||
import GK from '../../fb-stubs/GK';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {reportPlatformFailures} from '../../../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {execFile} from 'promisify-child-process';
|
||||
import adbConfig from './adbConfig';
|
||||
import adbkit, {Client} from 'adbkit';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {UnsupportedError} from '../../../utils/metrics';
|
||||
import {UnsupportedError} from 'flipper-common';
|
||||
import adbkit, {Client} from 'adbkit';
|
||||
|
||||
const allowedAppNameRegex = /^[\w.-]+$/;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
import React from 'react';
|
||||
import {Mutex} from 'async-mutex';
|
||||
import {exec as unsafeExec, Output} from 'promisify-child-process';
|
||||
import {reportPlatformFailures} from '../../../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {promises, constants} from 'fs';
|
||||
import memoize from 'lodash.memoize';
|
||||
import {notNull} from '../../utils/typeUtils';
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
import {Logger} from 'flipper-common';
|
||||
import {internGraphPOSTAPIRequest} from '../../fb-stubs/user';
|
||||
import {internGraphPOSTAPIRequest} from 'flipper-common';
|
||||
import ServerController from '../comms/ServerController';
|
||||
import {promisify} from 'util';
|
||||
import fs from 'fs-extra';
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
import path from 'path';
|
||||
import tmp, {DirOptions, FileOptions} from 'tmp';
|
||||
import iosUtil from '../devices/ios/iOSContainerUtility';
|
||||
import {reportPlatformFailures} from '../../utils/metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import {getAdbClient} from '../devices/android/adbClient';
|
||||
import * as androidUtil from '../devices/android/androidContainerUtility';
|
||||
import os from 'os';
|
||||
@@ -113,7 +113,7 @@ export default class CertificateProvider {
|
||||
this.logger = logger;
|
||||
// TODO: refactor this code to create promise lazily
|
||||
this._adb = config.enableAndroid
|
||||
? (getAdbClient(config).catch((e) => {
|
||||
? (getAdbClient(config).catch((_e) => {
|
||||
// make sure initialization failure is already logged
|
||||
const msg =
|
||||
'Failed to initialize ADB. Please disable Android support in settings, or configure a correct path';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {CancelledPromiseError} from './errors';
|
||||
import {CancelledPromiseError} from 'flipper-common';
|
||||
import {Idler, sleep} from 'flipper-plugin';
|
||||
|
||||
export class IdlerImpl implements Idler {
|
||||
|
||||
@@ -26,7 +26,7 @@ import fs from 'fs';
|
||||
import {v4 as uuidv4} from 'uuid';
|
||||
import {remote, OpenDialogOptions} from 'electron';
|
||||
import {readCurrentRevision} from './packageMetadata';
|
||||
import {tryCatchReportPlatformFailures} from './metrics';
|
||||
import {tryCatchReportPlatformFailures} from 'flipper-common';
|
||||
import {promisify} from 'util';
|
||||
import {TestIdler} from './Idler';
|
||||
import {setStaticView} from '../reducers/connections';
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
import {HealthcheckResult} from '../reducers/healthchecks';
|
||||
import {getHealthchecks, getEnvInfo, Healthchecks} from 'flipper-doctor';
|
||||
import {logPlatformSuccessRate, reportPlatformFailures} from '../utils/metrics';
|
||||
import {logPlatformSuccessRate, reportPlatformFailures} from 'flipper-common';
|
||||
|
||||
let healthcheckIsRunning: boolean;
|
||||
let runningHealthcheck: Promise<void>;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import BaseDevice from '../devices/BaseDevice';
|
||||
import {reportPlatformFailures} from './metrics';
|
||||
import {reportPlatformFailures} from 'flipper-common';
|
||||
import expandTilde from 'expand-tilde';
|
||||
import {remote} from 'electron';
|
||||
import config from '../utils/processConfig';
|
||||
|
||||
@@ -20,3 +20,24 @@ export * from './server-types';
|
||||
export {sleep} from './utils/sleep';
|
||||
export {timeout} from './utils/timeout';
|
||||
export {isTest} from './utils/isTest';
|
||||
export {
|
||||
logPlatformSuccessRate,
|
||||
reportPlatformFailures,
|
||||
reportUsage,
|
||||
reportPluginFailures,
|
||||
tryCatchReportPlatformFailures,
|
||||
tryCatchReportPluginFailures,
|
||||
UnsupportedError,
|
||||
} from './utils/metrics';
|
||||
export {
|
||||
ConnectivityError,
|
||||
CancelledPromiseError,
|
||||
UserUnauthorizedError,
|
||||
UserNotSignedInError,
|
||||
isConnectivityOrAuthError,
|
||||
isError,
|
||||
isAuthError,
|
||||
getStringFromErrorLike,
|
||||
getErrorFromErrorLike,
|
||||
} from './utils/errors';
|
||||
export * from './user-session';
|
||||
|
||||
41
desktop/flipper-common/src/user-session.tsx
Normal file
41
desktop/flipper-common/src/user-session.tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
/**
|
||||
* APIs need to integration with Facebook services.
|
||||
*/
|
||||
|
||||
export type UserSessionManager = {
|
||||
internGraphPOSTAPIRequest: typeof internGraphPOSTAPIRequest;
|
||||
};
|
||||
|
||||
let instance: UserSessionManager | undefined = undefined;
|
||||
|
||||
function getInstance(): UserSessionManager {
|
||||
if (!instance) {
|
||||
throw new Error('UserSessionManager not available or implemented');
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
export function setUserSessionManagerInstance(i: UserSessionManager) {
|
||||
instance = i;
|
||||
}
|
||||
|
||||
export async function internGraphPOSTAPIRequest(
|
||||
_endpoint: string,
|
||||
_formFields: {
|
||||
[key: string]: any;
|
||||
} = {},
|
||||
_internGraphUrl?: string,
|
||||
_timeout?: number,
|
||||
): Promise<any> {
|
||||
// eslint-disable-next-line
|
||||
return getInstance().internGraphPOSTAPIRequest.apply(null, arguments as any);
|
||||
}
|
||||
@@ -7,8 +7,6 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {InteractionReport} from 'flipper-plugin';
|
||||
|
||||
export function isAuthError(
|
||||
err: any,
|
||||
): err is UserNotSignedInError | UserUnauthorizedError {
|
||||
@@ -61,7 +59,7 @@ export class UserNotSignedInError extends Error {
|
||||
|
||||
declare global {
|
||||
interface Error {
|
||||
interaction?: InteractionReport;
|
||||
interaction?: unknown;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {getLogger} from 'flipper-common';
|
||||
import {CancelledPromiseError, isError} from './errors';
|
||||
import {getLogger} from './Logger';
|
||||
|
||||
type Result =
|
||||
| {kind: 'success'}
|
||||
Reference in New Issue
Block a user