Convert utils/processConfig to TS

Reviewed By: danielbuechele

Differential Revision: D16710602

fbshipit-source-id: 3dbccdb0aedd3d5415487d690fb943aafdafa0f0
This commit is contained in:
John Knox
2019-08-12 03:02:16 -07:00
committed by Facebook Github Bot
parent fda506086f
commit 882d7e1a39
6 changed files with 20 additions and 15 deletions

View File

@@ -0,0 +1,51 @@
/**
* Copyright 2018-present Facebook.
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
*/
import {remote} from 'electron';
export type ProcessConfig = {
disabledPlugins: Set<string>;
pluginPaths: Array<string>;
lastWindowPosition: {
x: number;
y: number;
width: number;
height: number;
} | null;
screenCapturePath: string | null;
launcherMsg: string | null;
updaterEnabled: boolean;
// Controls whether to delegate to the launcher if present.
launcherEnabled: boolean;
};
let configObj = null;
export default function config(): ProcessConfig {
if (configObj === null) {
const json = JSON.parse(
// $FlowFixMe: process.env not in type defs
(remote && remote.process.env.CONFIG) || process.env.CONFIG || '{}',
);
configObj = {
disabledPlugins: new Set(json.disabledPlugins || []),
pluginPaths: json.pluginPaths || [],
lastWindowPosition: json.lastWindowPosition,
launcherMsg: json.launcherMsg,
updaterEnabled:
typeof json.updaterEnabled === 'boolean' ? json.updaterEnabled : true,
screenCapturePath: json.screenCapturePath,
launcherEnabled:
typeof json.launcherEnabled === 'boolean' ? json.launcherEnabled : true,
};
}
return configObj;
}
export function resetConfigForTesting() {
configObj = null;
}