react-native-nitro-sqlite 9.3.0 → 9.5.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 (50) hide show
  1. package/android/CMakeLists.txt +1 -1
  2. package/cpp/NitroSQLiteException.hpp +1 -2
  3. package/cpp/{specs → hybridObjects}/HybridNitroSQLite.cpp +56 -9
  4. package/cpp/hybridObjects/HybridNitroSQLiteQueryResult.cpp +93 -0
  5. package/cpp/hybridObjects/HybridNitroSQLiteQueryResult.hpp +47 -0
  6. package/cpp/operations.cpp +13 -9
  7. package/cpp/operations.hpp +3 -1
  8. package/cpp/sqliteExecuteBatch.cpp +1 -1
  9. package/cpp/types.hpp +1 -10
  10. package/ios/NitroSQLite.xcodeproj/project.pbxproj +2 -2
  11. package/lib/commonjs/index.js +0 -4
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/operations/execute.js +19 -15
  14. package/lib/commonjs/operations/execute.js.map +1 -1
  15. package/lib/commonjs/types.js.map +1 -1
  16. package/lib/module/index.js +0 -3
  17. package/lib/module/index.js.map +1 -1
  18. package/lib/module/operations/execute.js +19 -15
  19. package/lib/module/operations/execute.js.map +1 -1
  20. package/lib/module/types.js.map +1 -1
  21. package/lib/typescript/commonjs/index.d.ts +0 -2
  22. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/operations/execute.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts +0 -13
  25. package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/types.d.ts +13 -8
  27. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  28. package/lib/typescript/module/index.d.ts +0 -2
  29. package/lib/typescript/module/index.d.ts.map +1 -1
  30. package/lib/typescript/module/operations/execute.d.ts.map +1 -1
  31. package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts +0 -13
  32. package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
  33. package/lib/typescript/module/types.d.ts +13 -8
  34. package/lib/typescript/module/types.d.ts.map +1 -1
  35. package/nitrogen/generated/android/RNNitroSQLiteOnLoad.cpp +35 -25
  36. package/nitrogen/generated/android/RNNitroSQLiteOnLoad.hpp +13 -4
  37. package/nitrogen/generated/android/c++/JHybridNitroSQLiteOnLoadSpec.cpp +19 -25
  38. package/nitrogen/generated/android/c++/JHybridNitroSQLiteOnLoadSpec.hpp +19 -22
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoadSpec.kt +14 -17
  40. package/nitrogen/generated/shared/c++/HybridNitroSQLiteQueryResultSpec.cpp +0 -1
  41. package/nitrogen/generated/shared/c++/HybridNitroSQLiteQueryResultSpec.hpp +0 -4
  42. package/package.json +10 -7
  43. package/src/index.ts +0 -3
  44. package/src/operations/execute.ts +26 -17
  45. package/src/specs/NitroSQLiteQueryResult.nitro.ts +0 -17
  46. package/src/types.ts +17 -14
  47. package/cpp/specs/HybridNitroSQLiteQueryResult.cpp +0 -49
  48. package/cpp/specs/HybridNitroSQLiteQueryResult.hpp +0 -28
  49. package/nitrogen/generated/shared/c++/NitroSQLiteQueryResultRows.hpp +0 -99
  50. /package/cpp/{specs → hybridObjects}/HybridNitroSQLite.hpp +0 -0
@@ -1,4 +1,4 @@
1
- import type { NitroSQLiteQueryColumnMetadata, NitroSQLiteQueryResult, NitroSQLiteQueryResultRows } from './specs/NitroSQLiteQueryResult.nitro';
1
+ import type { NitroSQLiteQueryResult } from './specs/NitroSQLiteQueryResult.nitro';
2
2
  export interface NitroSQLiteConnectionOptions {
3
3
  name: string;
4
4
  location?: string;
@@ -28,14 +28,19 @@ export type SQLiteValue = boolean | number | string | ArrayBuffer | null;
28
28
  export type SQLiteQueryParams = SQLiteValue[];
29
29
  export type QueryResultRow = Record<string, SQLiteValue>;
30
30
  export type QueryResult<Row extends QueryResultRow = QueryResultRow> = NitroSQLiteQueryResult & {
31
- readonly rowsAffected: number;
32
- readonly insertId?: number;
33
- /** Query results */
34
- readonly results: Row[];
35
31
  /** Query results in a row format for TypeORM compatibility */
36
- readonly rows?: NitroSQLiteQueryResultRows<Row>;
37
- /** Table metadata */
38
- readonly metadata?: Record<string, NitroSQLiteQueryColumnMetadata>;
32
+ rows: NitroSQLiteQueryResultRows<Row>;
33
+ };
34
+ export type NitroSQLiteQueryResultRows<Row extends Record<string, SQLiteValue> = Record<string, SQLiteValue>> = {
35
+ /** Raw array with all dataset */
36
+ _array: Row[];
37
+ /** The lengh of the dataset */
38
+ length: number;
39
+ /** A convenience function to acess the index based the row object
40
+ * @param idx the row index
41
+ * @returns the row structure identified by column names
42
+ */
43
+ item: (idx: number) => Row | undefined;
39
44
  };
40
45
  export type ExecuteQuery = <Row extends QueryResultRow = QueryResultRow>(query: string, params?: SQLiteValue[]) => QueryResult<Row>;
41
46
  export type ExecuteAsyncQuery = <Row extends QueryResultRow = QueryResultRow>(query: string, params?: SQLiteQueryParams) => Promise<QueryResult<Row>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,6 @@ export declare const NitroSQLite: {
24
24
  }>): boolean;
25
25
  dispose(): void;
26
26
  };
27
- /** NOOP on NitroSQLite versions >= 9.3.0 */
28
- export declare function enableSimpleNullHandling(): void;
29
27
  export { open } from './operations/session';
30
28
  export { default as NitroSQLiteError } from './NitroSQLiteError';
31
29
  export type * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAI3E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CAYvB,CAAA;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,SAAK;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,mBAAmB,SAAS,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAI3E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CAYvB,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,mBAAmB,SAAS,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../../src/operations/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAG9E,wBAAgB,OAAO,CAAC,GAAG,SAAS,cAAc,GAAG,KAAK,EACxD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,iBAAiB,GACzB,WAAW,CAAC,GAAG,CAAC,CAOlB;AAED,wBAAsB,YAAY,CAAC,GAAG,SAAS,cAAc,GAAG,KAAK,EACnE,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAO3B"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../../src/operations/execute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAI9E,wBAAgB,OAAO,CAAC,GAAG,SAAS,cAAc,GAAG,KAAK,EACxD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,iBAAiB,GACzB,WAAW,CAAC,GAAG,CAAC,CAOlB;AAED,wBAAsB,YAAY,CAAC,GAAG,SAAS,cAAc,GAAG,KAAK,EACnE,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAW3B"}
@@ -18,22 +18,9 @@ export interface NitroSQLiteQueryResult extends HybridObject<{
18
18
  readonly insertId?: number;
19
19
  /** Query results */
20
20
  readonly results: Record<string, SQLiteValue>[];
21
- /** Query results in a row format for TypeORM compatibility */
22
- readonly rows?: NitroSQLiteQueryResultRows;
23
21
  /** Table metadata */
24
22
  readonly metadata?: Record<string, NitroSQLiteQueryColumnMetadata>;
25
23
  }
26
- export type NitroSQLiteQueryResultRows<Row extends Record<string, SQLiteValue> = Record<string, SQLiteValue>> = {
27
- /** Raw array with all dataset */
28
- _array: Row[];
29
- /** The lengh of the dataset */
30
- length: number;
31
- /** A convenience function to acess the index based the row object
32
- * @param idx the row index
33
- * @returns the row structure identified by column names
34
- */
35
- item: (idx: number) => Row | undefined;
36
- };
37
24
  export type NitroSQLiteQueryColumnMetadata = {
38
25
  /** The name used for this column for this result set */
39
26
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"NitroSQLiteQueryResult.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/NitroSQLiteQueryResult.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEvD;;;;;;;;;GASG;AACH,MAAM,WAAW,sBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAE1B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAA;IAE/C,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAA;IAE1C,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;CACnE;AASD,MAAM,MAAM,0BAA0B,CACpC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IACnE;IACF,iCAAiC;IACjC,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IAEZ,uLAAuL;IACvL,IAAI,EAAE,UAAU,CAAA;IAEhB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
1
+ {"version":3,"file":"NitroSQLiteQueryResult.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/NitroSQLiteQueryResult.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEvD;;;;;;;;;GASG;AACH,MAAM,WAAW,sBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAE1B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAA;IAE/C,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;CACnE;AASD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IAEZ,uLAAuL;IACvL,IAAI,EAAE,UAAU,CAAA;IAEhB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { NitroSQLiteQueryColumnMetadata, NitroSQLiteQueryResult, NitroSQLiteQueryResultRows } from './specs/NitroSQLiteQueryResult.nitro';
1
+ import type { NitroSQLiteQueryResult } from './specs/NitroSQLiteQueryResult.nitro';
2
2
  export interface NitroSQLiteConnectionOptions {
3
3
  name: string;
4
4
  location?: string;
@@ -28,14 +28,19 @@ export type SQLiteValue = boolean | number | string | ArrayBuffer | null;
28
28
  export type SQLiteQueryParams = SQLiteValue[];
29
29
  export type QueryResultRow = Record<string, SQLiteValue>;
30
30
  export type QueryResult<Row extends QueryResultRow = QueryResultRow> = NitroSQLiteQueryResult & {
31
- readonly rowsAffected: number;
32
- readonly insertId?: number;
33
- /** Query results */
34
- readonly results: Row[];
35
31
  /** Query results in a row format for TypeORM compatibility */
36
- readonly rows?: NitroSQLiteQueryResultRows<Row>;
37
- /** Table metadata */
38
- readonly metadata?: Record<string, NitroSQLiteQueryColumnMetadata>;
32
+ rows: NitroSQLiteQueryResultRows<Row>;
33
+ };
34
+ export type NitroSQLiteQueryResultRows<Row extends Record<string, SQLiteValue> = Record<string, SQLiteValue>> = {
35
+ /** Raw array with all dataset */
36
+ _array: Row[];
37
+ /** The lengh of the dataset */
38
+ length: number;
39
+ /** A convenience function to acess the index based the row object
40
+ * @param idx the row index
41
+ * @returns the row structure identified by column names
42
+ */
43
+ item: (idx: number) => Row | undefined;
39
44
  };
40
45
  export type ExecuteQuery = <Row extends QueryResultRow = QueryResultRow>(query: string, params?: SQLiteValue[]) => QueryResult<Row>;
41
46
  export type ExecuteAsyncQuery = <Row extends QueryResultRow = QueryResultRow>(query: string, params?: SQLiteQueryParams) => Promise<QueryResult<Row>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -22,33 +22,43 @@
22
22
  namespace margelo::nitro::rnnitrosqlite {
23
23
 
24
24
  int initialize(JavaVM* vm) {
25
+ return facebook::jni::initialize(vm, []() {
26
+ ::margelo::nitro::rnnitrosqlite::registerAllNatives();
27
+ });
28
+ }
29
+
30
+ struct JHybridNitroSQLiteOnLoadSpecImpl: public jni::JavaClass<JHybridNitroSQLiteOnLoadSpecImpl, JHybridNitroSQLiteOnLoadSpec::JavaPart> {
31
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoad;";
32
+ static std::shared_ptr<JHybridNitroSQLiteOnLoadSpec> create() {
33
+ static auto constructorFn = javaClassStatic()->getConstructor<JHybridNitroSQLiteOnLoadSpecImpl::javaobject()>();
34
+ jni::local_ref<JHybridNitroSQLiteOnLoadSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
35
+ return javaPart->getJHybridNitroSQLiteOnLoadSpec();
36
+ }
37
+ };
38
+
39
+ void registerAllNatives() {
25
40
  using namespace margelo::nitro;
26
41
  using namespace margelo::nitro::rnnitrosqlite;
27
- using namespace facebook;
28
-
29
- return facebook::jni::initialize(vm, [] {
30
- // Register native JNI methods
31
- margelo::nitro::rnnitrosqlite::JHybridNitroSQLiteOnLoadSpec::registerNatives();
32
-
33
- // Register Nitro Hybrid Objects
34
- HybridObjectRegistry::registerHybridObjectConstructor(
35
- "NitroSQLite",
36
- []() -> std::shared_ptr<HybridObject> {
37
- static_assert(std::is_default_constructible_v<HybridNitroSQLite>,
38
- "The HybridObject \"HybridNitroSQLite\" is not default-constructible! "
39
- "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
40
- return std::make_shared<HybridNitroSQLite>();
41
- }
42
- );
43
- HybridObjectRegistry::registerHybridObjectConstructor(
44
- "NitroSQLiteOnLoad",
45
- []() -> std::shared_ptr<HybridObject> {
46
- static DefaultConstructableObject<JHybridNitroSQLiteOnLoadSpec::javaobject> object("com/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoad");
47
- auto instance = object.create();
48
- return instance->cthis()->shared();
49
- }
50
- );
51
- });
42
+
43
+ // Register native JNI methods
44
+ margelo::nitro::rnnitrosqlite::JHybridNitroSQLiteOnLoadSpec::CxxPart::registerNatives();
45
+
46
+ // Register Nitro Hybrid Objects
47
+ HybridObjectRegistry::registerHybridObjectConstructor(
48
+ "NitroSQLite",
49
+ []() -> std::shared_ptr<HybridObject> {
50
+ static_assert(std::is_default_constructible_v<HybridNitroSQLite>,
51
+ "The HybridObject \"HybridNitroSQLite\" is not default-constructible! "
52
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
53
+ return std::make_shared<HybridNitroSQLite>();
54
+ }
55
+ );
56
+ HybridObjectRegistry::registerHybridObjectConstructor(
57
+ "NitroSQLiteOnLoad",
58
+ []() -> std::shared_ptr<HybridObject> {
59
+ return JHybridNitroSQLiteOnLoadSpecImpl::create();
60
+ }
61
+ );
52
62
  }
53
63
 
54
64
  } // namespace margelo::nitro::rnnitrosqlite
@@ -6,20 +6,29 @@
6
6
  ///
7
7
 
8
8
  #include <jni.h>
9
+ #include <functional>
9
10
  #include <NitroModules/NitroDefines.hpp>
10
11
 
11
12
  namespace margelo::nitro::rnnitrosqlite {
12
13
 
14
+ [[deprecated("Use registerNatives() instead.")]]
15
+ int initialize(JavaVM* vm);
16
+
13
17
  /**
14
- * Initializes the native (C++) part of RNNitroSQLite, and autolinks all Hybrid Objects.
15
- * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
18
+ * Register the native (C++) part of RNNitroSQLite, and autolinks all Hybrid Objects.
19
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
20
+ * inside a `facebook::jni::initialize(vm, ...)` call.
16
21
  * Example:
17
22
  * ```cpp (cpp-adapter.cpp)
18
23
  * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
- * return margelo::nitro::rnnitrosqlite::initialize(vm);
24
+ * return facebook::jni::initialize(vm, []() {
25
+ * // register all RNNitroSQLite HybridObjects
26
+ * margelo::nitro::rnnitrosqlite::registerNatives();
27
+ * // any other custom registrations go here.
28
+ * });
20
29
  * }
21
30
  * ```
22
31
  */
23
- int initialize(JavaVM* vm);
32
+ void registerAllNatives();
24
33
 
25
34
  } // namespace margelo::nitro::rnnitrosqlite
@@ -13,37 +13,31 @@
13
13
 
14
14
  namespace margelo::nitro::rnnitrosqlite {
15
15
 
16
- jni::local_ref<JHybridNitroSQLiteOnLoadSpec::jhybriddata> JHybridNitroSQLiteOnLoadSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
17
- return makeCxxInstance(jThis);
18
- }
19
-
20
- void JHybridNitroSQLiteOnLoadSpec::registerNatives() {
21
- registerHybrid({
22
- makeNativeMethod("initHybrid", JHybridNitroSQLiteOnLoadSpec::initHybrid),
23
- });
16
+ std::shared_ptr<JHybridNitroSQLiteOnLoadSpec> JHybridNitroSQLiteOnLoadSpec::JavaPart::getJHybridNitroSQLiteOnLoadSpec() {
17
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
18
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroSQLiteOnLoadSpec>(hybridObject);
19
+ if (castHybridObject == nullptr) [[unlikely]] {
20
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroSQLiteOnLoadSpec!");
21
+ }
22
+ return castHybridObject;
24
23
  }
25
24
 
26
- size_t JHybridNitroSQLiteOnLoadSpec::getExternalMemorySize() noexcept {
27
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
28
- return method(_javaPart);
25
+ jni::local_ref<JHybridNitroSQLiteOnLoadSpec::CxxPart::jhybriddata> JHybridNitroSQLiteOnLoadSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
26
+ return makeCxxInstance(jThis);
29
27
  }
30
28
 
31
- bool JHybridNitroSQLiteOnLoadSpec::equals(const std::shared_ptr<HybridObject>& other) {
32
- if (auto otherCast = std::dynamic_pointer_cast<JHybridNitroSQLiteOnLoadSpec>(other)) {
33
- return _javaPart == otherCast->_javaPart;
29
+ std::shared_ptr<JHybridObject> JHybridNitroSQLiteOnLoadSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
30
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroSQLiteOnLoadSpec::JavaPart>(javaPart);
31
+ if (castJavaPart == nullptr) [[unlikely]] {
32
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroSQLiteOnLoadSpec::JavaPart!");
34
33
  }
35
- return false;
36
- }
37
-
38
- void JHybridNitroSQLiteOnLoadSpec::dispose() noexcept {
39
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
40
- method(_javaPart);
34
+ return std::make_shared<JHybridNitroSQLiteOnLoadSpec>(castJavaPart);
41
35
  }
42
36
 
43
- std::string JHybridNitroSQLiteOnLoadSpec::toString() {
44
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
45
- auto javaString = method(_javaPart);
46
- return javaString->toStdString();
37
+ void JHybridNitroSQLiteOnLoadSpec::CxxPart::registerNatives() {
38
+ registerHybrid({
39
+ makeNativeMethod("initHybrid", JHybridNitroSQLiteOnLoadSpec::CxxPart::initHybrid),
40
+ });
47
41
  }
48
42
 
49
43
  // Properties
@@ -51,7 +45,7 @@ namespace margelo::nitro::rnnitrosqlite {
51
45
 
52
46
  // Methods
53
47
  void JHybridNitroSQLiteOnLoadSpec::init() {
54
- static const auto method = javaClassStatic()->getMethod<void()>("init");
48
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("init");
55
49
  method(_javaPart);
56
50
  }
57
51
 
@@ -18,34 +18,33 @@ namespace margelo::nitro::rnnitrosqlite {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridNitroSQLiteOnLoadSpec: public jni::HybridClass<JHybridNitroSQLiteOnLoadSpec, JHybridObject>,
22
- public virtual HybridNitroSQLiteOnLoadSpec {
21
+ class JHybridNitroSQLiteOnLoadSpec: public virtual HybridNitroSQLiteOnLoadSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoadSpec;";
25
- static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
- static void registerNatives();
27
-
28
- protected:
29
- // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridNitroSQLiteOnLoadSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridNitroSQLiteOnLoadSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoadSpec;";
25
+ std::shared_ptr<JHybridNitroSQLiteOnLoadSpec> getJHybridNitroSQLiteOnLoadSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoadSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
34
35
 
35
36
  public:
37
+ explicit JHybridNitroSQLiteOnLoadSpec(const jni::local_ref<JHybridNitroSQLiteOnLoadSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNitroSQLiteOnLoadSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridNitroSQLiteOnLoadSpec() override {
37
42
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
43
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
44
  }
40
45
 
41
46
  public:
42
- size_t getExternalMemorySize() noexcept override;
43
- bool equals(const std::shared_ptr<HybridObject>& other) override;
44
- void dispose() noexcept override;
45
- std::string toString() override;
46
-
47
- public:
48
- inline const jni::global_ref<JHybridNitroSQLiteOnLoadSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridNitroSQLiteOnLoadSpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -58,9 +57,7 @@ namespace margelo::nitro::rnnitrosqlite {
58
57
  void init() override;
59
58
 
60
59
  private:
61
- friend HybridBase;
62
- using HybridBase::HybridBase;
63
- jni::global_ref<JHybridNitroSQLiteOnLoadSpec::javaobject> _javaPart;
60
+ jni::global_ref<JHybridNitroSQLiteOnLoadSpec::JavaPart> _javaPart;
64
61
  };
65
62
 
66
63
  } // namespace margelo::nitro::rnnitrosqlite
@@ -24,32 +24,29 @@ import com.margelo.nitro.core.HybridObject
24
24
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
25
25
  )
26
26
  abstract class HybridNitroSQLiteOnLoadSpec: HybridObject() {
27
- @DoNotStrip
28
- private var mHybridData: HybridData = initHybrid()
29
-
30
- init {
31
- super.updateNative(mHybridData)
32
- }
27
+ // Properties
28
+
33
29
 
34
- override fun updateNative(hybridData: HybridData) {
35
- mHybridData = hybridData
36
- super.updateNative(hybridData)
37
- }
30
+ // Methods
31
+ @DoNotStrip
32
+ @Keep
33
+ abstract fun init(): Unit
38
34
 
39
35
  // Default implementation of `HybridObject.toString()`
40
36
  override fun toString(): String {
41
37
  return "[HybridObject NitroSQLiteOnLoad]"
42
38
  }
43
39
 
44
- // Properties
45
-
46
-
47
- // Methods
40
+ // C++ backing class
48
41
  @DoNotStrip
49
42
  @Keep
50
- abstract fun init(): Unit
51
-
52
- private external fun initHybrid(): HybridData
43
+ protected open class CxxPart(javaPart: HybridNitroSQLiteOnLoadSpec): HybridObject.CxxPart(javaPart) {
44
+ // C++ JHybridNitroSQLiteOnLoadSpec::CxxPart::initHybrid(...)
45
+ external override fun initHybrid(): HybridData
46
+ }
47
+ override fun createCxxPart(): CxxPart {
48
+ return CxxPart(this)
49
+ }
53
50
 
54
51
  companion object {
55
52
  protected const val TAG = "HybridNitroSQLiteOnLoadSpec"
@@ -17,7 +17,6 @@ namespace margelo::nitro::rnnitrosqlite {
17
17
  prototype.registerHybridGetter("rowsAffected", &HybridNitroSQLiteQueryResultSpec::getRowsAffected);
18
18
  prototype.registerHybridGetter("insertId", &HybridNitroSQLiteQueryResultSpec::getInsertId);
19
19
  prototype.registerHybridGetter("results", &HybridNitroSQLiteQueryResultSpec::getResults);
20
- prototype.registerHybridGetter("rows", &HybridNitroSQLiteQueryResultSpec::getRows);
21
20
  prototype.registerHybridGetter("metadata", &HybridNitroSQLiteQueryResultSpec::getMetadata);
22
21
  });
23
22
  }
@@ -13,8 +13,6 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `NitroSQLiteQueryResultRows` to properly resolve imports.
17
- namespace margelo::nitro::rnnitrosqlite { struct NitroSQLiteQueryResultRows; }
18
16
  // Forward declaration of `NitroSQLiteQueryColumnMetadata` to properly resolve imports.
19
17
  namespace margelo::nitro::rnnitrosqlite { struct NitroSQLiteQueryColumnMetadata; }
20
18
 
@@ -25,7 +23,6 @@ namespace margelo::nitro::rnnitrosqlite { struct NitroSQLiteQueryColumnMetadata;
25
23
  #include <variant>
26
24
  #include <unordered_map>
27
25
  #include <vector>
28
- #include "NitroSQLiteQueryResultRows.hpp"
29
26
  #include "NitroSQLiteQueryColumnMetadata.hpp"
30
27
 
31
28
  namespace margelo::nitro::rnnitrosqlite {
@@ -58,7 +55,6 @@ namespace margelo::nitro::rnnitrosqlite {
58
55
  virtual double getRowsAffected() = 0;
59
56
  virtual std::optional<double> getInsertId() = 0;
60
57
  virtual std::vector<std::unordered_map<std::string, std::variant<nitro::NullType, bool, std::shared_ptr<ArrayBuffer>, std::string, double>>> getResults() = 0;
61
- virtual std::optional<NitroSQLiteQueryResultRows> getRows() = 0;
62
58
  virtual std::optional<std::unordered_map<std::string, NitroSQLiteQueryColumnMetadata>> getMetadata() = 0;
63
59
 
64
60
  public:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-nitro-sqlite",
3
- "version": "9.3.0",
3
+ "version": "9.5.0",
4
4
  "description": "Fast SQLite library for React Native built using Nitro Modules",
5
5
  "main": "./lib/module/index",
6
6
  "module": "./lib/module/index",
@@ -70,16 +70,16 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "jest": "^30.2.0",
73
- "nitrogen": "0.33.5",
74
- "react": "19.1.1",
75
- "react-native": "0.82.1",
73
+ "nitrogen": "0.35.0",
74
+ "react": "19.2.3",
75
+ "react-native": "0.85.0-rc.0",
76
76
  "react-native-builder-bob": "^0.31.0",
77
- "react-native-nitro-modules": "0.33.5"
77
+ "react-native-nitro-modules": "0.35.0"
78
78
  },
79
79
  "peerDependencies": {
80
80
  "react": ">=17.0.0",
81
81
  "react-native": ">=0.75.0",
82
- "react-native-nitro-modules": ">=0.32.0"
82
+ "react-native-nitro-modules": ">=0.35.0"
83
83
  },
84
84
  "resolutions": {
85
85
  "@types/react": "^18.2.44"
@@ -93,7 +93,10 @@
93
93
  },
94
94
  "release-it": {
95
95
  "npm": {
96
- "publish": true
96
+ "publish": true,
97
+ "versionArgs": [
98
+ "--allow-same-version"
99
+ ]
97
100
  },
98
101
  "git": false,
99
102
  "github": {
package/src/index.ts CHANGED
@@ -21,9 +21,6 @@ export const NitroSQLite = {
21
21
  executeBatchAsync,
22
22
  }
23
23
 
24
- /** NOOP on NitroSQLite versions >= 9.3.0 */
25
- export function enableSimpleNullHandling() {}
26
-
27
24
  export { open } from './operations/session'
28
25
  export { default as NitroSQLiteError } from './NitroSQLiteError'
29
26
  export type * from './types'
@@ -1,7 +1,7 @@
1
1
  import { HybridNitroSQLite } from '../nitro'
2
- import type { NitroSQLiteQueryResult } from '../specs/NitroSQLiteQueryResult.nitro'
3
2
  import type { QueryResult, QueryResultRow, SQLiteQueryParams } from '../types'
4
3
  import NitroSQLiteError from '../NitroSQLiteError'
4
+ import type { NitroSQLiteQueryResult } from '../specs/NitroSQLiteQueryResult.nitro'
5
5
 
6
6
  export function execute<Row extends QueryResultRow = never>(
7
7
  dbName: string,
@@ -9,8 +9,8 @@ export function execute<Row extends QueryResultRow = never>(
9
9
  params?: SQLiteQueryParams,
10
10
  ): QueryResult<Row> {
11
11
  try {
12
- const result = HybridNitroSQLite.execute(dbName, query, params)
13
- return buildJsQueryResult<Row>(result)
12
+ const nativeResult = HybridNitroSQLite.execute(dbName, query, params)
13
+ return buildJSQueryResult<Row>(nativeResult)
14
14
  } catch (error) {
15
15
  throw NitroSQLiteError.fromError(error)
16
16
  }
@@ -22,26 +22,35 @@ export async function executeAsync<Row extends QueryResultRow = never>(
22
22
  params?: SQLiteQueryParams,
23
23
  ): Promise<QueryResult<Row>> {
24
24
  try {
25
- const result = await HybridNitroSQLite.executeAsync(dbName, query, params)
26
- return buildJsQueryResult<Row>(result)
25
+ const nativeResult = await HybridNitroSQLite.executeAsync(
26
+ dbName,
27
+ query,
28
+ params,
29
+ )
30
+ return buildJSQueryResult<Row>(nativeResult)
27
31
  } catch (error) {
28
32
  throw NitroSQLiteError.fromError(error)
29
33
  }
30
34
  }
31
35
 
32
- function buildJsQueryResult<Row extends QueryResultRow = never>(
36
+ function buildJSQueryResult<Row extends QueryResultRow = never>(
33
37
  result: NitroSQLiteQueryResult,
34
38
  ): QueryResult<Row> {
35
- const data = result.results as Row[]
39
+ const resultWithRows = result as QueryResult<Row>
40
+
41
+ resultWithRows.rows = {
42
+ _array: result.results as Row[],
43
+ length: result.results.length,
44
+ item: (idx: number) => result.results[idx] as Row | undefined,
45
+ }
46
+
47
+ return resultWithRows
36
48
 
37
- return {
38
- ...result,
39
- insertId: result.insertId,
40
- rowsAffected: result.rowsAffected,
41
- rows: {
42
- _array: data,
43
- length: data.length,
44
- item: (idx: number) => data[idx],
45
- },
46
- } as QueryResult<Row>
49
+ // return Object.assign(result, {
50
+ // rows: {
51
+ // _array: result.results,
52
+ // length: result.results.length,
53
+ // item: (idx: number) => result.results[idx],
54
+ // },
55
+ // })
47
56
  }
@@ -19,9 +19,6 @@ export interface NitroSQLiteQueryResult
19
19
  /** Query results */
20
20
  readonly results: Record<string, SQLiteValue>[]
21
21
 
22
- /** Query results in a row format for TypeORM compatibility */
23
- readonly rows?: NitroSQLiteQueryResultRows
24
-
25
22
  /** Table metadata */
26
23
  readonly metadata?: Record<string, NitroSQLiteQueryColumnMetadata>
27
24
  }
@@ -33,20 +30,6 @@ export interface NitroSQLiteQueryResult
33
30
 
34
31
  // type NitroQueryResultRow = Record<string, SQLiteValue>
35
32
 
36
- export type NitroSQLiteQueryResultRows<
37
- Row extends Record<string, SQLiteValue> = Record<string, SQLiteValue>,
38
- > = {
39
- /** Raw array with all dataset */
40
- _array: Row[]
41
- /** The lengh of the dataset */
42
- length: number
43
- /** A convenience function to acess the index based the row object
44
- * @param idx the row index
45
- * @returns the row structure identified by column names
46
- */
47
- item: (idx: number) => Row | undefined
48
- }
49
-
50
33
  export type NitroSQLiteQueryColumnMetadata = {
51
34
  /** The name used for this column for this result set */
52
35
  name: string