diff --git a/lib/types/device-types.js b/lib/types/device-types.js index 6a8a71229..a148e5869 100644 --- a/lib/types/device-types.js +++ b/lib/types/device-types.js @@ -1,34 +1,42 @@ // @flow import invariant from 'invariant'; -export type DeviceType = 'ios' | 'android'; +import { values } from '../utils/objects.js'; + +const deviceTypesObj = Object.freeze({ + ios: 'ios', + android: 'android', +}); +export type DeviceType = $Values; export type Platform = DeviceType | 'web' | 'windows' | 'macos'; +export const deviceTypes: $ReadOnlyArray = values(deviceTypesObj); + export function isDeviceType(platform: ?string): boolean { return platform === 'ios' || platform === 'android'; } export function assertDeviceType(deviceType: ?string): DeviceType { invariant( deviceType === 'ios' || deviceType === 'android', 'string is not DeviceType enum', ); return deviceType; } export function isWebPlatform(platform: ?string): boolean { return platform === 'web' || platform === 'windows' || platform === 'macos'; } export type DeviceTokenUpdateRequest = { +deviceToken: string, +deviceType?: DeviceType, +platformDetails?: PlatformDetails, }; export type PlatformDetails = { +platform: Platform, +codeVersion?: number, +stateVersion?: number, };