Files
react-native/packages/react-native/Libraries/Utilities/NativePlatformConstantsAndroid.js
T
Ruslan Shestopalyuk ff4e7fac6c Use type aliases for native module getConstants where applicable
Summary:
## Changelog:
[Internal] -

This replaces object literal return types in `getConstants()` for core RN native modules with type aliases.

This is a valid change from the point of view of binary compatibility between native/JS, and provides a couple of benefits, such as clearer code in general, but also ability to employ C++ codegen for the corresponding types and their marshalling.

bypass-github-export-checks

Reviewed By: christophpurrer

Differential Revision: D48685992

fbshipit-source-id: f21358b12448d30a7b5e25e81f62ef77964d1fcd
2023-08-29 14:49:09 -07:00

45 lines
1.0 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
*/
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export type ReactNativeVersionAndroid = {|
major: number,
minor: number,
patch: number,
prerelease: ?number,
|};
export type PlatformConstantsAndroid = {|
isTesting: boolean,
isDisableAnimations?: boolean,
reactNativeVersion: ReactNativeVersionAndroid,
Version: number,
Release: string,
Serial: string,
Fingerprint: string,
Model: string,
ServerHost?: string,
uiMode: string,
Brand: string,
Manufacturer: string,
|};
export interface Spec extends TurboModule {
+getConstants: () => PlatformConstantsAndroid;
+getAndroidID: () => string;
}
export default (TurboModuleRegistry.getEnforcing<Spec>(
'PlatformConstants',
): Spec);