simplejsble 0.0.54 → 0.0.56

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.
@@ -10,15 +10,16 @@
10
10
  <key>HeadersPath</key>
11
11
  <string>Headers</string>
12
12
  <key>LibraryIdentifier</key>
13
- <string>ios-arm64</string>
13
+ <string>macos-arm64_x86_64</string>
14
14
  <key>LibraryPath</key>
15
15
  <string>libsimpleble.a</string>
16
16
  <key>SupportedArchitectures</key>
17
17
  <array>
18
18
  <string>arm64</string>
19
+ <string>x86_64</string>
19
20
  </array>
20
21
  <key>SupportedPlatform</key>
21
- <string>ios</string>
22
+ <string>macos</string>
22
23
  </dict>
23
24
  <dict>
24
25
  <key>BinaryPath</key>
@@ -26,16 +27,15 @@
26
27
  <key>HeadersPath</key>
27
28
  <string>Headers</string>
28
29
  <key>LibraryIdentifier</key>
29
- <string>macos-arm64_x86_64</string>
30
+ <string>ios-arm64</string>
30
31
  <key>LibraryPath</key>
31
32
  <string>libsimpleble.a</string>
32
33
  <key>SupportedArchitectures</key>
33
34
  <array>
34
35
  <string>arm64</string>
35
- <string>x86_64</string>
36
36
  </array>
37
37
  <key>SupportedPlatform</key>
38
- <string>macos</string>
38
+ <string>ios</string>
39
39
  </dict>
40
40
  <dict>
41
41
  <key>BinaryPath</key>
@@ -2,16 +2,20 @@
2
2
 
3
3
  namespace margelo::nitro::simplejsble {
4
4
 
5
- bool HybridAdapter::bluetooth_enabled() {
6
- return SimpleBLE::Adapter::bluetooth_enabled();
5
+ std::shared_ptr<Promise<bool>> HybridAdapter::bluetooth_enabled() {
6
+ return Promise<bool>::async([]() -> bool {
7
+ return SimpleBLE::Adapter::bluetooth_enabled();
8
+ });
7
9
  }
8
10
 
9
- std::vector<std::shared_ptr<HybridAdapterSpec>> HybridAdapter::get_adapters() {
10
- std::vector<std::shared_ptr<HybridAdapterSpec>> result;
11
- for (auto& adapter : SimpleBLE::Adapter::get_adapters()) {
12
- result.push_back(std::make_shared<HybridAdapter>(std::move(adapter)));
13
- }
14
- return result;
11
+ std::shared_ptr<Promise<std::vector<std::shared_ptr<HybridAdapterSpec>>>> HybridAdapter::get_adapters() {
12
+ return Promise<std::vector<std::shared_ptr<HybridAdapterSpec>>>::async([]() {
13
+ std::vector<std::shared_ptr<HybridAdapterSpec>> result;
14
+ for (auto& adapter : SimpleBLE::Adapter::get_adapters()) {
15
+ result.push_back(std::make_shared<HybridAdapter>(std::move(adapter)));
16
+ }
17
+ return result;
18
+ });
15
19
  }
16
20
 
17
21
  bool HybridAdapter::initialized() {
@@ -2,6 +2,7 @@
2
2
 
3
3
  #include "HybridAdapterSpec.hpp"
4
4
  #include "HybridPeripheral.hpp"
5
+ #include <NitroModules/Promise.hpp>
5
6
  #include <simpleble/SimpleBLE.h>
6
7
  #include <functional>
7
8
  #include <string>
@@ -16,8 +17,8 @@ class HybridAdapter : public HybridAdapterSpec {
16
17
  explicit HybridAdapter(SimpleBLE::Adapter adapter)
17
18
  : HybridObject(TAG), _adapter(std::move(adapter)) {}
18
19
 
19
- bool bluetooth_enabled() override;
20
- std::vector<std::shared_ptr<HybridAdapterSpec>> get_adapters() override;
20
+ std::shared_ptr<Promise<bool>> bluetooth_enabled() override;
21
+ std::shared_ptr<Promise<std::vector<std::shared_ptr<HybridAdapterSpec>>>> get_adapters() override;
21
22
 
22
23
  bool initialized() override;
23
24
  std::string identifier() override;
@@ -21,19 +21,10 @@ class VM {
21
21
  }
22
22
  instance._jvm = jvm_override;
23
23
  } else if (instance._jvm == nullptr) {
24
- // #ifdef __REACT_NATIVE_ANDROID__
25
- // // On React Native/Expo Android, JNI_GetCreatedJavaVMs is not available.
26
- // // The JVM must be set via set_jvm() from JNI_OnLoad.
27
- // throw std::runtime_error(
28
- // "JavaVM not initialized. Ensure JNI_OnLoad calls "
29
- // "SimpleBLE::Advanced::Android::set_jvm(vm) before any SimpleBLE operations"
30
- // );
31
- // #else
32
24
  jsize count;
33
25
  if (JNI_GetCreatedJavaVMs(&instance._jvm, 1, &count) != JNI_OK || count == 0) {
34
26
  throw std::runtime_error("Failed to retrieve the Java Virtual Machine");
35
27
  }
36
- #endif
37
28
  }
38
29
  return instance._jvm;
39
30
  }
@@ -9,12 +9,14 @@ export interface Adapter extends HybridObject<{
9
9
  }> {
10
10
  /**
11
11
  * Check if Bluetooth is enabled on the system.
12
+ * Returns a Promise to avoid blocking the JS thread during initialization.
12
13
  */
13
- bluetooth_enabled(): boolean;
14
+ bluetooth_enabled(): Promise<boolean>;
14
15
  /**
15
16
  * Retrieve a list of all available Bluetooth adapters.
17
+ * Returns a Promise to avoid blocking the JS thread during initialization.
16
18
  */
17
- get_adapters(): Adapter[];
19
+ get_adapters(): Promise<Adapter[]>;
18
20
  /**
19
21
  * Check if the adapter is initialized (has a valid internal handle).
20
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Adapter.nitro.d.ts","sourceRoot":"","sources":["../../src/specs/Adapter.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,OACf,SAAQ,YAAY,CAAC;IACnB,GAAG,EAAE,KAAK,CAAA;IACV,OAAO,EAAE,KAAK,CAAA;CACf,CAAC;IACF;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAA;IAE5B;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE,CAAA;IAEzB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAA;IAEtB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAA;IAErB;;OAEG;IACH,UAAU,IAAI,IAAI,CAAA;IAElB;;OAEG;IACH,SAAS,IAAI,IAAI,CAAA;IAEjB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAElC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAA;IAEzB;;OAEG;IACH,gBAAgB,IAAI,UAAU,EAAE,CAAA;IAEhC;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAEtD;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAErD;;OAEG;IACH,4BAA4B,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;IAE9E;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;IAE5E;;;;;;OAMG;IACH,sBAAsB,IAAI,UAAU,EAAE,CAAA;CACvC"}
1
+ {"version":3,"file":"Adapter.nitro.d.ts","sourceRoot":"","sources":["../../src/specs/Adapter.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,OACf,SAAQ,YAAY,CAAC;IACnB,GAAG,EAAE,KAAK,CAAA;IACV,OAAO,EAAE,KAAK,CAAA;CACf,CAAC;IACF;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAErC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAElC;;OAEG;IACH,WAAW,IAAI,OAAO,CAAA;IAEtB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAA;IAErB;;OAEG;IACH,UAAU,IAAI,IAAI,CAAA;IAElB;;OAEG;IACH,SAAS,IAAI,IAAI,CAAA;IAEjB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAElC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAA;IAEzB;;OAEG;IACH,gBAAgB,IAAI,UAAU,EAAE,CAAA;IAEhC;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAEtD;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAErD;;OAEG;IACH,4BAA4B,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;IAE9E;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;IAE5E;;;;;;OAMG;IACH,sBAAsB,IAAI,UAAU,EAAE,CAAA;CACvC"}
@@ -18,6 +18,7 @@ namespace margelo::nitro::simplejsble { class HybridAdapterSpec; }
18
18
  // Forward declaration of `HybridPeripheralSpec` to properly resolve imports.
19
19
  namespace margelo::nitro::simplejsble { class HybridPeripheralSpec; }
20
20
 
21
+ #include <NitroModules/Promise.hpp>
21
22
  #include <memory>
22
23
  #include "HybridAdapterSpec.hpp"
23
24
  #include <vector>
@@ -56,8 +57,8 @@ namespace margelo::nitro::simplejsble {
56
57
 
57
58
  public:
58
59
  // Methods
59
- virtual bool bluetooth_enabled() = 0;
60
- virtual std::vector<std::shared_ptr<HybridAdapterSpec>> get_adapters() = 0;
60
+ virtual std::shared_ptr<Promise<bool>> bluetooth_enabled() = 0;
61
+ virtual std::shared_ptr<Promise<std::vector<std::shared_ptr<HybridAdapterSpec>>>> get_adapters() = 0;
61
62
  virtual bool initialized() = 0;
62
63
  virtual std::string identifier() = 0;
63
64
  virtual std::string address() = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simplejsble",
3
- "version": "0.0.54",
3
+ "version": "0.0.56",
4
4
  "description": "React Native Bluetooth Low Energy library using SimpleBLE with Nitro Modules",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -11,13 +11,15 @@ export interface Adapter
11
11
  }> {
12
12
  /**
13
13
  * Check if Bluetooth is enabled on the system.
14
+ * Returns a Promise to avoid blocking the JS thread during initialization.
14
15
  */
15
- bluetooth_enabled(): boolean
16
+ bluetooth_enabled(): Promise<boolean>
16
17
 
17
18
  /**
18
19
  * Retrieve a list of all available Bluetooth adapters.
20
+ * Returns a Promise to avoid blocking the JS thread during initialization.
19
21
  */
20
- get_adapters(): Adapter[]
22
+ get_adapters(): Promise<Adapter[]>
21
23
 
22
24
  /**
23
25
  * Check if the adapter is initialized (has a valid internal handle).