Clean up process globals

Summary: Cleaned up some `process` references

Reviewed By: passy

Differential Revision: D33184882

fbshipit-source-id: 6fc56bcea4e145ba97aa8bf9e689e53e2bf239cc
This commit is contained in:
Michel Weststrate
2021-12-17 14:11:20 -08:00
committed by Facebook GitHub Bot
parent e46fcba0b2
commit 4630f37786
6 changed files with 36 additions and 25 deletions

View File

@@ -20,6 +20,7 @@ export * from './server-types';
export {sleep} from './utils/sleep';
export {timeout} from './utils/timeout';
export {isTest} from './utils/isTest';
export {isProduction} from './utils/isProduction';
export {assertNever} from './utils/assertNever';
export {fsConstants} from './utils/fsConstants';
export {

View File

@@ -0,0 +1,18 @@
/**
* 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
*/
declare const process: any;
// TODO: there are currently two definitions of isProduction active,
// this one, and one provided by the RenderHostConfig. Ideally they should be unified
export function isProduction(): boolean {
return (
typeof process === 'undefined' || process.env.NODE_ENV === 'production'
);
}

View File

@@ -8,8 +8,7 @@
*/
declare const process: any;
const _isTest = typeof process !== 'undefined' && !!process.env.JEST_WORKER_ID;
export function isTest(): boolean {
return _isTest;
return typeof process !== 'undefined' && !!process.env.JEST_WORKER_ID;
}

View File

@@ -349,5 +349,6 @@ export function useTableRedraw() {
declare const process: any;
function useInUnitTest(): boolean {
// N.B. Not reusing flipper-common here, since data-source is published as separate package
return typeof process !== 'undefined' && process?.env?.NODE_ENV === 'test';
}

View File

@@ -7,6 +7,8 @@
* @format
*/
import {isProduction} from 'flipper-common';
/**
* makeShallowSerializable will prepare common data structures, like Map and Set, for JSON serialization.
* However, this will happen only for the root object and not recursively to keep things efficiently.
@@ -66,18 +68,12 @@ export function deserializeShallowObject(obj: any): any {
return obj;
}
// TODO: introduce a isProduction utility!
declare const process: any;
/**
* Asserts a value is JSON serializable.
* Will print a warning if a value is JSON serializable, but isn't a pure tree
*/
export function assertSerializable(obj: any) {
if (
typeof process === 'undefined' ||
(process.env.NODE_ENV !== 'test' && process.env.NODE_ENV !== 'development')
) {
if (isProduction()) {
return;
}
// path to current object

View File

@@ -7,19 +7,15 @@
* @format
*/
import {isProduction} from 'flipper-common';
import {useRef} from 'react';
// TODO: create isProduction utility!
declare const process: any;
/**
* This hook will throw in development builds if the value passed in is unstable.
* Use this if to make sure consumers aren't creating or changing certain props over time
* (intentionally or accidentally)
*/
export const useAssertStableRef =
typeof process !== 'undefined' &&
(process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test')
export const useAssertStableRef = !isProduction()
? function useAssertStableRef(value: any, prop: string) {
const ref = useRef(value);
if (ref.current !== value) {