Skip to content

Commit d98116a

Browse files
iwoplazafacebook-github-bot
authored andcommitted
Migrate Libraries/Utilities/Platform to use export syntax (#49306)
Summary: Pull Request resolved: #49306 ## Motivation Modernising the RN codebase to allow for modern Flow tooling to process it. ## This diff - Migrates `Libraries/Utilities/Platform.*.js` to use the export syntax. - Updates deep-imports of these files to use `.default` - Updates jest mocks - Updates the current iteration of API snapshots (intended). Changelog: [General][Breaking] - Deep imports to `Libraries/Utilities/Platform` with `require` syntax needs to be appended with '.default'. Reviewed By: huntie Differential Revision: D69404025 fbshipit-source-id: f21501ca5b7e8e6a9e3e501781ed36e7d2bfd4a4
1 parent 7aef81b commit d98116a

31 files changed

+47
-44
lines changed

packages/react-native/Libraries/Animated/__tests__/Animated-web-test.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@ const StyleSheet = require('../../StyleSheet/StyleSheet').default;
1212
let Animated = require('../Animated').default;
1313
let AnimatedProps = require('../nodes/AnimatedProps').default;
1414

15-
jest.mock('../../Utilities/Platform', () => {
16-
return {OS: 'web'};
17-
});
15+
jest.mock('../../Utilities/Platform', () => ({
16+
__esModule: true,
17+
default: {
18+
OS: 'web',
19+
},
20+
}));
1821

1922
describe('Animated tests', () => {
2023
beforeEach(() => {

packages/react-native/Libraries/Components/RefreshControl/RefreshControl.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import PullToRefreshViewNativeComponent, {
1919
} from './PullToRefreshViewNativeComponent';
2020
import React from 'react';
2121

22-
const Platform = require('../../Utilities/Platform');
22+
const Platform = require('../../Utilities/Platform').default;
2323

2424
type IOSProps = $ReadOnly<{
2525
/**

packages/react-native/Libraries/Components/TextInput/TextInputState.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {Commands as AndroidTextInputCommands} from '../../Components/TextInput/A
2323
import {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSingelineTextInputNativeComponent';
2424

2525
const {findNodeHandle} = require('../../ReactNative/RendererProxy');
26-
const Platform = require('../../Utilities/Platform');
26+
const Platform = require('../../Utilities/Platform').default;
2727

2828
let currentlyFocusedInputRef: ?HostInstance = null;
2929
const inputs = new Set<{

packages/react-native/Libraries/Image/AssetSourceResolver.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import type {
2424
} from '@react-native/assets-registry/registry';
2525

2626
const PixelRatio = require('../Utilities/PixelRatio').default;
27-
const Platform = require('../Utilities/Platform');
27+
const Platform = require('../Utilities/Platform').default;
2828
const {pickScale} = require('./AssetUtils');
2929
const {
3030
getAndroidResourceFolderName,

packages/react-native/Libraries/Image/__tests__/resolveAssetSource-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('resolveAssetSource', () => {
2323
resolveAssetSource = require('../resolveAssetSource').default;
2424
NativeSourceCode =
2525
require('../../NativeModules/specs/NativeSourceCode').default;
26-
Platform = require('../../Utilities/Platform');
26+
Platform = require('../../Utilities/Platform').default;
2727
});
2828

2929
it('returns same source for simple static and network images', () => {

packages/react-native/Libraries/Lists/FlatList.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import React from 'react';
2626

2727
const StyleSheet = require('../StyleSheet/StyleSheet').default;
2828
const deepDiffer = require('../Utilities/differ/deepDiffer').default;
29-
const Platform = require('../Utilities/Platform');
29+
const Platform = require('../Utilities/Platform').default;
3030
const invariant = require('invariant');
3131

3232
const VirtualizedList = VirtualizedLists.VirtualizedList;

packages/react-native/Libraries/Modal/Modal.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const AppContainer = require('../ReactNative/AppContainer').default;
2626
const I18nManager = require('../ReactNative/I18nManager').default;
2727
const {RootTagContext} = require('../ReactNative/RootTag');
2828
const StyleSheet = require('../StyleSheet/StyleSheet').default;
29-
const Platform = require('../Utilities/Platform');
29+
const Platform = require('../Utilities/Platform').default;
3030

3131
const VirtualizedListContextResetter =
3232
VirtualizedLists.VirtualizedListContextResetter;

packages/react-native/Libraries/Network/__tests__/XMLHttpRequest-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
const createPerformanceLogger =
1414
require('../../Utilities/createPerformanceLogger').default;
1515
const GlobalPerformanceLogger = require('../../Utilities/GlobalPerformanceLogger');
16-
const Platform = require('../../Utilities/Platform');
16+
const Platform = require('../../Utilities/Platform').default;
1717
const XMLHttpRequest = require('../XMLHttpRequest').default;
1818

1919
jest.unmock('../../Utilities/Platform');

packages/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManag
1717
import NativePermissionsAndroid from './NativePermissionsAndroid';
1818
import invariant from 'invariant';
1919

20-
const Platform = require('../Utilities/Platform');
20+
const Platform = require('../Utilities/Platform').default;
2121

2222
export type Rationale = {
2323
title: string,

packages/react-native/Libraries/Pressability/__tests__/Pressability-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import type {PressEvent} from '../../Types/CoreEventTypes';
1616
import type {PressabilityConfig} from '../Pressability';
1717

1818
const UIManager = require('../../ReactNative/UIManager').default;
19-
const Platform = require('../../Utilities/Platform');
19+
const Platform = require('../../Utilities/Platform').default;
2020
const HoverState = require('../HoverState');
2121
const Pressability = require('../Pressability').default;
2222
const invariant = require('invariant');

packages/react-native/Libraries/ReactNative/PaperUIManager.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import nullthrows from 'nullthrows';
1616

1717
const NativeModules = require('../BatchedBridge/NativeModules').default;
1818
const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
19-
const Platform = require('../Utilities/Platform');
19+
const Platform = require('../Utilities/Platform').default;
2020
const UIManagerProperties = require('./UIManagerProperties').default;
2121

2222
const viewManagerConfigs: {[string]: any | null} = {};

packages/react-native/Libraries/ReactPrivate/ReactNativePrivateInterface.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ module.exports = {
4747
return require('../Core/ExceptionsManager').default;
4848
},
4949
get Platform(): Platform {
50-
return require('../Utilities/Platform');
50+
return require('../Utilities/Platform').default;
5151
},
5252
get RCTEventEmitter(): RCTEventEmitter {
5353
return require('../EventEmitter/RCTEventEmitter').default;

packages/react-native/Libraries/Share/Share.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import NativeActionSheetManager from '../ActionSheetIOS/NativeActionSheetManager
1414
import NativeShareModule from './NativeShareModule';
1515

1616
const processColor = require('../StyleSheet/processColor').default;
17-
const Platform = require('../Utilities/Platform');
17+
const Platform = require('../Utilities/Platform').default;
1818
const invariant = require('invariant');
1919

2020
export type ShareContent =

packages/react-native/Libraries/StyleSheet/__tests__/normalizeColor-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
'use strict';
1212

13-
const {OS} = require('../../Utilities/Platform');
13+
const {OS} = require('../../Utilities/Platform').default;
1414
const normalizeColor = require('../normalizeColor').default;
1515

1616
it('forwards calls to @react-native/normalize-colors', () => {

packages/react-native/Libraries/StyleSheet/__tests__/processBackgroundImage-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import processBackgroundImage from '../processBackgroundImage';
1414

15-
const {OS} = require('../../Utilities/Platform');
15+
const {OS} = require('../../Utilities/Platform').default;
1616
const PlatformColorAndroid =
1717
require('../PlatformColorValueTypes.android').PlatformColor;
1818
const PlatformColorIOS =

packages/react-native/Libraries/StyleSheet/__tests__/processColor-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
'use strict';
1212

13-
const {OS} = require('../../Utilities/Platform');
13+
const {OS} = require('../../Utilities/Platform').default;
1414
const PlatformColorAndroid =
1515
require('../PlatformColorValueTypes.android').PlatformColor;
1616
const PlatformColorIOS =

packages/react-native/Libraries/StyleSheet/__tests__/processColorArray-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
'use strict';
1212

13-
const {OS} = require('../../Utilities/Platform');
13+
const {OS} = require('../../Utilities/Platform').default;
1414
const PlatformColorAndroid =
1515
require('../PlatformColorValueTypes.android').PlatformColor;
1616
const PlatformColorIOS =

packages/react-native/Libraries/StyleSheet/processColor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import type {ColorValue, NativeColorValue} from './StyleSheet';
1414

15-
const Platform = require('../Utilities/Platform');
15+
const Platform = require('../Utilities/Platform').default;
1616
const normalizeColor = require('./normalizeColor').default;
1717

1818
export type ProcessedColorValue = number | NativeColorValue;

packages/react-native/Libraries/Utilities/HMRClient.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import LogBox from '../LogBox/LogBox';
1515
import NativeRedBox from '../NativeModules/specs/NativeRedBox';
1616

1717
const DevSettings = require('./DevSettings').default;
18-
const Platform = require('./Platform');
18+
const Platform = require('./Platform').default;
1919
const invariant = require('invariant');
2020
const MetroHMRClient = require('metro-runtime/src/modules/HMRClient');
2121
const prettyFormat = require('pretty-format');

packages/react-native/Libraries/Utilities/Platform.android.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import type {
1212
Platform as PlatformType,
1313
PlatformSelectSpec,
14-
} from './Platform.flow';
14+
} from './PlatformTypes';
1515

1616
import NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';
1717

@@ -84,4 +84,4 @@ const Platform: PlatformType = {
8484
spec.default,
8585
};
8686

87-
module.exports = Platform;
87+
export default Platform;

packages/react-native/Libraries/Utilities/Platform.ios.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import type {
1212
Platform as PlatformType,
1313
PlatformSelectSpec,
14-
} from './Platform.flow';
14+
} from './PlatformTypes';
1515

1616
import NativePlatformConstantsIOS from './NativePlatformConstantsIOS';
1717

@@ -85,4 +85,4 @@ const Platform: PlatformType = {
8585
'ios' in spec ? spec.ios : 'native' in spec ? spec.native : spec.default,
8686
};
8787

88-
module.exports = Platform;
88+
export default Platform;

packages/react-native/Libraries/Utilities/Platform.js.flow

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
* @format
99
*/
1010

11-
import type {Platform} from './Platform.flow';
11+
import type {Platform} from './PlatformTypes';
1212

13-
declare module.exports: Platform;
13+
declare export default Platform;

packages/react-native/Libraries/Utilities/__tests__/Dimensions-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
describe('Dimensions', () => {
1414
const Dimensions = require('../Dimensions').default;
15-
const Platform = require('../Platform');
15+
const Platform = require('../Platform').default;
1616

1717
it('should set window dimensions', () => {
1818
Dimensions.set({

packages/react-native/Libraries/Utilities/__tests__/Platform-test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
'use strict';
1212

13-
const PlatformAndroid = require('../Platform.android');
14-
const PlatformIOS = require('../Platform.ios');
13+
const PlatformAndroid = require('../Platform.android').default;
14+
const PlatformIOS = require('../Platform.ios').default;
1515

1616
describe('Platform', () => {
1717
describe('OS', () => {

packages/react-native/Libraries/Vibration/Vibration.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import NativeVibration from './NativeVibration';
1313

14-
const Platform = require('../Utilities/Platform');
14+
const Platform = require('../Utilities/Platform').default;
1515

1616
/**
1717
* Vibration API

packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap

+6-6
Original file line numberDiff line numberDiff line change
@@ -8285,7 +8285,12 @@ declare export default typeof PixelRatio;
82858285
"
82868286
`;
82878287

8288-
exports[`public API should not change unintentionally Libraries/Utilities/Platform.flow.js 1`] = `
8288+
exports[`public API should not change unintentionally Libraries/Utilities/Platform.js.flow 1`] = `
8289+
"declare export default Platform;
8290+
"
8291+
`;
8292+
8293+
exports[`public API should not change unintentionally Libraries/Utilities/PlatformTypes.js 1`] = `
82898294
"export type PlatformSelectSpec<T> = {
82908295
default?: T,
82918296
native?: T,
@@ -8351,11 +8356,6 @@ export type Platform = IOSPlatform | AndroidPlatform;
83518356
"
83528357
`;
83538358

8354-
exports[`public API should not change unintentionally Libraries/Utilities/Platform.js.flow 1`] = `
8355-
"declare module.exports: Platform;
8356-
"
8357-
`;
8358-
83598359
exports[`public API should not change unintentionally Libraries/Utilities/PolyfillFunctions.js 1`] = `
83608360
"declare export function polyfillObjectProperty<T>(
83618361
object: { ... },

packages/react-native/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ module.exports = {
374374
return require('./Libraries/BatchedBridge/NativeModules').default;
375375
},
376376
get Platform(): Platform {
377-
return require('./Libraries/Utilities/Platform');
377+
return require('./Libraries/Utilities/Platform').default;
378378
},
379379
get PlatformColor(): PlatformColor {
380380
return require('./Libraries/StyleSheet/PlatformColorValueTypes')

packages/react-native/src/private/inspector/Inspector.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const {
2828
} = require('../../../Libraries/ReactNative/RendererProxy');
2929
const StyleSheet = require('../../../Libraries/StyleSheet/StyleSheet').default;
3030
const Dimensions = require('../../../Libraries/Utilities/Dimensions').default;
31-
const Platform = require('../../../Libraries/Utilities/Platform');
31+
const Platform = require('../../../Libraries/Utilities/Platform').default;
3232
const getInspectorDataForViewAtPoint =
3333
require('./getInspectorDataForViewAtPoint').default;
3434
const InspectorOverlay = require('./InspectorOverlay').default;

packages/react-native/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
1212

1313
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
1414

15-
const Platform = require('../../../../Libraries/Utilities/Platform');
15+
const Platform = require('../../../../Libraries/Utilities/Platform').default;
1616

1717
export type StackFrame = {
1818
column: ?number,

tools/eslint/rules/__tests__/no-react-native-imports-test.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ ruleTester.run('require(...)', rule, {
6161
output: null, // Expect no autofix to be suggested.
6262
},
6363
{
64-
code: `const Platform = require('react-native/Libraries/Utilities/Platform');`,
64+
code: `const Platform = require('react-native/Libraries/Utilities/Platform').default;`,
6565
errors: [{messageId: 'rnImport'}],
6666
filename,
67-
output: `const Platform = require('../../Utilities/Platform');`,
67+
output: `const Platform = require('../../Utilities/Platform').default;`,
6868
},
6969
{
7070
code: `const ViewNativeComponent = require('react-native/Libraries/Components/View/ViewNativeComponent');`,
@@ -107,10 +107,10 @@ ruleTester.run('import(...)', rule, {
107107
output: null, // Expect no autofix to be suggested.
108108
},
109109
{
110-
code: `import('react-native/Libraries/Utilities/Platform');`,
110+
code: `import('react-native/Libraries/Utilities/Platform').default;`,
111111
errors: [{messageId: 'rnImport'}],
112112
filename,
113-
output: `import('../../Utilities/Platform');`,
113+
output: `import('../../Utilities/Platform').default;`,
114114
},
115115
{
116116
code: `import('react-native/Libraries/Components/View/ViewNativeComponent');`,

0 commit comments

Comments
 (0)