@react-native-firebase/perf 25.0.1 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/RNFBPerf.podspec +7 -6
  3. package/android/build.gradle +19 -0
  4. package/android/src/main/java/io/invertase/firebase/perf/UniversalFirebasePerfModule.java +88 -0
  5. package/android/src/reactnative/java/io/invertase/firebase/perf/NativeRNFBTurboPerf.java +108 -0
  6. package/android/src/reactnative/java/io/invertase/firebase/perf/ReactNativeFirebasePerfPackage.java +1 -1
  7. package/android/src/reactnative/java/io/invertase/firebase/perf/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboPerfSpec.java +100 -0
  8. package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/CMakeLists.txt +36 -0
  9. package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/RNFBPerfTurboModules-generated.cpp +80 -0
  10. package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/RNFBPerfTurboModules.h +31 -0
  11. package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/react/renderer/components/RNFBPerfTurboModules/RNFBPerfTurboModulesJSI-generated.cpp +94 -0
  12. package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/react/renderer/components/RNFBPerfTurboModules/RNFBPerfTurboModulesJSI.h +267 -0
  13. package/app.plugin.js +1 -1
  14. package/dist/module/HttpMetric.js +4 -4
  15. package/dist/module/HttpMetric.js.map +1 -1
  16. package/dist/module/ScreenTrace.js +5 -5
  17. package/dist/module/ScreenTrace.js.map +1 -1
  18. package/dist/module/Trace.js +4 -4
  19. package/dist/module/Trace.js.map +1 -1
  20. package/dist/module/index.js +142 -3
  21. package/dist/module/index.js.map +1 -1
  22. package/dist/module/version.js +1 -1
  23. package/dist/typescript/lib/HttpMetric.d.ts +2 -2
  24. package/dist/typescript/lib/HttpMetric.d.ts.map +1 -1
  25. package/dist/typescript/lib/ScreenTrace.d.ts +2 -2
  26. package/dist/typescript/lib/ScreenTrace.d.ts.map +1 -1
  27. package/dist/typescript/lib/Trace.d.ts +2 -2
  28. package/dist/typescript/lib/Trace.d.ts.map +1 -1
  29. package/dist/typescript/lib/index.d.ts +23 -4
  30. package/dist/typescript/lib/index.d.ts.map +1 -1
  31. package/dist/typescript/lib/types/internal.d.ts +12 -16
  32. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  33. package/dist/typescript/lib/types/perf.d.ts +7 -7
  34. package/dist/typescript/lib/types/perf.d.ts.map +1 -1
  35. package/dist/typescript/lib/version.d.ts +1 -1
  36. package/ios/RNFBPerf/RNFBPerfModule.h +3 -2
  37. package/ios/RNFBPerf/{RNFBPerfModule.m → RNFBPerfModule.mm} +56 -71
  38. package/ios/RNFBPerf.xcodeproj/project.pbxproj +8 -8
  39. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  40. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  41. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  42. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  43. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  44. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  45. package/ios/generated/RNFBPerfTurboModules/RNFBPerfTurboModules-generated.mm +106 -0
  46. package/ios/generated/RNFBPerfTurboModules/RNFBPerfTurboModules.h +191 -0
  47. package/ios/generated/RNFBPerfTurboModulesJSI-generated.cpp +94 -0
  48. package/ios/generated/RNFBPerfTurboModulesJSI.h +267 -0
  49. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  50. package/lib/HttpMetric.ts +6 -6
  51. package/lib/ScreenTrace.ts +7 -7
  52. package/lib/Trace.ts +6 -6
  53. package/lib/index.ts +228 -5
  54. package/lib/types/internal.ts +12 -24
  55. package/lib/types/perf.ts +7 -7
  56. package/lib/version.ts +1 -1
  57. package/package.json +30 -4
  58. package/plugin/build/app.plugin.d.ts +2 -0
  59. package/plugin/build/app.plugin.js +6 -0
  60. package/plugin/src/app.plugin.ts +3 -0
  61. package/plugin/tsconfig.tsbuildinfo +1 -1
  62. package/react-native.config.js +10 -0
  63. package/specs/NativeRNFBTurboPerf.ts +44 -0
  64. package/typedoc.json +1 -1
  65. package/android/src/reactnative/java/io/invertase/firebase/perf/ReactNativeFirebasePerfModule.java +0 -158
  66. package/dist/module/modular.js +0 -93
  67. package/dist/module/modular.js.map +0 -1
  68. package/dist/module/namespaced.js +0 -130
  69. package/dist/module/namespaced.js.map +0 -1
  70. package/dist/module/types/namespaced.js +0 -65
  71. package/dist/module/types/namespaced.js.map +0 -1
  72. package/dist/typescript/lib/modular.d.ts +0 -43
  73. package/dist/typescript/lib/modular.d.ts.map +0 -1
  74. package/dist/typescript/lib/namespaced.d.ts +0 -11
  75. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  76. package/dist/typescript/lib/types/namespaced.d.ts +0 -128
  77. package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
  78. package/lib/modular.ts +0 -116
  79. package/lib/namespaced.ts +0 -200
  80. package/lib/types/namespaced.ts +0 -162
@@ -0,0 +1,106 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleObjCpp
8
+ *
9
+ * We create an umbrella header (and corresponding implementation) here since
10
+ * Cxx compilation in BUCK has a limitation: source-code producing genrule()s
11
+ * must have a single output. More files => more genrule()s => slower builds.
12
+ */
13
+
14
+ #import "RNFBPerfTurboModules.h"
15
+
16
+
17
+ @implementation NativeRNFBTurboPerfSpecBase
18
+
19
+
20
+ - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
21
+ {
22
+ _eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
23
+ }
24
+ @end
25
+
26
+ @implementation RCTCxxConvert (NativeRNFBTurboPerf_TraceData)
27
+ + (RCTManagedPointer *)JS_NativeRNFBTurboPerf_TraceData:(id)json
28
+ {
29
+ return facebook::react::managedPointer<JS::NativeRNFBTurboPerf::TraceData>(json);
30
+ }
31
+ @end
32
+ @implementation RCTCxxConvert (NativeRNFBTurboPerf_HttpMetricData)
33
+ + (RCTManagedPointer *)JS_NativeRNFBTurboPerf_HttpMetricData:(id)json
34
+ {
35
+ return facebook::react::managedPointer<JS::NativeRNFBTurboPerf::HttpMetricData>(json);
36
+ }
37
+ @end
38
+ namespace facebook::react {
39
+
40
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_setPerformanceCollectionEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
41
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "setPerformanceCollectionEnabled", @selector(setPerformanceCollectionEnabled:resolve:reject:), args, count);
42
+ }
43
+
44
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_instrumentationEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
45
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "instrumentationEnabled", @selector(instrumentationEnabled:resolve:reject:), args, count);
46
+ }
47
+
48
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_startTrace(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
49
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "startTrace", @selector(startTrace:identifier:), args, count);
50
+ }
51
+
52
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_stopTrace(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
53
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "stopTrace", @selector(stopTrace:traceData:), args, count);
54
+ }
55
+
56
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_startScreenTrace(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
57
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "startScreenTrace", @selector(startScreenTrace:identifier:), args, count);
58
+ }
59
+
60
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_stopScreenTrace(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
61
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "stopScreenTrace", @selector(stopScreenTrace:), args, count);
62
+ }
63
+
64
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_startHttpMetric(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
65
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "startHttpMetric", @selector(startHttpMetric:url:httpMethod:), args, count);
66
+ }
67
+
68
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_stopHttpMetric(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
69
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "stopHttpMetric", @selector(stopHttpMetric:metricData:), args, count);
70
+ }
71
+
72
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboPerfSpecJSI_getConstants(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
73
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, ObjectKind, "getConstants", @selector(getConstants), args, count);
74
+ }
75
+
76
+ NativeRNFBTurboPerfSpecJSI::NativeRNFBTurboPerfSpecJSI(const ObjCTurboModule::InitParams &params)
77
+ : ObjCTurboModule(params) {
78
+
79
+ methodMap_["setPerformanceCollectionEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboPerfSpecJSI_setPerformanceCollectionEnabled};
80
+
81
+
82
+ methodMap_["instrumentationEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboPerfSpecJSI_instrumentationEnabled};
83
+
84
+
85
+ methodMap_["startTrace"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfSpecJSI_startTrace};
86
+
87
+
88
+ methodMap_["stopTrace"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfSpecJSI_stopTrace};
89
+ setMethodArgConversionSelector(@"stopTrace", 1, @"JS_NativeRNFBTurboPerf_TraceData:");
90
+
91
+ methodMap_["startScreenTrace"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfSpecJSI_startScreenTrace};
92
+
93
+
94
+ methodMap_["stopScreenTrace"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboPerfSpecJSI_stopScreenTrace};
95
+
96
+
97
+ methodMap_["startHttpMetric"] = MethodMetadata {3, __hostFunction_NativeRNFBTurboPerfSpecJSI_startHttpMetric};
98
+
99
+
100
+ methodMap_["stopHttpMetric"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfSpecJSI_stopHttpMetric};
101
+ setMethodArgConversionSelector(@"stopHttpMetric", 1, @"JS_NativeRNFBTurboPerf_HttpMetricData:");
102
+
103
+ methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboPerfSpecJSI_getConstants};
104
+
105
+ }
106
+ } // namespace facebook::react
@@ -0,0 +1,191 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleObjCpp
8
+ *
9
+ * We create an umbrella header (and corresponding implementation) here since
10
+ * Cxx compilation in BUCK has a limitation: source-code producing genrule()s
11
+ * must have a single output. More files => more genrule()s => slower builds.
12
+ */
13
+
14
+ #ifndef __cplusplus
15
+ #error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
16
+ #endif
17
+
18
+ // Avoid multiple includes of RNFBPerfTurboModules symbols
19
+ #ifndef RNFBPerfTurboModules_H
20
+ #define RNFBPerfTurboModules_H
21
+
22
+ #import <Foundation/Foundation.h>
23
+ #import <RCTRequired/RCTRequired.h>
24
+ #import <RCTTypeSafety/RCTConvertHelpers.h>
25
+ #import <RCTTypeSafety/RCTTypedModuleConstants.h>
26
+ #import <React/RCTBridgeModule.h>
27
+ #import <React/RCTCxxConvert.h>
28
+ #import <React/RCTManagedPointer.h>
29
+ #import <ReactCommon/RCTTurboModule.h>
30
+ #import <optional>
31
+ #import <vector>
32
+
33
+
34
+ NS_ASSUME_NONNULL_BEGIN
35
+ namespace JS {
36
+ namespace NativeRNFBTurboPerf {
37
+ struct TraceData {
38
+ id<NSObject> metrics() const;
39
+ id<NSObject> attributes() const;
40
+
41
+ TraceData(NSDictionary *const v) : _v(v) {}
42
+ private:
43
+ NSDictionary *_v;
44
+ };
45
+ }
46
+ }
47
+
48
+ @interface RCTCxxConvert (NativeRNFBTurboPerf_TraceData)
49
+ + (RCTManagedPointer *)JS_NativeRNFBTurboPerf_TraceData:(id)json;
50
+ @end
51
+ namespace JS {
52
+ namespace NativeRNFBTurboPerf {
53
+ struct HttpMetricData {
54
+ id<NSObject> attributes() const;
55
+ std::optional<double> httpResponseCode() const;
56
+ std::optional<double> requestPayloadSize() const;
57
+ std::optional<double> responsePayloadSize() const;
58
+ NSString *responseContentType() const;
59
+
60
+ HttpMetricData(NSDictionary *const v) : _v(v) {}
61
+ private:
62
+ NSDictionary *_v;
63
+ };
64
+ }
65
+ }
66
+
67
+ @interface RCTCxxConvert (NativeRNFBTurboPerf_HttpMetricData)
68
+ + (RCTManagedPointer *)JS_NativeRNFBTurboPerf_HttpMetricData:(id)json;
69
+ @end
70
+ namespace JS {
71
+ namespace NativeRNFBTurboPerf {
72
+ struct Constants {
73
+
74
+ struct Builder {
75
+ // Backwards compat for RCTTypedModuleConstants
76
+ using ResultT = Constants;
77
+
78
+ struct Input {
79
+ RCTRequired<bool> isPerformanceCollectionEnabled;
80
+ RCTRequired<bool> isInstrumentationEnabled;
81
+ };
82
+
83
+ /** Initialize with a set of values */
84
+ Builder(const Input i);
85
+ /** Initialize with an existing Constants */
86
+ Builder(Constants i);
87
+ /** Builds the object. Generally used only by the infrastructure. */
88
+ NSDictionary *buildUnsafeRawValue() const { return _factory(); };
89
+ private:
90
+ NSDictionary *(^_factory)(void);
91
+ };
92
+
93
+ static Constants fromUnsafeRawValue(NSDictionary *const v) { return {v}; }
94
+ NSDictionary *unsafeRawValue() const { return _v; }
95
+ private:
96
+ Constants(NSDictionary *const v) : _v(v) {}
97
+ NSDictionary *_v;
98
+ };
99
+ }
100
+ }
101
+ @protocol NativeRNFBTurboPerfSpec <RCTBridgeModule, RCTTurboModule>
102
+
103
+ - (void)setPerformanceCollectionEnabled:(BOOL)enabled
104
+ resolve:(RCTPromiseResolveBlock)resolve
105
+ reject:(RCTPromiseRejectBlock)reject;
106
+ - (void)instrumentationEnabled:(BOOL)enabled
107
+ resolve:(RCTPromiseResolveBlock)resolve
108
+ reject:(RCTPromiseRejectBlock)reject;
109
+ - (void)startTrace:(double)id
110
+ identifier:(NSString *)identifier;
111
+ - (void)stopTrace:(double)id
112
+ traceData:(JS::NativeRNFBTurboPerf::TraceData &)traceData;
113
+ - (void)startScreenTrace:(double)id
114
+ identifier:(NSString *)identifier;
115
+ - (void)stopScreenTrace:(double)id;
116
+ - (void)startHttpMetric:(double)id
117
+ url:(NSString *)url
118
+ httpMethod:(NSString *)httpMethod;
119
+ - (void)stopHttpMetric:(double)id
120
+ metricData:(JS::NativeRNFBTurboPerf::HttpMetricData &)metricData;
121
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboPerf::Constants::Builder>)constantsToExport;
122
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboPerf::Constants::Builder>)getConstants;
123
+
124
+ @end
125
+
126
+ @interface NativeRNFBTurboPerfSpecBase : NSObject {
127
+ @protected
128
+ facebook::react::EventEmitterCallback _eventEmitterCallback;
129
+ }
130
+ - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
131
+
132
+
133
+ @end
134
+
135
+ namespace facebook::react {
136
+ /**
137
+ * ObjC++ class for module 'NativeRNFBTurboPerf'
138
+ */
139
+ class JSI_EXPORT NativeRNFBTurboPerfSpecJSI : public ObjCTurboModule {
140
+ public:
141
+ NativeRNFBTurboPerfSpecJSI(const ObjCTurboModule::InitParams &params);
142
+ };
143
+ } // namespace facebook::react
144
+ inline id<NSObject> JS::NativeRNFBTurboPerf::TraceData::metrics() const
145
+ {
146
+ id const p = _v[@"metrics"];
147
+ return p;
148
+ }
149
+ inline id<NSObject> JS::NativeRNFBTurboPerf::TraceData::attributes() const
150
+ {
151
+ id const p = _v[@"attributes"];
152
+ return p;
153
+ }
154
+ inline id<NSObject> JS::NativeRNFBTurboPerf::HttpMetricData::attributes() const
155
+ {
156
+ id const p = _v[@"attributes"];
157
+ return p;
158
+ }
159
+ inline std::optional<double> JS::NativeRNFBTurboPerf::HttpMetricData::httpResponseCode() const
160
+ {
161
+ id const p = _v[@"httpResponseCode"];
162
+ return RCTBridgingToOptionalDouble(p);
163
+ }
164
+ inline std::optional<double> JS::NativeRNFBTurboPerf::HttpMetricData::requestPayloadSize() const
165
+ {
166
+ id const p = _v[@"requestPayloadSize"];
167
+ return RCTBridgingToOptionalDouble(p);
168
+ }
169
+ inline std::optional<double> JS::NativeRNFBTurboPerf::HttpMetricData::responsePayloadSize() const
170
+ {
171
+ id const p = _v[@"responsePayloadSize"];
172
+ return RCTBridgingToOptionalDouble(p);
173
+ }
174
+ inline NSString *JS::NativeRNFBTurboPerf::HttpMetricData::responseContentType() const
175
+ {
176
+ id const p = _v[@"responseContentType"];
177
+ return RCTBridgingToOptionalString(p);
178
+ }
179
+ inline JS::NativeRNFBTurboPerf::Constants::Builder::Builder(const Input i) : _factory(^{
180
+ NSMutableDictionary *d = [NSMutableDictionary new];
181
+ auto isPerformanceCollectionEnabled = i.isPerformanceCollectionEnabled.get();
182
+ d[@"isPerformanceCollectionEnabled"] = @(isPerformanceCollectionEnabled);
183
+ auto isInstrumentationEnabled = i.isInstrumentationEnabled.get();
184
+ d[@"isInstrumentationEnabled"] = @(isInstrumentationEnabled);
185
+ return d;
186
+ }) {}
187
+ inline JS::NativeRNFBTurboPerf::Constants::Builder::Builder(Constants i) : _factory(^{
188
+ return i.unsafeRawValue();
189
+ }) {}
190
+ NS_ASSUME_NONNULL_END
191
+ #endif // RNFBPerfTurboModules_H
@@ -0,0 +1,94 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleCpp.js
8
+ */
9
+
10
+ #include "RNFBPerfTurboModulesJSI.h"
11
+
12
+ namespace facebook::react {
13
+
14
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_getConstants(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
+ return static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->getConstants(
16
+ rt
17
+ );
18
+ }
19
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_setPerformanceCollectionEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
20
+ return static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->setPerformanceCollectionEnabled(
21
+ rt,
22
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
23
+ );
24
+ }
25
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_instrumentationEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
26
+ return static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->instrumentationEnabled(
27
+ rt,
28
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool()
29
+ );
30
+ }
31
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_startTrace(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
32
+ static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->startTrace(
33
+ rt,
34
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
35
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
36
+ );
37
+ return jsi::Value::undefined();
38
+ }
39
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_stopTrace(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
40
+ static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->stopTrace(
41
+ rt,
42
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
43
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
44
+ );
45
+ return jsi::Value::undefined();
46
+ }
47
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_startScreenTrace(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
48
+ static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->startScreenTrace(
49
+ rt,
50
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
51
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
52
+ );
53
+ return jsi::Value::undefined();
54
+ }
55
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_stopScreenTrace(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
56
+ static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->stopScreenTrace(
57
+ rt,
58
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
59
+ );
60
+ return jsi::Value::undefined();
61
+ }
62
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_startHttpMetric(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
63
+ static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->startHttpMetric(
64
+ rt,
65
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
66
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
67
+ count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asString(rt)
68
+ );
69
+ return jsi::Value::undefined();
70
+ }
71
+ static jsi::Value __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_stopHttpMetric(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
72
+ static_cast<NativeRNFBTurboPerfCxxSpecJSI *>(&turboModule)->stopHttpMetric(
73
+ rt,
74
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
75
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt)
76
+ );
77
+ return jsi::Value::undefined();
78
+ }
79
+
80
+ NativeRNFBTurboPerfCxxSpecJSI::NativeRNFBTurboPerfCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
81
+ : TurboModule("NativeRNFBTurboPerf", jsInvoker) {
82
+ methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_getConstants};
83
+ methodMap_["setPerformanceCollectionEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_setPerformanceCollectionEnabled};
84
+ methodMap_["instrumentationEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_instrumentationEnabled};
85
+ methodMap_["startTrace"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_startTrace};
86
+ methodMap_["stopTrace"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_stopTrace};
87
+ methodMap_["startScreenTrace"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_startScreenTrace};
88
+ methodMap_["stopScreenTrace"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_stopScreenTrace};
89
+ methodMap_["startHttpMetric"] = MethodMetadata {3, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_startHttpMetric};
90
+ methodMap_["stopHttpMetric"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboPerfCxxSpecJSI_stopHttpMetric};
91
+ }
92
+
93
+
94
+ } // namespace facebook::react
@@ -0,0 +1,267 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+
19
+ #pragma mark - NativeRNFBTurboPerfHttpMetricData
20
+
21
+ template <typename P0, typename P1, typename P2, typename P3, typename P4>
22
+ struct NativeRNFBTurboPerfHttpMetricData {
23
+ P0 attributes;
24
+ P1 httpResponseCode;
25
+ P2 requestPayloadSize;
26
+ P3 responsePayloadSize;
27
+ P4 responseContentType;
28
+ bool operator==(const NativeRNFBTurboPerfHttpMetricData &other) const {
29
+ return attributes == other.attributes && httpResponseCode == other.httpResponseCode && requestPayloadSize == other.requestPayloadSize && responsePayloadSize == other.responsePayloadSize && responseContentType == other.responseContentType;
30
+ }
31
+ };
32
+
33
+ template <typename T>
34
+ struct NativeRNFBTurboPerfHttpMetricDataBridging {
35
+ static T types;
36
+
37
+ static T fromJs(
38
+ jsi::Runtime &rt,
39
+ const jsi::Object &value,
40
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
41
+ T result{
42
+ bridging::fromJs<decltype(types.attributes)>(rt, value.getProperty(rt, "attributes"), jsInvoker),
43
+ bridging::fromJs<decltype(types.httpResponseCode)>(rt, value.getProperty(rt, "httpResponseCode"), jsInvoker),
44
+ bridging::fromJs<decltype(types.requestPayloadSize)>(rt, value.getProperty(rt, "requestPayloadSize"), jsInvoker),
45
+ bridging::fromJs<decltype(types.responsePayloadSize)>(rt, value.getProperty(rt, "responsePayloadSize"), jsInvoker),
46
+ bridging::fromJs<decltype(types.responseContentType)>(rt, value.getProperty(rt, "responseContentType"), jsInvoker)};
47
+ return result;
48
+ }
49
+
50
+ #ifdef DEBUG
51
+ static jsi::Object attributesToJs(jsi::Runtime &rt, decltype(types.attributes) value) {
52
+ return bridging::toJs(rt, value);
53
+ }
54
+
55
+ static double httpResponseCodeToJs(jsi::Runtime &rt, decltype(types.httpResponseCode) value) {
56
+ return bridging::toJs(rt, value);
57
+ }
58
+
59
+ static double requestPayloadSizeToJs(jsi::Runtime &rt, decltype(types.requestPayloadSize) value) {
60
+ return bridging::toJs(rt, value);
61
+ }
62
+
63
+ static double responsePayloadSizeToJs(jsi::Runtime &rt, decltype(types.responsePayloadSize) value) {
64
+ return bridging::toJs(rt, value);
65
+ }
66
+
67
+ static jsi::String responseContentTypeToJs(jsi::Runtime &rt, decltype(types.responseContentType) value) {
68
+ return bridging::toJs(rt, value);
69
+ }
70
+ #endif
71
+
72
+ static jsi::Object toJs(
73
+ jsi::Runtime &rt,
74
+ const T &value,
75
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
76
+ auto result = facebook::jsi::Object(rt);
77
+ result.setProperty(rt, "attributes", bridging::toJs(rt, value.attributes, jsInvoker));
78
+ if (value.httpResponseCode) {
79
+ result.setProperty(rt, "httpResponseCode", bridging::toJs(rt, value.httpResponseCode.value(), jsInvoker));
80
+ }
81
+ if (value.requestPayloadSize) {
82
+ result.setProperty(rt, "requestPayloadSize", bridging::toJs(rt, value.requestPayloadSize.value(), jsInvoker));
83
+ }
84
+ if (value.responsePayloadSize) {
85
+ result.setProperty(rt, "responsePayloadSize", bridging::toJs(rt, value.responsePayloadSize.value(), jsInvoker));
86
+ }
87
+ if (value.responseContentType) {
88
+ result.setProperty(rt, "responseContentType", bridging::toJs(rt, value.responseContentType.value(), jsInvoker));
89
+ }
90
+ return result;
91
+ }
92
+ };
93
+
94
+
95
+
96
+ #pragma mark - NativeRNFBTurboPerfTraceData
97
+
98
+ template <typename P0, typename P1>
99
+ struct NativeRNFBTurboPerfTraceData {
100
+ P0 metrics;
101
+ P1 attributes;
102
+ bool operator==(const NativeRNFBTurboPerfTraceData &other) const {
103
+ return metrics == other.metrics && attributes == other.attributes;
104
+ }
105
+ };
106
+
107
+ template <typename T>
108
+ struct NativeRNFBTurboPerfTraceDataBridging {
109
+ static T types;
110
+
111
+ static T fromJs(
112
+ jsi::Runtime &rt,
113
+ const jsi::Object &value,
114
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
115
+ T result{
116
+ bridging::fromJs<decltype(types.metrics)>(rt, value.getProperty(rt, "metrics"), jsInvoker),
117
+ bridging::fromJs<decltype(types.attributes)>(rt, value.getProperty(rt, "attributes"), jsInvoker)};
118
+ return result;
119
+ }
120
+
121
+ #ifdef DEBUG
122
+ static jsi::Object metricsToJs(jsi::Runtime &rt, decltype(types.metrics) value) {
123
+ return bridging::toJs(rt, value);
124
+ }
125
+
126
+ static jsi::Object attributesToJs(jsi::Runtime &rt, decltype(types.attributes) value) {
127
+ return bridging::toJs(rt, value);
128
+ }
129
+ #endif
130
+
131
+ static jsi::Object toJs(
132
+ jsi::Runtime &rt,
133
+ const T &value,
134
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
135
+ auto result = facebook::jsi::Object(rt);
136
+ result.setProperty(rt, "metrics", bridging::toJs(rt, value.metrics, jsInvoker));
137
+ result.setProperty(rt, "attributes", bridging::toJs(rt, value.attributes, jsInvoker));
138
+ return result;
139
+ }
140
+ };
141
+
142
+ class JSI_EXPORT NativeRNFBTurboPerfCxxSpecJSI : public TurboModule {
143
+ protected:
144
+ NativeRNFBTurboPerfCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
145
+
146
+ public:
147
+ virtual jsi::Object getConstants(jsi::Runtime &rt) = 0;
148
+ virtual jsi::Value setPerformanceCollectionEnabled(jsi::Runtime &rt, bool enabled) = 0;
149
+ virtual jsi::Value instrumentationEnabled(jsi::Runtime &rt, bool enabled) = 0;
150
+ virtual void startTrace(jsi::Runtime &rt, double id, jsi::String identifier) = 0;
151
+ virtual void stopTrace(jsi::Runtime &rt, double id, jsi::Object traceData) = 0;
152
+ virtual void startScreenTrace(jsi::Runtime &rt, double id, jsi::String identifier) = 0;
153
+ virtual void stopScreenTrace(jsi::Runtime &rt, double id) = 0;
154
+ virtual void startHttpMetric(jsi::Runtime &rt, double id, jsi::String url, jsi::String httpMethod) = 0;
155
+ virtual void stopHttpMetric(jsi::Runtime &rt, double id, jsi::Object metricData) = 0;
156
+
157
+ };
158
+
159
+ template <typename T>
160
+ class JSI_EXPORT NativeRNFBTurboPerfCxxSpec : public TurboModule {
161
+ public:
162
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
163
+ return delegate_.create(rt, propName);
164
+ }
165
+
166
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
167
+ return delegate_.getPropertyNames(runtime);
168
+ }
169
+
170
+ static constexpr std::string_view kModuleName = "NativeRNFBTurboPerf";
171
+
172
+ protected:
173
+ NativeRNFBTurboPerfCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
174
+ : TurboModule(std::string{NativeRNFBTurboPerfCxxSpec::kModuleName}, jsInvoker),
175
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
176
+
177
+
178
+ private:
179
+ class Delegate : public NativeRNFBTurboPerfCxxSpecJSI {
180
+ public:
181
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
182
+ NativeRNFBTurboPerfCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
183
+
184
+ }
185
+
186
+ jsi::Object getConstants(jsi::Runtime &rt) override {
187
+ static_assert(
188
+ bridging::getParameterCount(&T::getConstants) == 1,
189
+ "Expected getConstants(...) to have 1 parameters");
190
+
191
+ return bridging::callFromJs<jsi::Object>(
192
+ rt, &T::getConstants, jsInvoker_, instance_);
193
+ }
194
+ jsi::Value setPerformanceCollectionEnabled(jsi::Runtime &rt, bool enabled) override {
195
+ static_assert(
196
+ bridging::getParameterCount(&T::setPerformanceCollectionEnabled) == 2,
197
+ "Expected setPerformanceCollectionEnabled(...) to have 2 parameters");
198
+
199
+ return bridging::callFromJs<jsi::Value>(
200
+ rt, &T::setPerformanceCollectionEnabled, jsInvoker_, instance_, std::move(enabled));
201
+ }
202
+ jsi::Value instrumentationEnabled(jsi::Runtime &rt, bool enabled) override {
203
+ static_assert(
204
+ bridging::getParameterCount(&T::instrumentationEnabled) == 2,
205
+ "Expected instrumentationEnabled(...) to have 2 parameters");
206
+
207
+ return bridging::callFromJs<jsi::Value>(
208
+ rt, &T::instrumentationEnabled, jsInvoker_, instance_, std::move(enabled));
209
+ }
210
+ void startTrace(jsi::Runtime &rt, double id, jsi::String identifier) override {
211
+ static_assert(
212
+ bridging::getParameterCount(&T::startTrace) == 3,
213
+ "Expected startTrace(...) to have 3 parameters");
214
+
215
+ return bridging::callFromJs<void>(
216
+ rt, &T::startTrace, jsInvoker_, instance_, std::move(id), std::move(identifier));
217
+ }
218
+ void stopTrace(jsi::Runtime &rt, double id, jsi::Object traceData) override {
219
+ static_assert(
220
+ bridging::getParameterCount(&T::stopTrace) == 3,
221
+ "Expected stopTrace(...) to have 3 parameters");
222
+
223
+ return bridging::callFromJs<void>(
224
+ rt, &T::stopTrace, jsInvoker_, instance_, std::move(id), std::move(traceData));
225
+ }
226
+ void startScreenTrace(jsi::Runtime &rt, double id, jsi::String identifier) override {
227
+ static_assert(
228
+ bridging::getParameterCount(&T::startScreenTrace) == 3,
229
+ "Expected startScreenTrace(...) to have 3 parameters");
230
+
231
+ return bridging::callFromJs<void>(
232
+ rt, &T::startScreenTrace, jsInvoker_, instance_, std::move(id), std::move(identifier));
233
+ }
234
+ void stopScreenTrace(jsi::Runtime &rt, double id) override {
235
+ static_assert(
236
+ bridging::getParameterCount(&T::stopScreenTrace) == 2,
237
+ "Expected stopScreenTrace(...) to have 2 parameters");
238
+
239
+ return bridging::callFromJs<void>(
240
+ rt, &T::stopScreenTrace, jsInvoker_, instance_, std::move(id));
241
+ }
242
+ void startHttpMetric(jsi::Runtime &rt, double id, jsi::String url, jsi::String httpMethod) override {
243
+ static_assert(
244
+ bridging::getParameterCount(&T::startHttpMetric) == 4,
245
+ "Expected startHttpMetric(...) to have 4 parameters");
246
+
247
+ return bridging::callFromJs<void>(
248
+ rt, &T::startHttpMetric, jsInvoker_, instance_, std::move(id), std::move(url), std::move(httpMethod));
249
+ }
250
+ void stopHttpMetric(jsi::Runtime &rt, double id, jsi::Object metricData) override {
251
+ static_assert(
252
+ bridging::getParameterCount(&T::stopHttpMetric) == 3,
253
+ "Expected stopHttpMetric(...) to have 3 parameters");
254
+
255
+ return bridging::callFromJs<void>(
256
+ rt, &T::stopHttpMetric, jsInvoker_, instance_, std::move(id), std::move(metricData));
257
+ }
258
+
259
+ private:
260
+ friend class NativeRNFBTurboPerfCxxSpec;
261
+ T *instance_;
262
+ };
263
+
264
+ Delegate delegate_;
265
+ };
266
+
267
+ } // namespace facebook::react