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.
- package/android/CMakeLists.txt +1 -1
- package/cpp/NitroSQLiteException.hpp +1 -2
- package/cpp/{specs → hybridObjects}/HybridNitroSQLite.cpp +56 -9
- package/cpp/hybridObjects/HybridNitroSQLiteQueryResult.cpp +93 -0
- package/cpp/hybridObjects/HybridNitroSQLiteQueryResult.hpp +47 -0
- package/cpp/operations.cpp +13 -9
- package/cpp/operations.hpp +3 -1
- package/cpp/sqliteExecuteBatch.cpp +1 -1
- package/cpp/types.hpp +1 -10
- package/ios/NitroSQLite.xcodeproj/project.pbxproj +2 -2
- package/lib/commonjs/index.js +0 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/operations/execute.js +19 -15
- package/lib/commonjs/operations/execute.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/index.js +0 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/operations/execute.js +19 -15
- package/lib/module/operations/execute.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +0 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/operations/execute.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts +0 -13
- package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +13 -8
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +0 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/operations/execute.d.ts.map +1 -1
- package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts +0 -13
- package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +13 -8
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/nitrogen/generated/android/RNNitroSQLiteOnLoad.cpp +35 -25
- package/nitrogen/generated/android/RNNitroSQLiteOnLoad.hpp +13 -4
- package/nitrogen/generated/android/c++/JHybridNitroSQLiteOnLoadSpec.cpp +19 -25
- package/nitrogen/generated/android/c++/JHybridNitroSQLiteOnLoadSpec.hpp +19 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rnnitrosqlite/HybridNitroSQLiteOnLoadSpec.kt +14 -17
- package/nitrogen/generated/shared/c++/HybridNitroSQLiteQueryResultSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridNitroSQLiteQueryResultSpec.hpp +0 -4
- package/package.json +10 -7
- package/src/index.ts +0 -3
- package/src/operations/execute.ts +26 -17
- package/src/specs/NitroSQLiteQueryResult.nitro.ts +0 -17
- package/src/types.ts +17 -14
- package/cpp/specs/HybridNitroSQLiteQueryResult.cpp +0 -49
- package/cpp/specs/HybridNitroSQLiteQueryResult.hpp +0 -28
- package/nitrogen/generated/shared/c++/NitroSQLiteQueryResultRows.hpp +0 -99
- /package/cpp/{specs → hybridObjects}/HybridNitroSQLite.hpp +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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":"AAAA,OAAO,KAAK,
|
|
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,
|
|
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":"
|
|
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,
|
|
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 {
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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":"AAAA,OAAO,KAAK,
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
*
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
27
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
|
22
|
-
public virtual HybridNitroSQLiteOnLoadSpec {
|
|
21
|
+
class JHybridNitroSQLiteOnLoadSpec: public virtual HybridNitroSQLiteOnLoadSpec, public virtual JHybridObject {
|
|
23
22
|
public:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
HybridBase
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
init {
|
|
31
|
-
super.updateNative(mHybridData)
|
|
32
|
-
}
|
|
27
|
+
// Properties
|
|
28
|
+
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
// Methods
|
|
40
|
+
// C++ backing class
|
|
48
41
|
@DoNotStrip
|
|
49
42
|
@Keep
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
+
"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.
|
|
74
|
-
"react": "19.
|
|
75
|
-
"react-native": "0.
|
|
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.
|
|
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.
|
|
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
|
|
13
|
-
return
|
|
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
|
|
26
|
-
|
|
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
|
|
36
|
+
function buildJSQueryResult<Row extends QueryResultRow = never>(
|
|
33
37
|
result: NitroSQLiteQueryResult,
|
|
34
38
|
): QueryResult<Row> {
|
|
35
|
-
const
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|