UNPKG

react-native-windows

Version:
77 lines (72 loc) 1.98 kB
/** * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. * * @flow strict * @format */ import type {PlatformSelectSpec, PlatformType} from './PlatformTypes'; import NativePlatformConstantsWin from './NativePlatformConstantsWin'; const Platform: PlatformType = { __constants: null, OS: 'windows', // $FlowFixMe[unsafe-getters-setters] get Version(): number { // $FlowFixMe[object-this-reference] return this.constants.osVersion; }, // $FlowFixMe[unsafe-getters-setters] get constants(): { isTesting: boolean, isDisableAnimations?: boolean, reactNativeVersion: { major: number, minor: number, patch: number, prerelease: ?string, }, reactNativeWindowsVersion: { // [Windows] major: number, minor: number, patch: number, }, osVersion: number, } { // $FlowFixMe[object-this-reference] if (this.__constants == null) { // $FlowFixMe[object-this-reference] this.__constants = NativePlatformConstantsWin.getConstants(); } // $FlowFixMe[object-this-reference] return this.__constants; }, // $FlowFixMe[unsafe-getters-setters] get isTesting(): boolean { if (__DEV__) { // $FlowFixMe[object-this-reference] return this.constants.isTesting; } return false; }, // $FlowFixMe[unsafe-getters-setters] get isDisableAnimations(): boolean { // $FlowFixMe[object-this-reference] return this.constants.isDisableAnimations ?? this.isTesting; }, // $FlowFixMe[unsafe-getters-setters] get isTV(): boolean { // $FlowFixMe[object-this-reference] return false; }, select: <T>(spec: PlatformSelectSpec<T>): T => 'windows' in spec ? // $FlowFixMe[incompatible-type] spec.windows : 'native' in spec ? // $FlowFixMe[incompatible-type] spec.native : // $FlowFixMe[incompatible-type] spec.default, }; export default Platform;