@react-native-firebase/perf 25.1.0 → 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.
- package/CHANGELOG.md +17 -0
- package/RNFBPerf.podspec +7 -6
- package/android/build.gradle +19 -0
- package/android/src/main/java/io/invertase/firebase/perf/UniversalFirebasePerfModule.java +88 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/NativeRNFBTurboPerf.java +108 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/ReactNativeFirebasePerfPackage.java +1 -1
- package/android/src/reactnative/java/io/invertase/firebase/perf/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboPerfSpec.java +100 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/CMakeLists.txt +36 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/RNFBPerfTurboModules-generated.cpp +80 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/RNFBPerfTurboModules.h +31 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/react/renderer/components/RNFBPerfTurboModules/RNFBPerfTurboModulesJSI-generated.cpp +94 -0
- package/android/src/reactnative/java/io/invertase/firebase/perf/generated/jni/react/renderer/components/RNFBPerfTurboModules/RNFBPerfTurboModulesJSI.h +267 -0
- package/app.plugin.js +1 -1
- package/dist/module/HttpMetric.js +4 -4
- package/dist/module/HttpMetric.js.map +1 -1
- package/dist/module/ScreenTrace.js +5 -5
- package/dist/module/ScreenTrace.js.map +1 -1
- package/dist/module/Trace.js +4 -4
- package/dist/module/Trace.js.map +1 -1
- package/dist/module/index.js +142 -3
- package/dist/module/index.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/HttpMetric.d.ts +2 -2
- package/dist/typescript/lib/HttpMetric.d.ts.map +1 -1
- package/dist/typescript/lib/ScreenTrace.d.ts +2 -2
- package/dist/typescript/lib/ScreenTrace.d.ts.map +1 -1
- package/dist/typescript/lib/Trace.d.ts +2 -2
- package/dist/typescript/lib/Trace.d.ts.map +1 -1
- package/dist/typescript/lib/index.d.ts +23 -4
- package/dist/typescript/lib/index.d.ts.map +1 -1
- package/dist/typescript/lib/types/internal.d.ts +12 -16
- package/dist/typescript/lib/types/internal.d.ts.map +1 -1
- package/dist/typescript/lib/types/perf.d.ts +7 -7
- package/dist/typescript/lib/types/perf.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/ios/RNFBPerf/RNFBPerfModule.h +3 -2
- package/ios/RNFBPerf/{RNFBPerfModule.m → RNFBPerfModule.mm} +56 -71
- package/ios/RNFBPerf.xcodeproj/project.pbxproj +8 -8
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
- package/ios/generated/RNFBPerfTurboModules/RNFBPerfTurboModules-generated.mm +106 -0
- package/ios/generated/RNFBPerfTurboModules/RNFBPerfTurboModules.h +191 -0
- package/ios/generated/RNFBPerfTurboModulesJSI-generated.cpp +94 -0
- package/ios/generated/RNFBPerfTurboModulesJSI.h +267 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/lib/HttpMetric.ts +6 -6
- package/lib/ScreenTrace.ts +7 -7
- package/lib/Trace.ts +6 -6
- package/lib/index.ts +228 -5
- package/lib/types/internal.ts +12 -24
- package/lib/types/perf.ts +7 -7
- package/lib/version.ts +1 -1
- package/package.json +30 -5
- package/plugin/build/app.plugin.d.ts +2 -0
- package/plugin/build/app.plugin.js +6 -0
- package/plugin/src/app.plugin.ts +3 -0
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/react-native.config.js +10 -0
- package/specs/NativeRNFBTurboPerf.ts +44 -0
- package/typedoc.json +1 -1
- package/android/src/reactnative/java/io/invertase/firebase/perf/ReactNativeFirebasePerfModule.java +0 -158
- package/dist/module/modular.js +0 -93
- package/dist/module/modular.js.map +0 -1
- package/dist/module/namespaced.js +0 -130
- package/dist/module/namespaced.js.map +0 -1
- package/dist/module/types/namespaced.js +0 -65
- package/dist/module/types/namespaced.js.map +0 -1
- package/dist/typescript/lib/modular.d.ts +0 -43
- package/dist/typescript/lib/modular.d.ts.map +0 -1
- package/dist/typescript/lib/namespaced.d.ts +0 -11
- package/dist/typescript/lib/namespaced.d.ts.map +0 -1
- package/dist/typescript/lib/types/namespaced.d.ts +0 -128
- package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
- package/lib/modular.ts +0 -116
- package/lib/namespaced.ts +0 -200
- 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 ¶ms)
|
|
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 ¶ms);
|
|
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
|