Files
react-native/Libraries/Core/setUpGlobals.js
T
Rubén Norte 333755367f Declare some missing globals
Summary:
This declares a few globals that were missing in our `global.js` Flow declaration file:
* `process`
* `performance` with its current definition. We'll replace it with the new API when we replace `setupPerformance` with `setupWebPerformance`.
* `navigator`
* `setImmediate`
* `clearImmediate`

Eventually we should stop including all DOM definitions that Flow provides out of the box and define only what we provide (which is pretty much this file).

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D42964772

fbshipit-source-id: 6156968e8a9d193e7068d8a5043aa682ad45bba1
2023-02-09 09:36:08 -08:00

36 lines
1.2 KiB
JavaScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
* @format
*/
'use strict';
/**
* Sets up global variables for React Native.
* You can use this module directly, or just require InitializeCore.
*/
if (global.window === undefined) {
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
global.window = global;
}
if (global.self === undefined) {
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
global.self = global;
}
// Set up process
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
global.process = global.process || {};
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
global.process.env = global.process.env || {};
if (!global.process.env.NODE_ENV) {
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';
}