Skip to content

Commit ffeba30

Browse files
Abbondanzometa-codesync[bot]
authored andcommitted
Move sample TurboModule spec to RNTester
Summary: Move `NativeSampleTurboModule` into RNTester so React Native core codegen no longer treats the sample as public API. Retarget the sample native implementations to RNTester's generated `AppSpecs` on Android, iOS, and macOS. Changelog: [General][Removed] - Remove the sample TurboModule from React Native's public API Differential Revision: D121032097
1 parent 168a0d7 commit ffeba30

12 files changed

Lines changed: 31 additions & 461 deletions

File tree

‎packages/react-native/Libraries/TurboModule/samples/NativeSampleTurboModule.js‎

Lines changed: 0 additions & 14 deletions
This file was deleted.

‎packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Pod::Spec.new do |s|
5454
s.dependency "React-cxxreact"
5555
s.dependency "React-jsi"
5656
s.dependency "RCTTypeSafety"
57-
add_dependency(s, "React-RCTFBReactNativeSpec")
57+
s.dependency "ReactCodegen"
5858
add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"])
5959
add_dependency(s, "React-NativeModulesApple")
6060

‎packages/react-native/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
#import <Foundation/Foundation.h>
99

10-
#import <FBReactNativeSpec/FBReactNativeSpec.h>
10+
#if __has_include(<ReactCodegen/AppSpecs.h>)
11+
#import <ReactCodegen/AppSpecs.h>
12+
#else
13+
#import <AppSpecs/AppSpecs.h>
14+
#endif
1115

1216
/**
1317
* Sample iOS-specific impl of a TurboModule, conforming to the spec protocol.

‎packages/rn-tester/js/examples/ContentURLAndroid/ContentURLAndroid.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const ContentSelector = (): React.Node => {
4646
const imageSelector = useCallback(async () => {
4747
try {
4848
const NativeSampleTurboModule =
49-
require('react-native/Libraries/TurboModule/samples/NativeSampleTurboModule').default;
49+
require('../TurboModule/NativeSampleTurboModule').default;
5050
const uri = await NativeSampleTurboModule.getImageUrl?.();
5151
if (uri != null) {
5252
console.log({uri});

packages/react-native/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js renamed to packages/rn-tester/js/examples/TurboModule/NativeSampleTurboModule.js

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,9 @@
88
* @format
99
*/
1010

11-
import type {
12-
RootTag,
13-
TurboModule,
14-
} from '../../../../Libraries/TurboModule/RCTExport';
15-
import type {
16-
EventEmitter,
17-
UnsafeObject,
18-
} from '../../../../Libraries/Types/CodegenTypes';
11+
import type {CodegenTypes, RootTag, TurboModule} from 'react-native';
1912

20-
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
13+
import {TurboModuleRegistry} from 'react-native';
2114

2215
export enum EnumInt {
2316
A = 23,
@@ -31,10 +24,10 @@ export type ObjectStruct = {
3124
};
3225

3326
export interface Spec extends TurboModule {
34-
readonly onPress: EventEmitter<void>;
35-
readonly onClick: EventEmitter<string>;
36-
readonly onChange: EventEmitter<ObjectStruct>;
37-
readonly onSubmit: EventEmitter<ObjectStruct[]>;
27+
readonly onPress: CodegenTypes.EventEmitter<void>;
28+
readonly onClick: CodegenTypes.EventEmitter<string>;
29+
readonly onChange: CodegenTypes.EventEmitter<ObjectStruct>;
30+
readonly onSubmit: CodegenTypes.EventEmitter<ObjectStruct[]>;
3831
// Exported methods.
3932
readonly getConstants: () => {
4033
const1: boolean,
@@ -47,20 +40,32 @@ export interface Spec extends TurboModule {
4740
readonly getNumber: (arg: number) => number;
4841
readonly getString: (arg: string) => string;
4942
readonly getArray: (arg: Array<unknown>) => Array<unknown>;
50-
readonly getObject: (arg: UnsafeObject) => UnsafeObject;
51-
readonly getUnsafeObject: (arg: UnsafeObject) => UnsafeObject;
43+
readonly getObject: (
44+
arg: CodegenTypes.UnsafeObject,
45+
) => CodegenTypes.UnsafeObject;
46+
readonly getUnsafeObject: (
47+
arg: CodegenTypes.UnsafeObject,
48+
) => CodegenTypes.UnsafeObject;
5249
readonly getRootTag: (arg: RootTag) => RootTag;
53-
readonly getValue: (x: number, y: string, z: UnsafeObject) => UnsafeObject;
50+
readonly getValue: (
51+
x: number,
52+
y: string,
53+
z: CodegenTypes.UnsafeObject,
54+
) => CodegenTypes.UnsafeObject;
5455
readonly getArrayBuffer: (buffer: ArrayBuffer) => ArrayBuffer;
5556
readonly createNativeBuffer: (size: number) => ArrayBuffer;
5657
readonly processAsyncBuffer: (payload: ArrayBuffer) => Promise<number>;
5758
readonly getValueWithCallback: (callback: (value: string) => void) => void;
5859
readonly getValueWithPromise: (error: boolean) => Promise<string>;
5960
readonly voidFuncThrows?: () => void;
60-
readonly getObjectThrows?: (arg: UnsafeObject) => UnsafeObject;
61+
readonly getObjectThrows?: (
62+
arg: CodegenTypes.UnsafeObject,
63+
) => CodegenTypes.UnsafeObject;
6164
readonly promiseThrows?: () => Promise<void>;
6265
readonly voidFuncAssert?: () => void;
63-
readonly getObjectAssert?: (arg: UnsafeObject) => UnsafeObject;
66+
readonly getObjectAssert?: (
67+
arg: CodegenTypes.UnsafeObject,
68+
) => CodegenTypes.UnsafeObject;
6469
readonly promiseAssert?: () => Promise<void>;
6570

6671
// Android-only

‎packages/rn-tester/js/examples/TurboModule/SampleTurboModuleExample.js‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@
1111
import type {EventSubscription, RootTag} from 'react-native';
1212

1313
import RNTesterText from '../../components/RNTesterText';
14+
import NativeSampleTurboModule, {EnumInt} from './NativeSampleTurboModule';
1415
import styles from './TurboModuleExampleCommon';
1516
import * as React from 'react';
1617
import {FlatList, RootTagContext, TouchableOpacity, View} from 'react-native';
17-
import NativeSampleTurboModule, {
18-
EnumInt,
19-
} from 'react-native/Libraries/TurboModule/samples/NativeSampleTurboModule';
2018

2119
type State = {
2220
testResults: {

‎scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api‎

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3912,10 +3912,6 @@ class facebook::react::NativeResizeObserver : public facebook::react::NativeResi
39123912
public void unobserve(facebook::jsi::Runtime& runtime, facebook::react::ResizeObserverObserverId resizeObserverId, facebook::jsi::Object targetToken);
39133913
}
39143914

3915-
class facebook::react::NativeSampleTurboModuleSpecJSI : public facebook::react::JavaTurboModule {
3916-
public NativeSampleTurboModuleSpecJSI(const facebook::react::JavaTurboModule::InitParams& params);
3917-
}
3918-
39193915
class facebook::react::NativeSegmentFetcherSpecJSI : public facebook::react::JavaTurboModule {
39203916
public NativeSegmentFetcherSpecJSI(const facebook::react::JavaTurboModule::InitParams& params);
39213917
}
@@ -6408,11 +6404,6 @@ enum facebook::react::ModalHostViewSupportedOrientations : facebook::react::Moda
64086404
PortraitUpsideDown,
64096405
}
64106406

6411-
enum facebook::react::NativeSampleTurboModuleEnumInt {
6412-
A,
6413-
B,
6414-
}
6415-
64166407
enum facebook::react::NullValueStrategy {
64176408
Ignore,
64186409
Override,
@@ -8724,14 +8715,6 @@ struct facebook::react::NativeResizeObserverNativeResizeObserverObserveOptions {
87248715
public bool operator==(const facebook::react::NativeResizeObserverNativeResizeObserverObserveOptions& other) const;
87258716
}
87268717

8727-
template <typename P0, typename P1, typename P2>
8728-
struct facebook::react::NativeSampleTurboModuleObjectStruct {
8729-
public P0 a;
8730-
public P1 b;
8731-
public P2 c;
8732-
public bool operator==(const facebook::react::NativeSampleTurboModuleObjectStruct& other) const;
8733-
}
8734-
87358718
template <typename P0, typename P1>
87368719
struct facebook::react::NativeAnimatedModuleEventMapping {
87378720
public P0 nativeEventPath;
@@ -9158,19 +9141,6 @@ class facebook::react::NativeResizeObserverCxxSpec : public facebook::react::Tur
91589141
public static constexpr std::string_view kModuleName;
91599142
}
91609143

9161-
template <typename T>
9162-
class facebook::react::NativeSampleTurboModuleCxxSpec : public facebook::react::TurboModule {
9163-
protected NativeSampleTurboModuleCxxSpec(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
9164-
protected void emitOnPress();
9165-
public static constexpr std::string_view kModuleName;
9166-
template <typename OnChangeType>
9167-
protected void emitOnChange(OnChangeType value);
9168-
template <typename OnClickType>
9169-
protected void emitOnClick(OnClickType value);
9170-
template <typename OnSubmitType>
9171-
protected void emitOnSubmit(std::vector<OnSubmitType> value);
9172-
}
9173-
91749144
template <typename T>
91759145
class facebook::react::NativeSegmentFetcherCxxSpec : public facebook::react::TurboModule {
91769146
protected NativeSegmentFetcherCxxSpec(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
@@ -9652,16 +9622,6 @@ struct facebook::react::NativeResizeObserverNativeResizeObserverObserveOptionsBr
96529622
public static std::optional<facebook::jsi::String> boxToJs(facebook::jsi::Runtime& rt, decltype(types.box) value);
96539623
}
96549624

9655-
template <typename T>
9656-
struct facebook::react::NativeSampleTurboModuleObjectStructBridging {
9657-
public static T fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
9658-
public static T types;
9659-
public static double aToJs(facebook::jsi::Runtime& rt, decltype(types.a) value);
9660-
public static facebook::jsi::Object toJs(facebook::jsi::Runtime& rt, const T& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
9661-
public static facebook::jsi::String bToJs(facebook::jsi::Runtime& rt, decltype(types.b) value);
9662-
public static std::optional<facebook::jsi::String> cToJs(facebook::jsi::Runtime& rt, decltype(types.c) value);
9663-
}
9664-
96659625
template <typename T>
96669626
struct facebook::react::NativeSourceCodeSourceCodeConstantsBridging {
96679627
public static T fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
@@ -9890,11 +9850,6 @@ struct facebook::react::Bridging<facebook::react::NativeReloadAndProfileConfig>
98909850
struct facebook::react::Bridging<facebook::react::NativeRequestIdleCallbackOptions> : public facebook::react::NativeIdleCallbacksRequestIdleCallbackOptionsBridging<facebook::react::NativeRequestIdleCallbackOptions> {
98919851
}
98929852

9893-
struct facebook::react::Bridging<facebook::react::NativeSampleTurboModuleEnumInt> {
9894-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::NativeSampleTurboModuleEnumInt value);
9895-
public static facebook::react::NativeSampleTurboModuleEnumInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& rawValue);
9896-
}
9897-
98989853
struct facebook::react::Bridging<facebook::react::PerformanceEntryType> {
98999854
public static facebook::react::PerformanceEntryType fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value& value);
99009855
public static int toJs(facebook::jsi::Runtime&, const facebook::react::PerformanceEntryType& value);

‎scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api‎

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3786,10 +3786,6 @@ class facebook::react::NativeResizeObserver : public facebook::react::NativeResi
37863786
public void unobserve(facebook::jsi::Runtime& runtime, facebook::react::ResizeObserverObserverId resizeObserverId, facebook::jsi::Object targetToken);
37873787
}
37883788

3789-
class facebook::react::NativeSampleTurboModuleSpecJSI : public facebook::react::JavaTurboModule {
3790-
public NativeSampleTurboModuleSpecJSI(const facebook::react::JavaTurboModule::InitParams& params);
3791-
}
3792-
37933789
class facebook::react::NativeSegmentFetcherSpecJSI : public facebook::react::JavaTurboModule {
37943790
public NativeSegmentFetcherSpecJSI(const facebook::react::JavaTurboModule::InitParams& params);
37953791
}
@@ -6218,11 +6214,6 @@ enum facebook::react::ModalHostViewSupportedOrientations : facebook::react::Moda
62186214
PortraitUpsideDown,
62196215
}
62206216

6221-
enum facebook::react::NativeSampleTurboModuleEnumInt {
6222-
A,
6223-
B,
6224-
}
6225-
62266217
enum facebook::react::NullValueStrategy {
62276218
Ignore,
62286219
Override,
@@ -8484,14 +8475,6 @@ struct facebook::react::NativeResizeObserverNativeResizeObserverObserveOptions {
84848475
public bool operator==(const facebook::react::NativeResizeObserverNativeResizeObserverObserveOptions& other) const;
84858476
}
84868477

8487-
template <typename P0, typename P1, typename P2>
8488-
struct facebook::react::NativeSampleTurboModuleObjectStruct {
8489-
public P0 a;
8490-
public P1 b;
8491-
public P2 c;
8492-
public bool operator==(const facebook::react::NativeSampleTurboModuleObjectStruct& other) const;
8493-
}
8494-
84958478
template <typename P0, typename P1>
84968479
struct facebook::react::NativeAnimatedModuleEventMapping {
84978480
public P0 nativeEventPath;
@@ -8918,19 +8901,6 @@ class facebook::react::NativeResizeObserverCxxSpec : public facebook::react::Tur
89188901
public static constexpr std::string_view kModuleName;
89198902
}
89208903

8921-
template <typename T>
8922-
class facebook::react::NativeSampleTurboModuleCxxSpec : public facebook::react::TurboModule {
8923-
protected NativeSampleTurboModuleCxxSpec(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
8924-
protected void emitOnPress();
8925-
public static constexpr std::string_view kModuleName;
8926-
template <typename OnChangeType>
8927-
protected void emitOnChange(OnChangeType value);
8928-
template <typename OnClickType>
8929-
protected void emitOnClick(OnClickType value);
8930-
template <typename OnSubmitType>
8931-
protected void emitOnSubmit(std::vector<OnSubmitType> value);
8932-
}
8933-
89348904
template <typename T>
89358905
class facebook::react::NativeSegmentFetcherCxxSpec : public facebook::react::TurboModule {
89368906
protected NativeSegmentFetcherCxxSpec(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
@@ -9269,13 +9239,6 @@ struct facebook::react::NativeResizeObserverNativeResizeObserverObserveOptionsBr
92699239
public static facebook::jsi::Object toJs(facebook::jsi::Runtime& rt, const T& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
92709240
}
92719241

9272-
template <typename T>
9273-
struct facebook::react::NativeSampleTurboModuleObjectStructBridging {
9274-
public static T fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
9275-
public static T types;
9276-
public static facebook::jsi::Object toJs(facebook::jsi::Runtime& rt, const T& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
9277-
}
9278-
92799242
template <typename T>
92809243
struct facebook::react::NativeSourceCodeSourceCodeConstantsBridging {
92819244
public static T fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
@@ -9503,11 +9466,6 @@ struct facebook::react::Bridging<facebook::react::NativeReloadAndProfileConfig>
95039466
struct facebook::react::Bridging<facebook::react::NativeRequestIdleCallbackOptions> : public facebook::react::NativeIdleCallbacksRequestIdleCallbackOptionsBridging<facebook::react::NativeRequestIdleCallbackOptions> {
95049467
}
95059468

9506-
struct facebook::react::Bridging<facebook::react::NativeSampleTurboModuleEnumInt> {
9507-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::NativeSampleTurboModuleEnumInt value);
9508-
public static facebook::react::NativeSampleTurboModuleEnumInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& rawValue);
9509-
}
9510-
95119469
struct facebook::react::Bridging<facebook::react::PerformanceEntryType> {
95129470
public static facebook::react::PerformanceEntryType fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value& value);
95139471
public static int toJs(facebook::jsi::Runtime&, const facebook::react::PerformanceEntryType& value);

‎scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api‎

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3909,10 +3909,6 @@ class facebook::react::NativeResizeObserver : public facebook::react::NativeResi
39093909
public void unobserve(facebook::jsi::Runtime& runtime, facebook::react::ResizeObserverObserverId resizeObserverId, facebook::jsi::Object targetToken);
39103910
}
39113911

3912-
class facebook::react::NativeSampleTurboModuleSpecJSI : public facebook::react::JavaTurboModule {
3913-
public NativeSampleTurboModuleSpecJSI(const facebook::react::JavaTurboModule::InitParams& params);
3914-
}
3915-
39163912
class facebook::react::NativeSegmentFetcherSpecJSI : public facebook::react::JavaTurboModule {
39173913
public NativeSegmentFetcherSpecJSI(const facebook::react::JavaTurboModule::InitParams& params);
39183914
}
@@ -6399,11 +6395,6 @@ enum facebook::react::ModalHostViewSupportedOrientations : facebook::react::Moda
63996395
PortraitUpsideDown,
64006396
}
64016397

6402-
enum facebook::react::NativeSampleTurboModuleEnumInt {
6403-
A,
6404-
B,
6405-
}
6406-
64076398
enum facebook::react::NullValueStrategy {
64086399
Ignore,
64096400
Override,
@@ -8715,14 +8706,6 @@ struct facebook::react::NativeResizeObserverNativeResizeObserverObserveOptions {
87158706
public bool operator==(const facebook::react::NativeResizeObserverNativeResizeObserverObserveOptions& other) const;
87168707
}
87178708

8718-
template <typename P0, typename P1, typename P2>
8719-
struct facebook::react::NativeSampleTurboModuleObjectStruct {
8720-
public P0 a;
8721-
public P1 b;
8722-
public P2 c;
8723-
public bool operator==(const facebook::react::NativeSampleTurboModuleObjectStruct& other) const;
8724-
}
8725-
87268709
template <typename P0, typename P1>
87278710
struct facebook::react::NativeAnimatedModuleEventMapping {
87288711
public P0 nativeEventPath;
@@ -9149,19 +9132,6 @@ class facebook::react::NativeResizeObserverCxxSpec : public facebook::react::Tur
91499132
public static constexpr std::string_view kModuleName;
91509133
}
91519134

9152-
template <typename T>
9153-
class facebook::react::NativeSampleTurboModuleCxxSpec : public facebook::react::TurboModule {
9154-
protected NativeSampleTurboModuleCxxSpec(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
9155-
protected void emitOnPress();
9156-
public static constexpr std::string_view kModuleName;
9157-
template <typename OnChangeType>
9158-
protected void emitOnChange(OnChangeType value);
9159-
template <typename OnClickType>
9160-
protected void emitOnClick(OnClickType value);
9161-
template <typename OnSubmitType>
9162-
protected void emitOnSubmit(std::vector<OnSubmitType> value);
9163-
}
9164-
91659135
template <typename T>
91669136
class facebook::react::NativeSegmentFetcherCxxSpec : public facebook::react::TurboModule {
91679137
protected NativeSegmentFetcherCxxSpec(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
@@ -9500,13 +9470,6 @@ struct facebook::react::NativeResizeObserverNativeResizeObserverObserveOptionsBr
95009470
public static facebook::jsi::Object toJs(facebook::jsi::Runtime& rt, const T& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
95019471
}
95029472

9503-
template <typename T>
9504-
struct facebook::react::NativeSampleTurboModuleObjectStructBridging {
9505-
public static T fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
9506-
public static T types;
9507-
public static facebook::jsi::Object toJs(facebook::jsi::Runtime& rt, const T& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
9508-
}
9509-
95109473
template <typename T>
95119474
struct facebook::react::NativeSourceCodeSourceCodeConstantsBridging {
95129475
public static T fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value, const std::shared_ptr<facebook::react::CallInvoker>& jsInvoker);
@@ -9734,11 +9697,6 @@ struct facebook::react::Bridging<facebook::react::NativeReloadAndProfileConfig>
97349697
struct facebook::react::Bridging<facebook::react::NativeRequestIdleCallbackOptions> : public facebook::react::NativeIdleCallbacksRequestIdleCallbackOptionsBridging<facebook::react::NativeRequestIdleCallbackOptions> {
97359698
}
97369699

9737-
struct facebook::react::Bridging<facebook::react::NativeSampleTurboModuleEnumInt> {
9738-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::NativeSampleTurboModuleEnumInt value);
9739-
public static facebook::react::NativeSampleTurboModuleEnumInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& rawValue);
9740-
}
9741-
97429700
struct facebook::react::Bridging<facebook::react::PerformanceEntryType> {
97439701
public static facebook::react::PerformanceEntryType fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value& value);
97449702
public static int toJs(facebook::jsi::Runtime&, const facebook::react::PerformanceEntryType& value);

0 commit comments

Comments
 (0)