@effect/sql-sqlite-react-native 4.0.0-beta.66 → 4.0.0-beta.67
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/dist/SqliteClient.d.ts +30 -10
- package/dist/SqliteClient.d.ts.map +1 -1
- package/dist/SqliteClient.js +37 -8
- package/dist/SqliteClient.js.map +1 -1
- package/dist/SqliteMigrator.d.ts +26 -4
- package/dist/SqliteMigrator.d.ts.map +1 -1
- package/dist/SqliteMigrator.js +7 -3
- package/dist/SqliteMigrator.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/package.json +4 -4
- package/src/SqliteClient.ts +46 -11
- package/src/SqliteMigrator.ts +26 -4
- package/src/index.ts +3 -3
package/dist/SqliteClient.d.ts
CHANGED
|
@@ -6,18 +6,24 @@ import * as Scope from "effect/Scope";
|
|
|
6
6
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
7
7
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
8
8
|
/**
|
|
9
|
+
* Runtime identifier attached to SQLite React Native client values.
|
|
10
|
+
*
|
|
9
11
|
* @category type ids
|
|
10
|
-
* @since
|
|
12
|
+
* @since 4.0.0
|
|
11
13
|
*/
|
|
12
14
|
export declare const TypeId: TypeId;
|
|
13
15
|
/**
|
|
16
|
+
* Type-level identifier for SQLite React Native client values.
|
|
17
|
+
*
|
|
14
18
|
* @category type ids
|
|
15
|
-
* @since
|
|
19
|
+
* @since 4.0.0
|
|
16
20
|
*/
|
|
17
21
|
export type TypeId = "~@effect/sql-sqlite-react-native/SqliteClient";
|
|
18
22
|
/**
|
|
23
|
+
* React Native SQLite client service interface, extending `SqlClient` with its configuration and marking `updateValues` as unsupported for SQLite.
|
|
24
|
+
*
|
|
19
25
|
* @category models
|
|
20
|
-
* @since
|
|
26
|
+
* @since 4.0.0
|
|
21
27
|
*/
|
|
22
28
|
export interface SqliteClient extends Client.SqlClient {
|
|
23
29
|
readonly [TypeId]: TypeId;
|
|
@@ -26,13 +32,17 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
26
32
|
readonly updateValues: never;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
35
|
+
* Context service tag for the React Native SQLite client.
|
|
36
|
+
*
|
|
29
37
|
* @category tags
|
|
30
|
-
* @since
|
|
38
|
+
* @since 4.0.0
|
|
31
39
|
*/
|
|
32
40
|
export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
|
|
33
41
|
/**
|
|
42
|
+
* Configuration for a React Native SQLite client, including the database filename, optional location and encryption key, span attributes, and query/result name transforms.
|
|
43
|
+
*
|
|
34
44
|
* @category models
|
|
35
|
-
* @since
|
|
45
|
+
* @since 4.0.0
|
|
36
46
|
*/
|
|
37
47
|
export interface SqliteClientConfig {
|
|
38
48
|
readonly filename: string;
|
|
@@ -43,28 +53,38 @@ export interface SqliteClientConfig {
|
|
|
43
53
|
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
44
54
|
}
|
|
45
55
|
/**
|
|
56
|
+
* Fiber-local flag that makes the React Native SQLite client run queries through the asynchronous `execute` API instead of `executeSync`.
|
|
57
|
+
*
|
|
46
58
|
* @category fiber refs
|
|
47
|
-
* @since
|
|
59
|
+
* @since 4.0.0
|
|
48
60
|
*/
|
|
49
61
|
export declare const AsyncQuery: Context.Reference<boolean>;
|
|
50
62
|
/**
|
|
63
|
+
* Runs an effect with `AsyncQuery` enabled, causing React Native SQLite queries in that effect to use the asynchronous driver API.
|
|
64
|
+
*
|
|
51
65
|
* @category fiber refs
|
|
52
|
-
* @since
|
|
66
|
+
* @since 4.0.0
|
|
53
67
|
*/
|
|
54
68
|
export declare const withAsyncQuery: <R, E, A>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, never>>;
|
|
55
69
|
/**
|
|
70
|
+
* Creates a scoped React Native SQLite client from the supplied configuration, using a single serialized connection and honoring `AsyncQuery` for query execution.
|
|
71
|
+
*
|
|
56
72
|
* @category constructor
|
|
57
|
-
* @since
|
|
73
|
+
* @since 4.0.0
|
|
58
74
|
*/
|
|
59
75
|
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>;
|
|
60
76
|
/**
|
|
77
|
+
* Builds a layer from an Effect `Config` value, providing both the React Native `SqliteClient` service and the generic `SqlClient` service.
|
|
78
|
+
*
|
|
61
79
|
* @category layers
|
|
62
|
-
* @since
|
|
80
|
+
* @since 4.0.0
|
|
63
81
|
*/
|
|
64
82
|
export declare const layerConfig: (config: Config.Wrap<SqliteClientConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError>;
|
|
65
83
|
/**
|
|
84
|
+
* Builds a layer from a React Native SQLite client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
85
|
+
*
|
|
66
86
|
* @category layers
|
|
67
|
-
* @since
|
|
87
|
+
* @since 4.0.0
|
|
68
88
|
*/
|
|
69
89
|
export declare const layer: (config: SqliteClientConfig) => Layer.Layer<SqliteClient | Client.SqlClient>;
|
|
70
90
|
//# sourceMappingURL=SqliteClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAUvD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,MAAwD,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,+CAA+C,CAAA;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,6CAAgF,CAAA;AAEzG;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,4BAGtB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CACrB,CAAA;AAIjD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAmGrE,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
|
package/dist/SqliteClient.js
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Provides a React Native SQLite `SqlClient` backed by `@op-engineering/op-sqlite`.
|
|
3
|
+
*
|
|
4
|
+
* Use this module to open an on-device SQLite database, expose it as both the
|
|
5
|
+
* React Native-specific `SqliteClient` and the generic Effect `SqlClient`, and
|
|
6
|
+
* run application queries, migrations, and transactional reads or writes from
|
|
7
|
+
* Effect services and layers.
|
|
8
|
+
*
|
|
9
|
+
* The client uses one serialized connection. Regular queries and transactions
|
|
10
|
+
* share that handle, and a transaction holds it for the lifetime of its scope,
|
|
11
|
+
* so keep mobile transactions short and wrap multi-statement writes in a
|
|
12
|
+
* transaction to avoid partial updates. By default statements use the driver's
|
|
13
|
+
* synchronous API, which can block the JavaScript thread; `withAsyncQuery`
|
|
14
|
+
* switches a fiber to the asynchronous driver API when UI responsiveness is more
|
|
15
|
+
* important than sync execution.
|
|
16
|
+
*
|
|
17
|
+
* @since 4.0.0
|
|
3
18
|
*/
|
|
4
19
|
import * as Sqlite from "@op-engineering/op-sqlite";
|
|
5
20
|
import * as Config from "effect/Config";
|
|
@@ -21,30 +36,40 @@ const classifyError = (cause, message, operation) => classifySqliteError(cause,
|
|
|
21
36
|
operation
|
|
22
37
|
});
|
|
23
38
|
/**
|
|
39
|
+
* Runtime identifier attached to SQLite React Native client values.
|
|
40
|
+
*
|
|
24
41
|
* @category type ids
|
|
25
|
-
* @since
|
|
42
|
+
* @since 4.0.0
|
|
26
43
|
*/
|
|
27
44
|
export const TypeId = "~@effect/sql-sqlite-react-native/SqliteClient";
|
|
28
45
|
/**
|
|
46
|
+
* Context service tag for the React Native SQLite client.
|
|
47
|
+
*
|
|
29
48
|
* @category tags
|
|
30
|
-
* @since
|
|
49
|
+
* @since 4.0.0
|
|
31
50
|
*/
|
|
32
51
|
export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-react-native/SqliteClient");
|
|
33
52
|
/**
|
|
53
|
+
* Fiber-local flag that makes the React Native SQLite client run queries through the asynchronous `execute` API instead of `executeSync`.
|
|
54
|
+
*
|
|
34
55
|
* @category fiber refs
|
|
35
|
-
* @since
|
|
56
|
+
* @since 4.0.0
|
|
36
57
|
*/
|
|
37
58
|
export const AsyncQuery = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-react-native/Client/asyncQuery", {
|
|
38
59
|
defaultValue: constFalse
|
|
39
60
|
});
|
|
40
61
|
/**
|
|
62
|
+
* Runs an effect with `AsyncQuery` enabled, causing React Native SQLite queries in that effect to use the asynchronous driver API.
|
|
63
|
+
*
|
|
41
64
|
* @category fiber refs
|
|
42
|
-
* @since
|
|
65
|
+
* @since 4.0.0
|
|
43
66
|
*/
|
|
44
67
|
export const withAsyncQuery = effect => Effect.provideService(effect, AsyncQuery, true);
|
|
45
68
|
/**
|
|
69
|
+
* Creates a scoped React Native SQLite client from the supplied configuration, using a single serialized connection and honoring `AsyncQuery` for query execution.
|
|
70
|
+
*
|
|
46
71
|
* @category constructor
|
|
47
|
-
* @since
|
|
72
|
+
* @since 4.0.0
|
|
48
73
|
*/
|
|
49
74
|
export const make = options => Effect.gen(function* () {
|
|
50
75
|
const clientOptions = {
|
|
@@ -118,13 +143,17 @@ export const make = options => Effect.gen(function* () {
|
|
|
118
143
|
});
|
|
119
144
|
});
|
|
120
145
|
/**
|
|
146
|
+
* Builds a layer from an Effect `Config` value, providing both the React Native `SqliteClient` service and the generic `SqlClient` service.
|
|
147
|
+
*
|
|
121
148
|
* @category layers
|
|
122
|
-
* @since
|
|
149
|
+
* @since 4.0.0
|
|
123
150
|
*/
|
|
124
151
|
export const layerConfig = config => Layer.effectContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
125
152
|
/**
|
|
153
|
+
* Builds a layer from a React Native SQLite client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
154
|
+
*
|
|
126
155
|
* @category layers
|
|
127
|
-
* @since
|
|
156
|
+
* @since 4.0.0
|
|
128
157
|
*/
|
|
129
158
|
export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
130
159
|
//# sourceMappingURL=SqliteClient.js.map
|
package/dist/SqliteClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["Sqlite","Config","Context","Effect","Fiber","constFalse","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","AsyncQuery","Reference","defaultValue","withAsyncQuery","effect","provideService","make","options","gen","clientOptions","name","filename","location","encryptionKey","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","open","addFinalizer","sync","close","run","sql","params","values","withFiber","fiber","getRef","map","tryPromise","try","execute","catch","reason","result","rawRows","rows","executeSync","executeRaw","executeValues","executeUnprepared","executeStream","die","semaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","context","as","tap","take","release","Object","assign","spanAttributes","entries","config","layerConfig","effectContext","unwrap","pipe","flatMap","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Sqlite","Config","Context","Effect","Fiber","constFalse","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","AsyncQuery","Reference","defaultValue","withAsyncQuery","effect","provideService","make","options","gen","clientOptions","name","filename","location","encryptionKey","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","open","addFinalizer","sync","close","run","sql","params","values","withFiber","fiber","getRef","map","tryPromise","try","execute","catch","reason","result","rawRows","rows","executeSync","executeRaw","executeValues","executeUnprepared","executeStream","die","semaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","context","as","tap","take","release","Object","assign","spanAttributes","entries","config","layerConfig","effectContext","unwrap","pipe","flatMap","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/SqliteMigrator.d.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to React Native SQLite databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers that execute ordered migrations through the
|
|
6
|
+
* current React Native SQLite `SqlClient`. Use it when a mobile app needs to
|
|
7
|
+
* bring its on-device database schema up to date during startup, before opening
|
|
8
|
+
* repositories or sync services, or in integration tests that create app-local
|
|
9
|
+
* database files.
|
|
10
|
+
*
|
|
11
|
+
* React Native SQLite databases are scoped by the client configuration, so the
|
|
12
|
+
* migrator should be run with the same `filename`, `location`, and encryption
|
|
13
|
+
* key as the rest of the application. Migrations run through the package's
|
|
14
|
+
* single serialized connection; by default statements use the synchronous
|
|
15
|
+
* driver API and can block the JS thread, so long migration sets may want to run
|
|
16
|
+
* under `SqliteClient.withAsyncQuery`. Mobile upgrades can be interrupted by app
|
|
17
|
+
* suspension or process death, so keep migrations transaction-aware and avoid
|
|
18
|
+
* assuming a fresh database on every launch.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
3
21
|
*/
|
|
4
22
|
import type * as Effect from "effect/Effect";
|
|
5
23
|
import * as Layer from "effect/Layer";
|
|
@@ -7,17 +25,21 @@ import * as Migrator from "effect/unstable/sql/Migrator";
|
|
|
7
25
|
import type * as Client from "effect/unstable/sql/SqlClient";
|
|
8
26
|
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
27
|
/**
|
|
10
|
-
* @since
|
|
28
|
+
* @since 4.0.0
|
|
11
29
|
*/
|
|
12
30
|
export * from "effect/unstable/sql/Migrator";
|
|
13
31
|
/**
|
|
32
|
+
* Runs SQL migrations for a React Native SQLite database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
33
|
+
*
|
|
14
34
|
* @category constructor
|
|
15
|
-
* @since
|
|
35
|
+
* @since 4.0.0
|
|
16
36
|
*/
|
|
17
37
|
export declare const run: <R>(options: Migrator.MigratorOptions<R>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, SqlError | Migrator.MigrationError, Client.SqlClient | R>;
|
|
18
38
|
/**
|
|
39
|
+
* Creates a layer that runs the configured React Native SQLite migrations during layer construction and provides no services.
|
|
40
|
+
*
|
|
19
41
|
* @category constructor
|
|
20
|
-
* @since
|
|
42
|
+
* @since 4.0.0
|
|
21
43
|
*/
|
|
22
44
|
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, SqlError | Migrator.MigrationError, R | Client.SqlClient>;
|
|
23
45
|
//# sourceMappingURL=SqliteMigrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,EAClB,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACjC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACD,CAAA;AAErB;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAsC,CAAA"}
|
package/dist/SqliteMigrator.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer";
|
|
2
2
|
import * as Migrator from "effect/unstable/sql/Migrator";
|
|
3
3
|
/**
|
|
4
|
-
* @since
|
|
4
|
+
* @since 4.0.0
|
|
5
5
|
*/
|
|
6
6
|
export * from "effect/unstable/sql/Migrator";
|
|
7
7
|
/**
|
|
8
|
+
* Runs SQL migrations for a React Native SQLite database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
9
|
+
*
|
|
8
10
|
* @category constructor
|
|
9
|
-
* @since
|
|
11
|
+
* @since 4.0.0
|
|
10
12
|
*/
|
|
11
13
|
export const run = /*#__PURE__*/Migrator.make({});
|
|
12
14
|
/**
|
|
15
|
+
* Creates a layer that runs the configured React Native SQLite migrations during layer construction and provides no services.
|
|
16
|
+
*
|
|
13
17
|
* @category constructor
|
|
14
|
-
* @since
|
|
18
|
+
* @since 4.0.0
|
|
15
19
|
*/
|
|
16
20
|
export const layer = options => Layer.effectDiscard(run(options));
|
|
17
21
|
//# sourceMappingURL=SqliteMigrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/SqliteMigrator.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"SqliteMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/SqliteMigrator.ts"],"sourcesContent":[null],"mappings":"AAsBA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;;;AAMA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC,EAAE,CAAC;AAErB;;;;;;AAMA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAC6CL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* @since
|
|
5
|
+
* @since 4.0.0
|
|
6
6
|
*/
|
|
7
7
|
export * as SqliteClient from "./SqliteClient.ts";
|
|
8
8
|
/**
|
|
9
|
-
* @since
|
|
9
|
+
* @since 4.0.0
|
|
10
10
|
*/
|
|
11
11
|
export * as SqliteMigrator from "./SqliteMigrator.ts";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
5
5
|
/**
|
|
6
|
-
* @since
|
|
6
|
+
* @since 4.0.0
|
|
7
7
|
*/
|
|
8
8
|
export * as SqliteClient from "./SqliteClient.js";
|
|
9
9
|
/**
|
|
10
|
-
* @since
|
|
10
|
+
* @since 4.0.0
|
|
11
11
|
*/
|
|
12
12
|
export * as SqliteMigrator from "./SqliteMigrator.js";
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-sqlite-react-native",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.67",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A SQLite toolkit for Effect",
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@op-engineering/op-sqlite": "15.2.
|
|
47
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"@op-engineering/op-sqlite": "15.2.12",
|
|
47
|
+
"effect": "^4.0.0-beta.67"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@op-engineering/op-sqlite": "15.0.4",
|
|
51
|
-
"effect": "^4.0.0-beta.
|
|
51
|
+
"effect": "^4.0.0-beta.67"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"codegen": "effect-utils codegen",
|
package/src/SqliteClient.ts
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Provides a React Native SQLite `SqlClient` backed by `@op-engineering/op-sqlite`.
|
|
3
|
+
*
|
|
4
|
+
* Use this module to open an on-device SQLite database, expose it as both the
|
|
5
|
+
* React Native-specific `SqliteClient` and the generic Effect `SqlClient`, and
|
|
6
|
+
* run application queries, migrations, and transactional reads or writes from
|
|
7
|
+
* Effect services and layers.
|
|
8
|
+
*
|
|
9
|
+
* The client uses one serialized connection. Regular queries and transactions
|
|
10
|
+
* share that handle, and a transaction holds it for the lifetime of its scope,
|
|
11
|
+
* so keep mobile transactions short and wrap multi-statement writes in a
|
|
12
|
+
* transaction to avoid partial updates. By default statements use the driver's
|
|
13
|
+
* synchronous API, which can block the JavaScript thread; `withAsyncQuery`
|
|
14
|
+
* switches a fiber to the asynchronous driver API when UI responsiveness is more
|
|
15
|
+
* important than sync execution.
|
|
16
|
+
*
|
|
17
|
+
* @since 4.0.0
|
|
3
18
|
*/
|
|
4
19
|
import * as Sqlite from "@op-engineering/op-sqlite"
|
|
5
20
|
import * as Config from "effect/Config"
|
|
@@ -23,20 +38,26 @@ const classifyError = (cause: unknown, message: string, operation: string) =>
|
|
|
23
38
|
classifySqliteError(cause, { message, operation })
|
|
24
39
|
|
|
25
40
|
/**
|
|
41
|
+
* Runtime identifier attached to SQLite React Native client values.
|
|
42
|
+
*
|
|
26
43
|
* @category type ids
|
|
27
|
-
* @since
|
|
44
|
+
* @since 4.0.0
|
|
28
45
|
*/
|
|
29
46
|
export const TypeId: TypeId = "~@effect/sql-sqlite-react-native/SqliteClient"
|
|
30
47
|
|
|
31
48
|
/**
|
|
49
|
+
* Type-level identifier for SQLite React Native client values.
|
|
50
|
+
*
|
|
32
51
|
* @category type ids
|
|
33
|
-
* @since
|
|
52
|
+
* @since 4.0.0
|
|
34
53
|
*/
|
|
35
54
|
export type TypeId = "~@effect/sql-sqlite-react-native/SqliteClient"
|
|
36
55
|
|
|
37
56
|
/**
|
|
57
|
+
* React Native SQLite client service interface, extending `SqlClient` with its configuration and marking `updateValues` as unsupported for SQLite.
|
|
58
|
+
*
|
|
38
59
|
* @category models
|
|
39
|
-
* @since
|
|
60
|
+
* @since 4.0.0
|
|
40
61
|
*/
|
|
41
62
|
export interface SqliteClient extends Client.SqlClient {
|
|
42
63
|
readonly [TypeId]: TypeId
|
|
@@ -47,14 +68,18 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
47
68
|
}
|
|
48
69
|
|
|
49
70
|
/**
|
|
71
|
+
* Context service tag for the React Native SQLite client.
|
|
72
|
+
*
|
|
50
73
|
* @category tags
|
|
51
|
-
* @since
|
|
74
|
+
* @since 4.0.0
|
|
52
75
|
*/
|
|
53
76
|
export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-react-native/SqliteClient")
|
|
54
77
|
|
|
55
78
|
/**
|
|
79
|
+
* Configuration for a React Native SQLite client, including the database filename, optional location and encryption key, span attributes, and query/result name transforms.
|
|
80
|
+
*
|
|
56
81
|
* @category models
|
|
57
|
-
* @since
|
|
82
|
+
* @since 4.0.0
|
|
58
83
|
*/
|
|
59
84
|
export interface SqliteClientConfig {
|
|
60
85
|
readonly filename: string
|
|
@@ -66,8 +91,10 @@ export interface SqliteClientConfig {
|
|
|
66
91
|
}
|
|
67
92
|
|
|
68
93
|
/**
|
|
94
|
+
* Fiber-local flag that makes the React Native SQLite client run queries through the asynchronous `execute` API instead of `executeSync`.
|
|
95
|
+
*
|
|
69
96
|
* @category fiber refs
|
|
70
|
-
* @since
|
|
97
|
+
* @since 4.0.0
|
|
71
98
|
*/
|
|
72
99
|
export const AsyncQuery = Context.Reference<boolean>(
|
|
73
100
|
"@effect/sql-sqlite-react-native/Client/asyncQuery",
|
|
@@ -75,8 +102,10 @@ export const AsyncQuery = Context.Reference<boolean>(
|
|
|
75
102
|
)
|
|
76
103
|
|
|
77
104
|
/**
|
|
105
|
+
* Runs an effect with `AsyncQuery` enabled, causing React Native SQLite queries in that effect to use the asynchronous driver API.
|
|
106
|
+
*
|
|
78
107
|
* @category fiber refs
|
|
79
|
-
* @since
|
|
108
|
+
* @since 4.0.0
|
|
80
109
|
*/
|
|
81
110
|
export const withAsyncQuery = <R, E, A>(effect: Effect.Effect<A, E, R>) =>
|
|
82
111
|
Effect.provideService(effect, AsyncQuery, true)
|
|
@@ -84,8 +113,10 @@ export const withAsyncQuery = <R, E, A>(effect: Effect.Effect<A, E, R>) =>
|
|
|
84
113
|
interface SqliteConnection extends Connection {}
|
|
85
114
|
|
|
86
115
|
/**
|
|
116
|
+
* Creates a scoped React Native SQLite client from the supplied configuration, using a single serialized connection and honoring `AsyncQuery` for query execution.
|
|
117
|
+
*
|
|
87
118
|
* @category constructor
|
|
88
|
-
* @since
|
|
119
|
+
* @since 4.0.0
|
|
89
120
|
*/
|
|
90
121
|
export const make = (
|
|
91
122
|
options: SqliteClientConfig
|
|
@@ -191,8 +222,10 @@ export const make = (
|
|
|
191
222
|
})
|
|
192
223
|
|
|
193
224
|
/**
|
|
225
|
+
* Builds a layer from an Effect `Config` value, providing both the React Native `SqliteClient` service and the generic `SqlClient` service.
|
|
226
|
+
*
|
|
194
227
|
* @category layers
|
|
195
|
-
* @since
|
|
228
|
+
* @since 4.0.0
|
|
196
229
|
*/
|
|
197
230
|
export const layerConfig = (
|
|
198
231
|
config: Config.Wrap<SqliteClientConfig>
|
|
@@ -209,8 +242,10 @@ export const layerConfig = (
|
|
|
209
242
|
).pipe(Layer.provide(Reactivity.layer))
|
|
210
243
|
|
|
211
244
|
/**
|
|
245
|
+
* Builds a layer from a React Native SQLite client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
246
|
+
*
|
|
212
247
|
* @category layers
|
|
213
|
-
* @since
|
|
248
|
+
* @since 4.0.0
|
|
214
249
|
*/
|
|
215
250
|
export const layer = (
|
|
216
251
|
config: SqliteClientConfig
|
package/src/SqliteMigrator.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to React Native SQLite databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers that execute ordered migrations through the
|
|
6
|
+
* current React Native SQLite `SqlClient`. Use it when a mobile app needs to
|
|
7
|
+
* bring its on-device database schema up to date during startup, before opening
|
|
8
|
+
* repositories or sync services, or in integration tests that create app-local
|
|
9
|
+
* database files.
|
|
10
|
+
*
|
|
11
|
+
* React Native SQLite databases are scoped by the client configuration, so the
|
|
12
|
+
* migrator should be run with the same `filename`, `location`, and encryption
|
|
13
|
+
* key as the rest of the application. Migrations run through the package's
|
|
14
|
+
* single serialized connection; by default statements use the synchronous
|
|
15
|
+
* driver API and can block the JS thread, so long migration sets may want to run
|
|
16
|
+
* under `SqliteClient.withAsyncQuery`. Mobile upgrades can be interrupted by app
|
|
17
|
+
* suspension or process death, so keep migrations transaction-aware and avoid
|
|
18
|
+
* assuming a fresh database on every launch.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
3
21
|
*/
|
|
4
22
|
import type * as Effect from "effect/Effect"
|
|
5
23
|
import * as Layer from "effect/Layer"
|
|
@@ -8,13 +26,15 @@ import type * as Client from "effect/unstable/sql/SqlClient"
|
|
|
8
26
|
import type { SqlError } from "effect/unstable/sql/SqlError"
|
|
9
27
|
|
|
10
28
|
/**
|
|
11
|
-
* @since
|
|
29
|
+
* @since 4.0.0
|
|
12
30
|
*/
|
|
13
31
|
export * from "effect/unstable/sql/Migrator"
|
|
14
32
|
|
|
15
33
|
/**
|
|
34
|
+
* Runs SQL migrations for a React Native SQLite database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
35
|
+
*
|
|
16
36
|
* @category constructor
|
|
17
|
-
* @since
|
|
37
|
+
* @since 4.0.0
|
|
18
38
|
*/
|
|
19
39
|
export const run: <R>(
|
|
20
40
|
options: Migrator.MigratorOptions<R>
|
|
@@ -25,8 +45,10 @@ export const run: <R>(
|
|
|
25
45
|
> = Migrator.make({})
|
|
26
46
|
|
|
27
47
|
/**
|
|
48
|
+
* Creates a layer that runs the configured React Native SQLite migrations during layer construction and provides no services.
|
|
49
|
+
*
|
|
28
50
|
* @category constructor
|
|
29
|
-
* @since
|
|
51
|
+
* @since 4.0.0
|
|
30
52
|
*/
|
|
31
53
|
export const layer = <R>(
|
|
32
54
|
options: Migrator.MigratorOptions<R>
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @since
|
|
8
|
+
* @since 4.0.0
|
|
9
9
|
*/
|
|
10
10
|
export * as SqliteClient from "./SqliteClient.ts"
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* @since
|
|
13
|
+
* @since 4.0.0
|
|
14
14
|
*/
|
|
15
15
|
export * as SqliteMigrator from "./SqliteMigrator.ts"
|