mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Remove folly import in GenerateModuleObjCpp
Summary: Changelog: [iOS][Changed] Replaced folly::Optional with std::optional from C++17 in Objc module generator. Reviewed By: philIip Differential Revision: D32367103 fbshipit-source-id: f0d254c4add7d6d2e0bdbceb09a852b4a01ea8c7
This commit is contained in:
committed by
Facebook GitHub Bot
parent
d9f8ac2bc0
commit
45e2941367
+12
-12
@@ -79,15 +79,15 @@ function toObjCType(
|
||||
): string {
|
||||
const [typeAnnotation, nullable] = unwrapNullable(nullableTypeAnnotation);
|
||||
const isRequired = !nullable && !isOptional;
|
||||
const wrapFollyOptional = (type: string) => {
|
||||
return isRequired ? type : `folly::Optional<${type}>`;
|
||||
const wrapOptional = (type: string) => {
|
||||
return isRequired ? type : `std::optional<${type}>`;
|
||||
};
|
||||
|
||||
switch (typeAnnotation.type) {
|
||||
case 'ReservedTypeAnnotation':
|
||||
switch (typeAnnotation.name) {
|
||||
case 'RootTag':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
default:
|
||||
(typeAnnotation.name: empty);
|
||||
throw new Error(`Unknown prop type, found: ${typeAnnotation.name}"`);
|
||||
@@ -95,15 +95,15 @@ function toObjCType(
|
||||
case 'StringTypeAnnotation':
|
||||
return 'NSString *';
|
||||
case 'NumberTypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'FloatTypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'Int32TypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'DoubleTypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'BooleanTypeAnnotation':
|
||||
return wrapFollyOptional('bool');
|
||||
return wrapOptional('bool');
|
||||
case 'GenericObjectTypeAnnotation':
|
||||
return isRequired ? 'id<NSObject> ' : 'id<NSObject> _Nullable ';
|
||||
case 'ArrayTypeAnnotation':
|
||||
@@ -111,7 +111,7 @@ function toObjCType(
|
||||
return isRequired ? 'id<NSObject> ' : 'id<NSObject> _Nullable ';
|
||||
}
|
||||
|
||||
return wrapFollyOptional(
|
||||
return wrapOptional(
|
||||
`std::vector<${toObjCType(
|
||||
hasteModuleName,
|
||||
typeAnnotation.elementType,
|
||||
@@ -123,7 +123,7 @@ function toObjCType(
|
||||
hasteModuleName,
|
||||
structName,
|
||||
);
|
||||
return wrapFollyOptional(`${namespacedStructName}::Builder`);
|
||||
return wrapOptional(`${namespacedStructName}::Builder`);
|
||||
default:
|
||||
(typeAnnotation.type: empty);
|
||||
throw new Error(
|
||||
@@ -144,7 +144,7 @@ function toObjCValue(
|
||||
|
||||
function wrapPrimitive(type: string) {
|
||||
return !isRequired
|
||||
? `${value}.hasValue() ? @((${type})${value}.value()) : nil`
|
||||
? `${value}.has_value() ? @((${type})${value}.value()) : nil`
|
||||
: `@(${value})`;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ function toObjCValue(
|
||||
);
|
||||
case 'TypeAliasTypeAnnotation':
|
||||
return !isRequired
|
||||
? `${value}.hasValue() ? ${value}.value().buildUnsafeRawValue() : nil`
|
||||
? `${value}.has_value() ? ${value}.value().buildUnsafeRawValue() : nil`
|
||||
: `${value}.buildUnsafeRawValue()`;
|
||||
default:
|
||||
(typeAnnotation.type: empty);
|
||||
|
||||
+11
-11
@@ -70,15 +70,15 @@ function toObjCType(
|
||||
): string {
|
||||
const [typeAnnotation, nullable] = unwrapNullable(nullableTypeAnnotation);
|
||||
const isRequired = !nullable && !isOptional;
|
||||
const wrapFollyOptional = (type: string) => {
|
||||
return isRequired ? type : `folly::Optional<${type}>`;
|
||||
const wrapOptional = (type: string) => {
|
||||
return isRequired ? type : `std::optional<${type}>`;
|
||||
};
|
||||
|
||||
switch (typeAnnotation.type) {
|
||||
case 'ReservedTypeAnnotation':
|
||||
switch (typeAnnotation.name) {
|
||||
case 'RootTag':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
default:
|
||||
(typeAnnotation.name: empty);
|
||||
throw new Error(`Unknown prop type, found: ${typeAnnotation.name}"`);
|
||||
@@ -86,22 +86,22 @@ function toObjCType(
|
||||
case 'StringTypeAnnotation':
|
||||
return 'NSString *';
|
||||
case 'NumberTypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'FloatTypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'Int32TypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'DoubleTypeAnnotation':
|
||||
return wrapFollyOptional('double');
|
||||
return wrapOptional('double');
|
||||
case 'BooleanTypeAnnotation':
|
||||
return wrapFollyOptional('bool');
|
||||
return wrapOptional('bool');
|
||||
case 'GenericObjectTypeAnnotation':
|
||||
return isRequired ? 'id<NSObject> ' : 'id<NSObject> _Nullable';
|
||||
case 'ArrayTypeAnnotation':
|
||||
if (typeAnnotation.elementType == null) {
|
||||
return isRequired ? 'id<NSObject> ' : 'id<NSObject> _Nullable';
|
||||
}
|
||||
return wrapFollyOptional(
|
||||
return wrapOptional(
|
||||
`facebook::react::LazyVector<${toObjCType(
|
||||
hasteModuleName,
|
||||
typeAnnotation.elementType,
|
||||
@@ -113,7 +113,7 @@ function toObjCType(
|
||||
hasteModuleName,
|
||||
structName,
|
||||
);
|
||||
return wrapFollyOptional(namespacedStructName);
|
||||
return wrapOptional(namespacedStructName);
|
||||
default:
|
||||
(typeAnnotation.type: empty);
|
||||
throw new Error(
|
||||
@@ -190,7 +190,7 @@ function toObjCValue(
|
||||
);
|
||||
|
||||
return !isRequired
|
||||
? `(${value} == nil ? folly::none : folly::make_optional(${namespacedStructName}(${value})))`
|
||||
? `(${value} == nil ? std::nullopt : std::make_optional(${namespacedStructName}(${value})))`
|
||||
: `${namespacedStructName}(${value})`;
|
||||
default:
|
||||
(typeAnnotation.type: empty);
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ const HeaderFileTemplate = ({
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
` +
|
||||
|
||||
+35
-35
@@ -26,7 +26,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
namespace JS {
|
||||
@@ -134,11 +134,11 @@ namespace JS {
|
||||
namespace JS {
|
||||
namespace NativeSampleTurboModule {
|
||||
struct SpecOptionalsA {
|
||||
folly::Optional<double> optionalNumberProperty() const;
|
||||
folly::Optional<facebook::react::LazyVector<double>> optionalArrayProperty() const;
|
||||
folly::Optional<JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty> optionalObjectProperty() const;
|
||||
std::optional<double> optionalNumberProperty() const;
|
||||
std::optional<facebook::react::LazyVector<double>> optionalArrayProperty() const;
|
||||
std::optional<JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty> optionalObjectProperty() const;
|
||||
id<NSObject> _Nullable optionalGenericObjectProperty() const;
|
||||
folly::Optional<bool> optionalBooleanTypeProperty() const;
|
||||
std::optional<bool> optionalBooleanTypeProperty() const;
|
||||
|
||||
SpecOptionalsA(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
@@ -169,9 +169,9 @@ namespace JS {
|
||||
namespace NativeSampleTurboModule {
|
||||
struct SpecGetArraysOptions {
|
||||
facebook::react::LazyVector<double> arrayOfNumbers() const;
|
||||
folly::Optional<facebook::react::LazyVector<double>> optionalArrayOfNumbers() const;
|
||||
std::optional<facebook::react::LazyVector<double>> optionalArrayOfNumbers() const;
|
||||
facebook::react::LazyVector<NSString *> arrayOfStrings() const;
|
||||
folly::Optional<facebook::react::LazyVector<NSString *>> optionalArrayOfStrings() const;
|
||||
std::optional<facebook::react::LazyVector<NSString *>> optionalArrayOfStrings() const;
|
||||
facebook::react::LazyVector<JS::NativeSampleTurboModule::SpecGetArraysOptionsArrayOfObjectsElement> arrayOfObjects() const;
|
||||
|
||||
SpecGetArraysOptions(NSDictionary *const v) : _v(v) {}
|
||||
@@ -250,27 +250,27 @@ inline double JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty:
|
||||
id const p = _v[@\\"y\\"];
|
||||
return RCTBridgingToDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeSampleTurboModule::SpecOptionalsA::optionalNumberProperty() const
|
||||
inline std::optional<double> JS::NativeSampleTurboModule::SpecOptionalsA::optionalNumberProperty() const
|
||||
{
|
||||
id const p = _v[@\\"optionalNumberProperty\\"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<facebook::react::LazyVector<double>> JS::NativeSampleTurboModule::SpecOptionalsA::optionalArrayProperty() const
|
||||
inline std::optional<facebook::react::LazyVector<double>> JS::NativeSampleTurboModule::SpecOptionalsA::optionalArrayProperty() const
|
||||
{
|
||||
id const p = _v[@\\"optionalArrayProperty\\"];
|
||||
return RCTBridgingToOptionalVec(p, ^double(id itemValue_0) { return RCTBridgingToDouble(itemValue_0); });
|
||||
}
|
||||
inline folly::Optional<JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty> JS::NativeSampleTurboModule::SpecOptionalsA::optionalObjectProperty() const
|
||||
inline std::optional<JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty> JS::NativeSampleTurboModule::SpecOptionalsA::optionalObjectProperty() const
|
||||
{
|
||||
id const p = _v[@\\"optionalObjectProperty\\"];
|
||||
return (p == nil ? folly::none : folly::make_optional(JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty(p)));
|
||||
return (p == nil ? std::nullopt : std::make_optional(JS::NativeSampleTurboModule::SpecOptionalsAOptionalObjectProperty(p)));
|
||||
}
|
||||
inline id<NSObject> _Nullable JS::NativeSampleTurboModule::SpecOptionalsA::optionalGenericObjectProperty() const
|
||||
{
|
||||
id const p = _v[@\\"optionalGenericObjectProperty\\"];
|
||||
return p;
|
||||
}
|
||||
inline folly::Optional<bool> JS::NativeSampleTurboModule::SpecOptionalsA::optionalBooleanTypeProperty() const
|
||||
inline std::optional<bool> JS::NativeSampleTurboModule::SpecOptionalsA::optionalBooleanTypeProperty() const
|
||||
{
|
||||
id const p = _v[@\\"optionalBooleanTypeProperty\\"];
|
||||
return RCTBridgingToOptionalBool(p);
|
||||
@@ -285,7 +285,7 @@ inline facebook::react::LazyVector<double> JS::NativeSampleTurboModule::SpecGetA
|
||||
id const p = _v[@\\"arrayOfNumbers\\"];
|
||||
return RCTBridgingToVec(p, ^double(id itemValue_0) { return RCTBridgingToDouble(itemValue_0); });
|
||||
}
|
||||
inline folly::Optional<facebook::react::LazyVector<double>> JS::NativeSampleTurboModule::SpecGetArraysOptions::optionalArrayOfNumbers() const
|
||||
inline std::optional<facebook::react::LazyVector<double>> JS::NativeSampleTurboModule::SpecGetArraysOptions::optionalArrayOfNumbers() const
|
||||
{
|
||||
id const p = _v[@\\"optionalArrayOfNumbers\\"];
|
||||
return RCTBridgingToOptionalVec(p, ^double(id itemValue_0) { return RCTBridgingToDouble(itemValue_0); });
|
||||
@@ -295,7 +295,7 @@ inline facebook::react::LazyVector<NSString *> JS::NativeSampleTurboModule::Spec
|
||||
id const p = _v[@\\"arrayOfStrings\\"];
|
||||
return RCTBridgingToVec(p, ^NSString *(id itemValue_0) { return RCTBridgingToString(itemValue_0); });
|
||||
}
|
||||
inline folly::Optional<facebook::react::LazyVector<NSString *>> JS::NativeSampleTurboModule::SpecGetArraysOptions::optionalArrayOfStrings() const
|
||||
inline std::optional<facebook::react::LazyVector<NSString *>> JS::NativeSampleTurboModule::SpecGetArraysOptions::optionalArrayOfStrings() const
|
||||
{
|
||||
id const p = _v[@\\"optionalArrayOfStrings\\"];
|
||||
return RCTBridgingToOptionalVec(p, ^NSString *(id itemValue_0) { return RCTBridgingToString(itemValue_0); });
|
||||
@@ -335,7 +335,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
|
||||
@@ -386,7 +386,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
namespace JS {
|
||||
@@ -442,9 +442,9 @@ namespace JS {
|
||||
struct Options {
|
||||
JS::AliasTurboModule::OptionsOffset offset() const;
|
||||
JS::AliasTurboModule::OptionsSize size() const;
|
||||
folly::Optional<JS::AliasTurboModule::OptionsDisplaySize> displaySize() const;
|
||||
std::optional<JS::AliasTurboModule::OptionsDisplaySize> displaySize() const;
|
||||
NSString *resizeMode() const;
|
||||
folly::Optional<bool> allowExternalStorage() const;
|
||||
std::optional<bool> allowExternalStorage() const;
|
||||
|
||||
Options(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
@@ -512,17 +512,17 @@ inline JS::AliasTurboModule::OptionsSize JS::AliasTurboModule::Options::size() c
|
||||
id const p = _v[@\\"size\\"];
|
||||
return JS::AliasTurboModule::OptionsSize(p);
|
||||
}
|
||||
inline folly::Optional<JS::AliasTurboModule::OptionsDisplaySize> JS::AliasTurboModule::Options::displaySize() const
|
||||
inline std::optional<JS::AliasTurboModule::OptionsDisplaySize> JS::AliasTurboModule::Options::displaySize() const
|
||||
{
|
||||
id const p = _v[@\\"displaySize\\"];
|
||||
return (p == nil ? folly::none : folly::make_optional(JS::AliasTurboModule::OptionsDisplaySize(p)));
|
||||
return (p == nil ? std::nullopt : std::make_optional(JS::AliasTurboModule::OptionsDisplaySize(p)));
|
||||
}
|
||||
inline NSString *JS::AliasTurboModule::Options::resizeMode() const
|
||||
{
|
||||
id const p = _v[@\\"resizeMode\\"];
|
||||
return RCTBridgingToOptionalString(p);
|
||||
}
|
||||
inline folly::Optional<bool> JS::AliasTurboModule::Options::allowExternalStorage() const
|
||||
inline std::optional<bool> JS::AliasTurboModule::Options::allowExternalStorage() const
|
||||
{
|
||||
id const p = _v[@\\"allowExternalStorage\\"];
|
||||
return RCTBridgingToOptionalBool(p);
|
||||
@@ -557,7 +557,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
namespace JS {
|
||||
@@ -568,8 +568,8 @@ namespace JS {
|
||||
NSString *groupName() const;
|
||||
NSString *groupTypes() const;
|
||||
NSString *assetType() const;
|
||||
folly::Optional<double> maxSize() const;
|
||||
folly::Optional<facebook::react::LazyVector<NSString *>> mimeTypes() const;
|
||||
std::optional<double> maxSize() const;
|
||||
std::optional<facebook::react::LazyVector<NSString *>> mimeTypes() const;
|
||||
|
||||
GetPhotosParams(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
@@ -609,11 +609,11 @@ namespace facebook {
|
||||
namespace JS {
|
||||
namespace NativeExceptionsManager {
|
||||
struct StackFrame {
|
||||
folly::Optional<double> column() const;
|
||||
std::optional<double> column() const;
|
||||
NSString *file() const;
|
||||
folly::Optional<double> lineNumber() const;
|
||||
std::optional<double> lineNumber() const;
|
||||
NSString *methodName() const;
|
||||
folly::Optional<bool> collapse() const;
|
||||
std::optional<bool> collapse() const;
|
||||
|
||||
StackFrame(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
@@ -732,17 +732,17 @@ inline NSString *JS::NativeCameraRollManager::GetPhotosParams::assetType() const
|
||||
id const p = _v[@\\"assetType\\"];
|
||||
return RCTBridgingToOptionalString(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeCameraRollManager::GetPhotosParams::maxSize() const
|
||||
inline std::optional<double> JS::NativeCameraRollManager::GetPhotosParams::maxSize() const
|
||||
{
|
||||
id const p = _v[@\\"maxSize\\"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<facebook::react::LazyVector<NSString *>> JS::NativeCameraRollManager::GetPhotosParams::mimeTypes() const
|
||||
inline std::optional<facebook::react::LazyVector<NSString *>> JS::NativeCameraRollManager::GetPhotosParams::mimeTypes() const
|
||||
{
|
||||
id const p = _v[@\\"mimeTypes\\"];
|
||||
return RCTBridgingToOptionalVec(p, ^NSString *(id itemValue_0) { return RCTBridgingToString(itemValue_0); });
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeExceptionsManager::StackFrame::column() const
|
||||
inline std::optional<double> JS::NativeExceptionsManager::StackFrame::column() const
|
||||
{
|
||||
id const p = _v[@\\"column\\"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
@@ -752,7 +752,7 @@ inline NSString *JS::NativeExceptionsManager::StackFrame::file() const
|
||||
id const p = _v[@\\"file\\"];
|
||||
return RCTBridgingToString(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeExceptionsManager::StackFrame::lineNumber() const
|
||||
inline std::optional<double> JS::NativeExceptionsManager::StackFrame::lineNumber() const
|
||||
{
|
||||
id const p = _v[@\\"lineNumber\\"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
@@ -762,7 +762,7 @@ inline NSString *JS::NativeExceptionsManager::StackFrame::methodName() const
|
||||
id const p = _v[@\\"methodName\\"];
|
||||
return RCTBridgingToString(p);
|
||||
}
|
||||
inline folly::Optional<bool> JS::NativeExceptionsManager::StackFrame::collapse() const
|
||||
inline std::optional<bool> JS::NativeExceptionsManager::StackFrame::collapse() const
|
||||
{
|
||||
id const p = _v[@\\"collapse\\"];
|
||||
return RCTBridgingToOptionalBool(p);
|
||||
@@ -847,7 +847,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
namespace JS {
|
||||
@@ -953,7 +953,7 @@ Map {
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <folly/Optional.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user