mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix "Platform.constants.reactNativeVersion.prerelease" Flow and TypeScript types (#45256)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45256 The actual stamped versions here are all strings. Android interface for constants is untyped, and we always return a string here. iOS, we will try to parse the string into a double, which will fail for every prerelease version RN has ever published. Platform on Windows seems to uniquely be doing the right thing. Changelog: [General][Fixed] - Fix Platform.constants.reactNativeVersion type Reviewed By: robhogan, necolas Differential Revision: D59141948 fbshipit-source-id: 9c758e5eb8796b03197258d87ec06b31018e211c
This commit is contained in:
committed by
Facebook GitHub Bot
parent
2939dfc208
commit
95d9cdf228
@@ -31,7 +31,7 @@ const Platform: PlatformType = {
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
Version: number,
|
||||
Release: string,
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ type PlatformConstants = {
|
||||
major: number;
|
||||
minor: number;
|
||||
patch: number;
|
||||
prerelease?: number | null | undefined;
|
||||
prerelease?: string | null | undefined;
|
||||
};
|
||||
};
|
||||
interface PlatformStatic {
|
||||
|
||||
@@ -32,7 +32,7 @@ type IOSPlatform = {
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
systemName: string,
|
||||
isMacCatalyst?: boolean,
|
||||
@@ -65,7 +65,7 @@ type AndroidPlatform = {
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
Version: number,
|
||||
Release: string,
|
||||
|
||||
@@ -34,7 +34,7 @@ const Platform: PlatformType = {
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
systemName: string,
|
||||
isMacCatalyst?: boolean,
|
||||
|
||||
@@ -8741,7 +8741,7 @@ type IOSPlatform = {
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
systemName: string,
|
||||
isMacCatalyst?: boolean,
|
||||
@@ -8765,7 +8765,7 @@ type AndroidPlatform = {
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
Version: number,
|
||||
Release: string,
|
||||
|
||||
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
||||
RCTVersionMajor: @(1000),
|
||||
RCTVersionMinor: @(0),
|
||||
RCTVersionPatch: @(0),
|
||||
RCTVersionPrerelease: [NSNull null],
|
||||
RCTVersionPrerelease: @"alpha.0",
|
||||
};
|
||||
});
|
||||
return __rnVersion;
|
||||
|
||||
@@ -78,9 +78,7 @@ RCT_EXPORT_MODULE(PlatformConstants)
|
||||
{.minor = [versions[@"minor"] doubleValue],
|
||||
.major = [versions[@"major"] doubleValue],
|
||||
.patch = [versions[@"patch"] doubleValue],
|
||||
.prerelease = [versions[@"prerelease"] isKindOfClass:[NSNull class]]
|
||||
? std::optional<double>{}
|
||||
: [versions[@"prerelease"] doubleValue]}),
|
||||
.prerelease = [versions[@"prerelease"] isKindOfClass:[NSNull class]] ? nullptr : versions[@"prerelease"]}),
|
||||
#if TARGET_OS_MACCATALYST
|
||||
.isMacCatalyst = true,
|
||||
#else
|
||||
|
||||
@@ -27,14 +27,13 @@
|
||||
metadata.appIdentifier = [[NSBundle mainBundle] bundleIdentifier];
|
||||
metadata.platform = RCTPlatformName;
|
||||
metadata.deviceName = [device name];
|
||||
metadata.reactNativeVersion =
|
||||
[NSString stringWithFormat:@"%i.%i.%i%@",
|
||||
[version[@"major"] intValue],
|
||||
[version[@"minor"] intValue],
|
||||
[version[@"patch"] intValue],
|
||||
[version[@"prerelease"] isKindOfClass:[NSNull class]]
|
||||
? @""
|
||||
: [@"-" stringByAppendingString:[version[@"prerelease"] stringValue]]];
|
||||
metadata.reactNativeVersion = [NSString stringWithFormat:@"%i.%i.%i%@",
|
||||
[version[@"major"] intValue],
|
||||
[version[@"minor"] intValue],
|
||||
[version[@"patch"] intValue],
|
||||
[version[@"prerelease"] isKindOfClass:[NSNull class]]
|
||||
? @""
|
||||
: [@"-" stringByAppendingString:version[@"prerelease"]]];
|
||||
|
||||
return metadata;
|
||||
}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ export type ReactNativeVersionAndroid = {|
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|};
|
||||
|
||||
export type PlatformConstantsAndroid = {|
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ export type PlatformConstantsIOS = {|
|
||||
major: number,
|
||||
minor: number,
|
||||
patch: number,
|
||||
prerelease: ?number,
|
||||
prerelease: ?string,
|
||||
|},
|
||||
forceTouchAvailable: boolean,
|
||||
osVersion: string,
|
||||
|
||||
Reference in New Issue
Block a user