react-native-sdk-pianoio 0.2.1 → 0.2.3

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 (35) hide show
  1. package/README.md +33 -110
  2. package/SdkPianoio.podspec +1 -1
  3. package/android/generated/jni/RNSdkPianoioSpec-generated.cpp +1 -65
  4. package/android/generated/jni/RNSdkPianoioSpec.h +0 -7
  5. package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI-generated.cpp +0 -72
  6. package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI.h +0 -133
  7. package/ios/ComposerPiano.swift +124 -9
  8. package/ios/MyComposerDelegate.swift +204 -0
  9. package/ios/SdkPianoio.h +2 -4
  10. package/ios/SdkPianoio.mm +90 -48
  11. package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec-generated.mm +0 -86
  12. package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h +0 -52
  13. package/ios/generated/RNSdkPianoioSpecJSI-generated.cpp +0 -72
  14. package/ios/generated/RNSdkPianoioSpecJSI.h +0 -133
  15. package/ios/services/ComposerService.swift +49 -0
  16. package/ios/services/TokenService.swift +67 -0
  17. package/lib/commonjs/NativeSdkPianoio.ts +18 -14
  18. package/lib/commonjs/PianoComposer.js +22 -0
  19. package/lib/commonjs/PianoComposer.js.map +1 -1
  20. package/lib/module/NativeSdkPianoio.ts +18 -14
  21. package/lib/module/PianoComposer.js +22 -0
  22. package/lib/module/PianoComposer.js.map +1 -1
  23. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +16 -13
  24. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/src/PianoComposer.d.ts +13 -9
  26. package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
  27. package/lib/typescript/module/src/NativeSdkPianoio.d.ts +16 -13
  28. package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
  29. package/lib/typescript/module/src/PianoComposer.d.ts +13 -9
  30. package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/NativeSdkPianoio.ts +18 -14
  33. package/src/PianoComposer.tsx +95 -71
  34. package/src/index.tsx +0 -2
  35. package/android/generated/java/com/sdkpianoio/NativeSdkPianoioSpec.java +0 -75
package/README.md CHANGED
@@ -2,160 +2,84 @@
2
2
 
3
3
  Lo scopo di questo pacchetto npm è quello di avere la possibilità di interagire con i metodi messi a disposizione dalle SDK di Piano sia di iOS che di Android, così da avere un unico pacchetto da installare nel momento in cui si vuole utilizzare Piano.io.
4
4
 
5
+ Il tutto deve essere compatibile con la version **Expo SDK51** ed è su questa versione che sono stati effettuati i test.
6
+
5
7
  Il progetto è ancora in **work in progress**.
6
8
 
7
9
  ## Indice
8
10
 
9
11
  - [Installazione](#installazione)
10
- - [Expo](#expo)
11
- - [Adattamento del pacchetto a expo < 52](#adattamento-del-pacchetto-a-expo--52)
12
- - [React native](#react-native)
12
+ - [Prerequisiti (adattamento del pacchetto a Expo < 52)](#prerequisiti-adattamento-del-pacchetto-a-expo--52)
13
+ - [iOS](#ios)
14
+ - [Android](#android)
15
+ - [Avviare progetto](#avviare-progetto)
13
16
  - [Utilizzo](#utilizzo)
14
17
  - [Importazione](#importazione)
15
18
  - [Creazione del Composer](#creazione-del-composer)
16
19
  - [Metodi del Composer](#metodi-del-composer)
20
+ - [`addTag(tag: string)`](#addtagtag-string)
21
+ - [`addTags(tags: string[])`](#addtagstags-string)
22
+ - [`setZoneId(zoneId: string)`](#setzoneidzoneid-string)
23
+ - [`setReferrer(referrer: string)`](#setreferrerreferrer-string)
24
+ - [`setUrl(url: string)`](#seturlurl-string)
25
+ - [`setCustomVariable(name: string, value: string)`](#setcustomvariablename-string-value-string)
26
+ - [`setUserToken(token: string)`](#setusertokentoken-string)
27
+ - [`toString()`](#tostring)
17
28
  - [Metodi statici](#metodi-statici)
29
+ - [`PianoComposer.create(aid: string): Promise<PianoComposer>`](#pianocomposercreateaid-string-promisepianocomposer)
30
+ - [`PianoComposer.isInitialized(): Promise<boolean>`](#pianocomposerisinitialized-promiseboolean)
31
+ - [`PianoComposer.getComposerFromSdkIOS(): Promise<Object>`](#pianocomposergetcomposerfromsdkios-promiseobject)
18
32
  - [Esempio completo](#esempio-completo)
19
33
  <!-- - [Contributing](#contributing)
20
34
  - [License](#license) -->
21
35
 
22
36
  ## Installazione
23
37
 
24
- ### Expo
25
-
26
- #### Installazione di Expo
38
+ ### Prerequisiti (adattamento del pacchetto a Expo < 52)
27
39
 
28
40
  Seguendo la guida presente al link https://docs.expo.dev/get-started/create-a-project/ è possibile effettuare la creazione di un progetto in expo.
29
41
 
30
42
  Una volta effettuato questo è possibile installare questo pacchetto all'interno del progetto.
31
43
 
32
- Per installare il pacchetto all'interno del progetto, bisogna fare come prima cosa, l'installazione del pacchetto npm:
33
-
34
- ```sh
35
- npm install react-native-sdk-pianoio
36
- ```
37
-
38
- In seguito effettuare la dev build così da permettere l'utilizzo dell'SDK
44
+ Bisogna rendere come prima cosa il progetto in expo predisposto all'utilizzo di moduli nativi, per farlo c'è il seguente comando:
39
45
 
40
46
  ```sh
41
- npx expo run:ios
47
+ npx expo prebuild
42
48
  ```
49
+ Questo creerà la cartella per iOS e per Android.
43
50
 
44
- Con il comando verrà creata la cartella relativa di ios, che **non** sarà necessario toccare in nessun modo.
45
-
46
- In seguito si può far partire il progetto, tramite il comando:
51
+ Dopodiché si può passare all'installazione del pacchetto npm:
47
52
 
48
53
  ```sh
49
- npx expo start
54
+ npm install react-native-sdk-pianoio
50
55
  ```
51
56
 
52
- ### Adattamento del pacchetto a Expo < 52
53
-
54
- Con l’introduzione della versione Expo SDK 52, il team di Expo ha adottato la **New Architecture** di React Native, che introduce importanti novità come i TurboModules, il Codegen e un nuovo sistema di gestione degli eventi (incluso EventEmitterCallback). Questi cambiamenti migliorano performance, interoperabilità con pacchetti nativi complessi e garantiscono una maggiore compatibilità futura con React Native.
55
-
56
- Tuttavia, questa evoluzione comporta incompatibilità con versioni precedenti (Expo 51 o inferiori), che non includono le definizioni e i meccanismi introdotti dalla nuova architettura.
57
-
58
- Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
59
-
60
- Per far funzionare il pacchetto con versioni precedenti alla 52, è necessario usare un approccio un po' forzato, modificando manualmente il codice generato per evitare riferimenti non supportati.
61
-
62
- Una volta installato il pacchetto e aver eseguito:
63
- ```sh
64
- npx expo run:ios
65
- ```
57
+ ### iOS
66
58
 
67
- Dovrebbe comparire una serie di errori simili a questo:
59
+ Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
68
60
 
69
61
  ```sh
70
- ❌ (node_modules/react-native-sdk-pianoio/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h:72:18)
71
-
72
- 70 | @interface NativeSdkPianoioSpecBase : NSObject {
73
- 71 | @protected
74
- > 72 | facebook::react::EventEmitterCallback _eventEmitterCallback;
75
- | ^ no type named 'EventEmitterCallback' in namespace 'facebook::react'
76
- 73 | }
77
- 74 | - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
78
- 75 |
79
- ```
80
-
81
- I file causanti di questi errori sono:
82
- - RNSdkPianoioSpec.h
83
- - RNSdkPianoioSpec-generated.mm
84
-
85
- Quindi, cliccare sulla referenza del file e andare alla linea dell'errore.
86
-
87
- #### Modifica del file RNSdkPianoioSpec.h
88
-
89
- ```
90
- @interface NativeSdkPianoioSpecBase : NSObject {
91
- @protected
92
- facebook::react::EventEmitterCallback _eventEmitterCallback;
93
- }
94
- - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
95
-
96
- @end
97
- ```
98
- Sostituire il codice sovrastante con:
99
-
100
- ```
101
- @interface NativeSdkPianoioSpecBase : NSObject {
102
- @protected
103
- void *_eventEmitterCallback;
104
- }
105
- - (void)setEventEmitterCallback:(void *)eventEmitterCallbackWrapper;
106
-
107
- @end
108
- ```
109
-
110
- #### Modifica del file RNSdkPianoioSpec.h
111
-
112
- ```
113
- @implementation NativeSdkPianoioSpecBase
114
-
115
-
116
- - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
117
- {
118
- _eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
119
- }
120
- @end
121
- ```
122
-
123
- Sostituire il codice sovrastante con:
124
-
125
- ```
126
- @implementation NativeSdkPianoioSpecBase
127
-
128
- - (void)setEventEmitterCallback:(void *)eventEmitterCallbackWrapper;
129
- {
130
- _eventEmitterCallback = std::move(eventEmitterCallbackWrapper);
131
- }
132
- @end
62
+ pod install
133
63
  ```
134
64
 
65
+ ### Android
135
66
 
136
- ### React native
137
-
138
- Nel progetto di react native eseguire:
67
+ Nel progetto di react native entrare nella cartella per android e [...]
139
68
 
140
69
  ```sh
141
- npm install react-native-sdk-pianoio
70
+ work in progress
142
71
  ```
143
72
 
144
- #### iOS
73
+ #### Avviare progetto
145
74
 
146
- Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
75
+ In seguito si può far partire il progetto, tramite il comando:
147
76
 
148
77
  ```sh
149
- pod install
78
+ npx expo run:ios
150
79
  ```
151
80
 
152
- #### Android
81
+ **Importante:** non usare ExpoGo per il progetto, potrebbe causare errori.
153
82
 
154
- Nel progetto di react native entrare nella cartella per android e [...]
155
-
156
- ```sh
157
- work in progress
158
- ```
159
83
 
160
84
  ## Utilizzo
161
85
 
@@ -275,7 +199,6 @@ PianoComposer {
275
199
 
276
200
  Crea e inizializza una nuova istanza di `PianoComposer`.
277
201
 
278
-
279
202
  ### `PianoComposer.isInitialized(): Promise<boolean>`
280
203
 
281
204
  Verifica se il composer è stato inizializzato correttamente a livello nativo.
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
14
14
  s.platforms = { :ios => min_ios_version_supported }
15
15
  s.source = { :git => "https://google.ch$.git", :tag => "#{s.version}" }
16
16
 
17
- s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
17
+ s.source_files = "ios/**/*.{h,m,mm,cpp,swift}", "ios/services/**/*.{swift}"
18
18
  s.private_header_files = "ios/**/*.h"
19
19
 
20
20
 
@@ -12,74 +12,10 @@
12
12
 
13
13
  namespace facebook::react {
14
14
 
15
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_initializeComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
- static jmethodID cachedMethodId = nullptr;
17
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "initializeComposer", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
18
- }
19
-
20
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_getComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
21
- static jmethodID cachedMethodId = nullptr;
22
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getComposer", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
23
- }
24
15
 
25
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_addComposerTag(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
26
- static jmethodID cachedMethodId = nullptr;
27
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "addComposerTag", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
28
- }
29
-
30
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_addComposerTags(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
31
- static jmethodID cachedMethodId = nullptr;
32
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "addComposerTags", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
33
- }
34
-
35
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerZoneId(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
36
- static jmethodID cachedMethodId = nullptr;
37
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerZoneId", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
38
- }
39
-
40
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerReferrer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
41
- static jmethodID cachedMethodId = nullptr;
42
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerReferrer", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
43
- }
44
-
45
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerUrl(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
46
- static jmethodID cachedMethodId = nullptr;
47
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerUrl", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
48
- }
49
-
50
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerCustomVariable(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
51
- static jmethodID cachedMethodId = nullptr;
52
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerCustomVariable", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
53
- }
54
-
55
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerUserToken(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
56
- static jmethodID cachedMethodId = nullptr;
57
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerUserToken", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
58
- }
59
-
60
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_executeComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
61
- static jmethodID cachedMethodId = nullptr;
62
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "executeComposer", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
63
- }
64
-
65
- NativeSdkPianoioSpecJSI::NativeSdkPianoioSpecJSI(const JavaTurboModule::InitParams &params)
66
- : JavaTurboModule(params) {
67
- methodMap_["initializeComposer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_initializeComposer};
68
- methodMap_["getComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioSpecJSI_getComposer};
69
- methodMap_["addComposerTag"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_addComposerTag};
70
- methodMap_["addComposerTags"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_addComposerTags};
71
- methodMap_["setComposerZoneId"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerZoneId};
72
- methodMap_["setComposerReferrer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerReferrer};
73
- methodMap_["setComposerUrl"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerUrl};
74
- methodMap_["setComposerCustomVariable"] = MethodMetadata {2, __hostFunction_NativeSdkPianoioSpecJSI_setComposerCustomVariable};
75
- methodMap_["setComposerUserToken"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerUserToken};
76
- methodMap_["executeComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioSpecJSI_executeComposer};
77
- }
78
16
 
79
17
  std::shared_ptr<TurboModule> RNSdkPianoioSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
80
- if (moduleName == "SdkPianoio") {
81
- return std::make_shared<NativeSdkPianoioSpecJSI>(params);
82
- }
18
+
83
19
  return nullptr;
84
20
  }
85
21
 
@@ -16,13 +16,6 @@
16
16
 
17
17
  namespace facebook::react {
18
18
 
19
- /**
20
- * JNI C++ class for module 'NativeSdkPianoio'
21
- */
22
- class JSI_EXPORT NativeSdkPianoioSpecJSI : public JavaTurboModule {
23
- public:
24
- NativeSdkPianoioSpecJSI(const JavaTurboModule::InitParams &params);
25
- };
26
19
 
27
20
 
28
21
  JSI_EXPORT
@@ -11,79 +11,7 @@
11
11
 
12
12
  namespace facebook::react {
13
13
 
14
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_initializeComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->initializeComposer(
16
- rt,
17
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
18
- );
19
- }
20
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_getComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
21
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->getComposer(
22
- rt
23
- );
24
- }
25
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTag(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
26
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->addComposerTag(
27
- rt,
28
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
29
- );
30
- }
31
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTags(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
32
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->addComposerTags(
33
- rt,
34
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asArray(rt)
35
- );
36
- }
37
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerZoneId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
38
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerZoneId(
39
- rt,
40
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
41
- );
42
- }
43
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerReferrer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
44
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerReferrer(
45
- rt,
46
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
47
- );
48
- }
49
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUrl(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
50
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerUrl(
51
- rt,
52
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
53
- );
54
- }
55
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerCustomVariable(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
56
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerCustomVariable(
57
- rt,
58
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
59
- count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
60
- );
61
- }
62
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUserToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
63
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerUserToken(
64
- rt,
65
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
66
- );
67
- }
68
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_executeComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
69
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->executeComposer(
70
- rt
71
- );
72
- }
73
14
 
74
- NativeSdkPianoioCxxSpecJSI::NativeSdkPianoioCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
75
- : TurboModule("SdkPianoio", jsInvoker) {
76
- methodMap_["initializeComposer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_initializeComposer};
77
- methodMap_["getComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioCxxSpecJSI_getComposer};
78
- methodMap_["addComposerTag"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTag};
79
- methodMap_["addComposerTags"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTags};
80
- methodMap_["setComposerZoneId"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerZoneId};
81
- methodMap_["setComposerReferrer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerReferrer};
82
- methodMap_["setComposerUrl"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUrl};
83
- methodMap_["setComposerCustomVariable"] = MethodMetadata {2, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerCustomVariable};
84
- methodMap_["setComposerUserToken"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUserToken};
85
- methodMap_["executeComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioCxxSpecJSI_executeComposer};
86
- }
87
15
 
88
16
 
89
17
  } // namespace facebook::react
@@ -15,138 +15,5 @@
15
15
  namespace facebook::react {
16
16
 
17
17
 
18
- class JSI_EXPORT NativeSdkPianoioCxxSpecJSI : public TurboModule {
19
- protected:
20
- NativeSdkPianoioCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
21
-
22
- public:
23
- virtual jsi::Value initializeComposer(jsi::Runtime &rt, jsi::String aid) = 0;
24
- virtual jsi::Value getComposer(jsi::Runtime &rt) = 0;
25
- virtual jsi::Value addComposerTag(jsi::Runtime &rt, jsi::String tag) = 0;
26
- virtual jsi::Value addComposerTags(jsi::Runtime &rt, jsi::Array tags) = 0;
27
- virtual jsi::Value setComposerZoneId(jsi::Runtime &rt, jsi::String zoneId) = 0;
28
- virtual jsi::Value setComposerReferrer(jsi::Runtime &rt, jsi::String referrer) = 0;
29
- virtual jsi::Value setComposerUrl(jsi::Runtime &rt, jsi::String url) = 0;
30
- virtual jsi::Value setComposerCustomVariable(jsi::Runtime &rt, jsi::String name, jsi::String value) = 0;
31
- virtual jsi::Value setComposerUserToken(jsi::Runtime &rt, jsi::String token) = 0;
32
- virtual jsi::Value executeComposer(jsi::Runtime &rt) = 0;
33
-
34
- };
35
-
36
- template <typename T>
37
- class JSI_EXPORT NativeSdkPianoioCxxSpec : public TurboModule {
38
- public:
39
- jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
40
- return delegate_.create(rt, propName);
41
- }
42
-
43
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
44
- return delegate_.getPropertyNames(runtime);
45
- }
46
-
47
- static constexpr std::string_view kModuleName = "SdkPianoio";
48
-
49
- protected:
50
- NativeSdkPianoioCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
51
- : TurboModule(std::string{NativeSdkPianoioCxxSpec::kModuleName}, jsInvoker),
52
- delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
53
-
54
-
55
- private:
56
- class Delegate : public NativeSdkPianoioCxxSpecJSI {
57
- public:
58
- Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
59
- NativeSdkPianoioCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
60
-
61
- }
62
-
63
- jsi::Value initializeComposer(jsi::Runtime &rt, jsi::String aid) override {
64
- static_assert(
65
- bridging::getParameterCount(&T::initializeComposer) == 2,
66
- "Expected initializeComposer(...) to have 2 parameters");
67
-
68
- return bridging::callFromJs<jsi::Value>(
69
- rt, &T::initializeComposer, jsInvoker_, instance_, std::move(aid));
70
- }
71
- jsi::Value getComposer(jsi::Runtime &rt) override {
72
- static_assert(
73
- bridging::getParameterCount(&T::getComposer) == 1,
74
- "Expected getComposer(...) to have 1 parameters");
75
-
76
- return bridging::callFromJs<jsi::Value>(
77
- rt, &T::getComposer, jsInvoker_, instance_);
78
- }
79
- jsi::Value addComposerTag(jsi::Runtime &rt, jsi::String tag) override {
80
- static_assert(
81
- bridging::getParameterCount(&T::addComposerTag) == 2,
82
- "Expected addComposerTag(...) to have 2 parameters");
83
-
84
- return bridging::callFromJs<jsi::Value>(
85
- rt, &T::addComposerTag, jsInvoker_, instance_, std::move(tag));
86
- }
87
- jsi::Value addComposerTags(jsi::Runtime &rt, jsi::Array tags) override {
88
- static_assert(
89
- bridging::getParameterCount(&T::addComposerTags) == 2,
90
- "Expected addComposerTags(...) to have 2 parameters");
91
-
92
- return bridging::callFromJs<jsi::Value>(
93
- rt, &T::addComposerTags, jsInvoker_, instance_, std::move(tags));
94
- }
95
- jsi::Value setComposerZoneId(jsi::Runtime &rt, jsi::String zoneId) override {
96
- static_assert(
97
- bridging::getParameterCount(&T::setComposerZoneId) == 2,
98
- "Expected setComposerZoneId(...) to have 2 parameters");
99
-
100
- return bridging::callFromJs<jsi::Value>(
101
- rt, &T::setComposerZoneId, jsInvoker_, instance_, std::move(zoneId));
102
- }
103
- jsi::Value setComposerReferrer(jsi::Runtime &rt, jsi::String referrer) override {
104
- static_assert(
105
- bridging::getParameterCount(&T::setComposerReferrer) == 2,
106
- "Expected setComposerReferrer(...) to have 2 parameters");
107
-
108
- return bridging::callFromJs<jsi::Value>(
109
- rt, &T::setComposerReferrer, jsInvoker_, instance_, std::move(referrer));
110
- }
111
- jsi::Value setComposerUrl(jsi::Runtime &rt, jsi::String url) override {
112
- static_assert(
113
- bridging::getParameterCount(&T::setComposerUrl) == 2,
114
- "Expected setComposerUrl(...) to have 2 parameters");
115
-
116
- return bridging::callFromJs<jsi::Value>(
117
- rt, &T::setComposerUrl, jsInvoker_, instance_, std::move(url));
118
- }
119
- jsi::Value setComposerCustomVariable(jsi::Runtime &rt, jsi::String name, jsi::String value) override {
120
- static_assert(
121
- bridging::getParameterCount(&T::setComposerCustomVariable) == 3,
122
- "Expected setComposerCustomVariable(...) to have 3 parameters");
123
-
124
- return bridging::callFromJs<jsi::Value>(
125
- rt, &T::setComposerCustomVariable, jsInvoker_, instance_, std::move(name), std::move(value));
126
- }
127
- jsi::Value setComposerUserToken(jsi::Runtime &rt, jsi::String token) override {
128
- static_assert(
129
- bridging::getParameterCount(&T::setComposerUserToken) == 2,
130
- "Expected setComposerUserToken(...) to have 2 parameters");
131
-
132
- return bridging::callFromJs<jsi::Value>(
133
- rt, &T::setComposerUserToken, jsInvoker_, instance_, std::move(token));
134
- }
135
- jsi::Value executeComposer(jsi::Runtime &rt) override {
136
- static_assert(
137
- bridging::getParameterCount(&T::executeComposer) == 1,
138
- "Expected executeComposer(...) to have 1 parameters");
139
-
140
- return bridging::callFromJs<jsi::Value>(
141
- rt, &T::executeComposer, jsInvoker_, instance_);
142
- }
143
-
144
- private:
145
- friend class NativeSdkPianoioCxxSpec;
146
- T *instance_;
147
- };
148
-
149
- Delegate delegate_;
150
- };
151
18
 
152
19
  } // namespace facebook::react