@effect/sql-sqlite-node 4.0.0-beta.66 → 4.0.0-beta.68
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 -12
- package/dist/SqliteClient.d.ts.map +1 -1
- package/dist/SqliteClient.js +32 -8
- package/dist/SqliteClient.js.map +1 -1
- package/dist/SqliteMigrator.d.ts +25 -6
- package/dist/SqliteMigrator.d.ts.map +1 -1
- package/dist/SqliteMigrator.js +9 -5
- package/dist/SqliteMigrator.js.map +1 -1
- package/dist/index.d.ts +32 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/SqliteClient.ts +45 -13
- package/src/SqliteMigrator.ts +25 -6
- package/src/index.ts +32 -3
package/dist/SqliteClient.d.ts
CHANGED
|
@@ -8,18 +8,24 @@ import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
|
8
8
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
9
9
|
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Runtime type identifier used to mark Node `SqliteClient` values.
|
|
12
|
+
*
|
|
13
|
+
* @category type IDs
|
|
14
|
+
* @since 4.0.0
|
|
13
15
|
*/
|
|
14
16
|
export declare const TypeId: TypeId;
|
|
15
17
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
+
* Type-level identifier used to mark Node `SqliteClient` values.
|
|
19
|
+
*
|
|
20
|
+
* @category type IDs
|
|
21
|
+
* @since 4.0.0
|
|
18
22
|
*/
|
|
19
23
|
export type TypeId = "~@effect/sql-sqlite-node/SqliteClient";
|
|
20
24
|
/**
|
|
25
|
+
* Node SQLite client service, extending `SqlClient` with database export, backup, and extension loading helpers. `updateValues` is not supported.
|
|
26
|
+
*
|
|
21
27
|
* @category models
|
|
22
|
-
* @since
|
|
28
|
+
* @since 4.0.0
|
|
23
29
|
*/
|
|
24
30
|
export interface SqliteClient extends Client.SqlClient {
|
|
25
31
|
readonly [TypeId]: TypeId;
|
|
@@ -31,21 +37,27 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
31
37
|
readonly updateValues: never;
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
40
|
+
* Metadata returned from a Node SQLite backup operation, reporting total and remaining page counts.
|
|
41
|
+
*
|
|
34
42
|
* @category models
|
|
35
|
-
* @since
|
|
43
|
+
* @since 4.0.0
|
|
36
44
|
*/
|
|
37
45
|
export interface BackupMetadata {
|
|
38
46
|
readonly totalPages: number;
|
|
39
47
|
readonly remainingPages: number;
|
|
40
48
|
}
|
|
41
49
|
/**
|
|
50
|
+
* Context service tag for the node SQLite client implementation.
|
|
51
|
+
*
|
|
42
52
|
* @category tags
|
|
43
|
-
* @since
|
|
53
|
+
* @since 4.0.0
|
|
44
54
|
*/
|
|
45
55
|
export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
|
|
46
56
|
/**
|
|
57
|
+
* Configuration for a node SQLite client backed by `better-sqlite3`, including the database filename, read-only mode, statement cache settings, WAL behavior, span attributes, and query/result name transforms.
|
|
58
|
+
*
|
|
47
59
|
* @category models
|
|
48
|
-
* @since
|
|
60
|
+
* @since 4.0.0
|
|
49
61
|
*/
|
|
50
62
|
export interface SqliteClientConfig {
|
|
51
63
|
readonly filename: string;
|
|
@@ -58,18 +70,24 @@ export interface SqliteClientConfig {
|
|
|
58
70
|
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
59
71
|
}
|
|
60
72
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
73
|
+
* Creates a scoped node SQLite client from the supplied configuration, using a single serialized connection with WAL enabled by default and exposing SQLite-specific `export`, `backup`, and `loadExtension` operations.
|
|
74
|
+
*
|
|
75
|
+
* @category constructors
|
|
76
|
+
* @since 4.0.0
|
|
63
77
|
*/
|
|
64
78
|
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>;
|
|
65
79
|
/**
|
|
80
|
+
* Builds a layer from an Effect `Config` value, providing both the node `SqliteClient` service and the generic `SqlClient` service.
|
|
81
|
+
*
|
|
66
82
|
* @category layers
|
|
67
|
-
* @since
|
|
83
|
+
* @since 4.0.0
|
|
68
84
|
*/
|
|
69
85
|
export declare const layerConfig: (config: Config.Wrap<SqliteClientConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError>;
|
|
70
86
|
/**
|
|
87
|
+
* Builds a layer from a node SQLite client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
88
|
+
*
|
|
71
89
|
* @category layers
|
|
72
|
-
* @since
|
|
90
|
+
* @since 4.0.0
|
|
73
91
|
*/
|
|
74
92
|
export declare const layer: (config: SqliteClientConfig) => Layer.Layer<SqliteClient | Client.SqlClient>;
|
|
75
93
|
//# 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":"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"}
|
package/dist/SqliteClient.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Node.js SQLite client implementation for Effect SQL, backed by `better-sqlite3`.
|
|
3
|
+
*
|
|
4
|
+
* This module exposes constructors and layers for providing both the SQLite-specific `SqliteClient`
|
|
5
|
+
* service and the generic `SqlClient` service. It is intended for file-backed or in-memory SQLite
|
|
6
|
+
* databases in Node applications, local development tools, tests, migrations, and embedded
|
|
7
|
+
* persistence use cases that need Effect SQL query compilation plus SQLite-specific operations such
|
|
8
|
+
* as exporting a database, creating backups, or loading native SQLite extensions.
|
|
9
|
+
*
|
|
10
|
+
* Each client owns one scoped `better-sqlite3` connection and serializes access through it. WAL mode
|
|
11
|
+
* is enabled by default, so set `disableWAL` when opening read-only databases or when the database
|
|
12
|
+
* location cannot change journal mode. Prepared statements are cached by SQL text, safe integer
|
|
13
|
+
* handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
|
|
14
|
+
* SQLite does not support `updateValues`.
|
|
15
|
+
*
|
|
16
|
+
* @since 4.0.0
|
|
3
17
|
*/
|
|
4
18
|
import Sqlite from "better-sqlite3";
|
|
5
19
|
import * as Cache from "effect/Cache";
|
|
@@ -23,18 +37,24 @@ const classifyError = (cause, message, operation) => classifySqliteError(cause,
|
|
|
23
37
|
operation
|
|
24
38
|
});
|
|
25
39
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
40
|
+
* Runtime type identifier used to mark Node `SqliteClient` values.
|
|
41
|
+
*
|
|
42
|
+
* @category type IDs
|
|
43
|
+
* @since 4.0.0
|
|
28
44
|
*/
|
|
29
45
|
export const TypeId = "~@effect/sql-sqlite-node/SqliteClient";
|
|
30
46
|
/**
|
|
47
|
+
* Context service tag for the node SQLite client implementation.
|
|
48
|
+
*
|
|
31
49
|
* @category tags
|
|
32
|
-
* @since
|
|
50
|
+
* @since 4.0.0
|
|
33
51
|
*/
|
|
34
52
|
export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-node/SqliteClient");
|
|
35
53
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
54
|
+
* Creates a scoped node SQLite client from the supplied configuration, using a single serialized connection with WAL enabled by default and exposing SQLite-specific `export`, `backup`, and `loadExtension` operations.
|
|
55
|
+
*
|
|
56
|
+
* @category constructors
|
|
57
|
+
* @since 4.0.0
|
|
38
58
|
*/
|
|
39
59
|
export const make = options => Effect.gen(function* () {
|
|
40
60
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
@@ -152,13 +172,17 @@ export const make = options => Effect.gen(function* () {
|
|
|
152
172
|
});
|
|
153
173
|
});
|
|
154
174
|
/**
|
|
175
|
+
* Builds a layer from an Effect `Config` value, providing both the node `SqliteClient` service and the generic `SqlClient` service.
|
|
176
|
+
*
|
|
155
177
|
* @category layers
|
|
156
|
-
* @since
|
|
178
|
+
* @since 4.0.0
|
|
157
179
|
*/
|
|
158
180
|
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));
|
|
159
181
|
/**
|
|
182
|
+
* Builds a layer from a node SQLite client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
183
|
+
*
|
|
160
184
|
* @category layers
|
|
161
|
-
* @since
|
|
185
|
+
* @since 4.0.0
|
|
162
186
|
*/
|
|
163
187
|
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));
|
|
164
188
|
//# sourceMappingURL=SqliteClient.js.map
|
package/dist/SqliteClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["Sqlite","Cache","Config","Context","Duration","Effect","Fiber","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","scope","db","filename","readonly","addFinalizer","sync","close","disableWAL","pragma","prepareCache","capacity","prepareCacheSize","timeToLive","prepareCacheTTL","minutes","lookup","sql","try","prepare","catch","reason","runStatement","statement","params","raw","withFiber","fiber","get","context","SafeIntegers","safeIntegers","reader","succeed","all","result","run","fail","flatMap","s","runValues","acquireUseRelease","execute","map","executeRaw","executeValues","executeUnprepared","effect","executeStream","_sql","_params","die","export","serialize","backup","destination","tryPromise","loadExtension","path","semaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","_","layerConfig","effectContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Sqlite","Cache","Config","Context","Duration","Effect","Fiber","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","scope","db","filename","readonly","addFinalizer","sync","close","disableWAL","pragma","prepareCache","capacity","prepareCacheSize","timeToLive","prepareCacheTTL","minutes","lookup","sql","try","prepare","catch","reason","runStatement","statement","params","raw","withFiber","fiber","get","context","SafeIntegers","safeIntegers","reader","succeed","all","result","run","fail","flatMap","s","runValues","acquireUseRelease","execute","map","executeRaw","executeValues","executeUnprepared","effect","executeStream","_sql","_params","die","export","serialize","backup","destination","tryPromise","loadExtension","path","semaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","_","layerConfig","effectContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAiBA,OAAOA,MAAM,MAAM,gBAAgB;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,uCAAuC;AACnE,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,8BAA8B;AAC5E,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAE1D,MAAMC,mBAAmB,GAAG,gBAAgB;AAE5C,MAAMC,aAAa,GAAGA,CAACC,KAAc,EAAEC,OAAe,EAAEC,SAAiB,KACvEP,mBAAmB,CAACK,KAAK,EAAE;EAAEC,OAAO;EAAEC;AAAS,CAAE,CAAC;AAEpD;;;;;;AAMA,OAAO,MAAMC,MAAM,GAAW,uCAAuC;AAsCrE;;;;;;AAMA,OAAO,MAAMC,YAAY,gBAAGpB,OAAO,CAACqB,OAAO,CAAe,sCAAsC,CAAC;AA0BjG;;;;;;AAMA,OAAO,MAAMC,IAAI,GACfC,OAA2B,IAE3BrB,MAAM,CAACsB,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAGZ,SAAS,CAACa,kBAAkB,CAACH,OAAO,CAACI,mBAAmB,CAAC;EAC1E,MAAMC,aAAa,GAAGL,OAAO,CAACM,oBAAoB,GAChDhB,SAAS,CAACiB,iBAAiB,CACzBP,OAAO,CAACM,oBAAoB,CAC7B,CAACE,KAAK,GACPC,SAAS;EAEX,MAAMC,cAAc,GAAG/B,MAAM,CAACsB,GAAG,CAAC,aAAS;IACzC,MAAMU,KAAK,GAAG,OAAOhC,MAAM,CAACgC,KAAK;IACjC,MAAMC,EAAE,GAAG,IAAItC,MAAM,CAAC0B,OAAO,CAACa,QAAQ,EAAE;MACtCC,QAAQ,EAAEd,OAAO,CAACc,QAAQ,IAAI;KAC/B,CAAC;IACF,OAAO/B,KAAK,CAACgC,YAAY,CAACJ,KAAK,EAAEhC,MAAM,CAACqC,IAAI,CAAC,MAAMJ,EAAE,CAACK,KAAK,EAAE,CAAC,CAAC;IAE/D,IAAIjB,OAAO,CAACkB,UAAU,KAAK,IAAI,EAAE;MAC/BN,EAAE,CAACO,MAAM,CAAC,oBAAoB,CAAC;IACjC;IAEA,MAAMC,YAAY,GAAG,OAAO7C,KAAK,CAACwB,IAAI,CAAC;MACrCsB,QAAQ,EAAErB,OAAO,CAACsB,gBAAgB,IAAI,GAAG;MACzCC,UAAU,EAAEvB,OAAO,CAACwB,eAAe,IAAI9C,QAAQ,CAAC+C,OAAO,CAAC,EAAE,CAAC;MAC3DC,MAAM,EAAGC,GAAW,IAClBhD,MAAM,CAACiD,GAAG,CAAC;QACTA,GAAG,EAAEA,CAAA,KAAMhB,EAAE,CAACiB,OAAO,CAACF,GAAG,CAAC;QAC1BG,KAAK,EAAGrC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;UAAE0C,MAAM,EAAEvC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,SAAS;QAAC,CAAE;OAC1G;KACJ,CAAC;IAEF,MAAMuC,YAAY,GAAGA,CACnBC,SAA2B,EAC3BC,MAA8B,EAC9BC,GAAY,KAEZxD,MAAM,CAACyD,SAAS,CAAgCC,KAAK,IAAI;MACvD,IAAI5D,OAAO,CAAC6D,GAAG,CAACD,KAAK,CAACE,OAAO,EAAEpD,MAAM,CAACqD,YAAY,CAAC,EAAE;QACnDP,SAAS,CAACQ,YAAY,CAAC,IAAI,CAAC;MAC9B;MACA,IAAI;QACF,IAAIR,SAAS,CAACS,MAAM,EAAE;UACpB,OAAO/D,MAAM,CAACgE,OAAO,CAACV,SAAS,CAACW,GAAG,CAAC,GAAGV,MAAM,CAAC,CAAC;QACjD;QACA,MAAMW,MAAM,GAAGZ,SAAS,CAACa,GAAG,CAAC,GAAGZ,MAAM,CAAC;QACvC,OAAOvD,MAAM,CAACgE,OAAO,CAACR,GAAG,GAAGU,MAAuC,GAAG,EAAE,CAAC;MAC3E,CAAC,CAAC,OAAOpD,KAAK,EAAE;QACd,OAAOd,MAAM,CAACoE,IAAI,CAAC,IAAI1D,QAAQ,CAAC;UAAE0C,MAAM,EAAEvC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,SAAS;QAAC,CAAE,CAAC,CAAC;MAC9G;IACF,CAAC,CAAC;IAEJ,MAAMqD,GAAG,GAAGA,CACVnB,GAAW,EACXO,MAA8B,EAC9BC,GAAG,GAAG,KAAK,KAEXxD,MAAM,CAACqE,OAAO,CACZzE,KAAK,CAAC+D,GAAG,CAAClB,YAAY,EAAEO,GAAG,CAAC,EAC3BsB,CAAC,IAAKjB,YAAY,CAACiB,CAAC,EAAEf,MAAM,EAAEC,GAAG,CAAC,CACpC;IAEH,MAAMe,SAAS,GAAGA,CAChBvB,GAAW,EACXO,MAA8B,KAE9BvD,MAAM,CAACwE,iBAAiB,CACtB5E,KAAK,CAAC+D,GAAG,CAAClB,YAAY,EAAEO,GAAG,CAAC,EAC3BM,SAAS,IACRtD,MAAM,CAACiD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAK;QACR,IAAIK,SAAS,CAACS,MAAM,EAAE;UACpBT,SAAS,CAACE,GAAG,CAAC,IAAI,CAAC;UACnB,OAAOF,SAAS,CAACW,GAAG,CAAC,GAAGV,MAAM,CAE7B;QACH;QACAD,SAAS,CAACa,GAAG,CAAC,GAAGZ,MAAM,CAAC;QACxB,OAAO,EAAE;MACX,CAAC;MACDJ,KAAK,EAAGrC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;QAAE0C,MAAM,EAAEvC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,SAAS;MAAC,CAAE;KAC1G,CAAC,EACHwC,SAAS,IAAKtD,MAAM,CAACqC,IAAI,CAAC,MAAMiB,SAAS,CAACS,MAAM,IAAIT,SAAS,CAACE,GAAG,CAAC,KAAK,CAAC,CAAC,CAC3E;IAEH,OAAOtD,QAAQ,CAAmB;MAChCuE,OAAOA,CAACzB,GAAG,EAAEO,MAAM,EAAE7B,aAAa;QAChC,OAAOA,aAAa,GAChB1B,MAAM,CAAC0E,GAAG,CAACP,GAAG,CAACnB,GAAG,EAAEO,MAAM,CAAC,EAAE7B,aAAa,CAAC,GAC3CyC,GAAG,CAACnB,GAAG,EAAEO,MAAM,CAAC;MACtB,CAAC;MACDoB,UAAUA,CAAC3B,GAAG,EAAEO,MAAM;QACpB,OAAOY,GAAG,CAACnB,GAAG,EAAEO,MAAM,EAAE,IAAI,CAAC;MAC/B,CAAC;MACDqB,aAAaA,CAAC5B,GAAG,EAAEO,MAAM;QACvB,OAAOgB,SAAS,CAACvB,GAAG,EAAEO,MAAM,CAAC;MAC/B,CAAC;MACDsB,iBAAiBA,CAAC7B,GAAG,EAAEO,MAAM,EAAE7B,aAAa;QAC1C,MAAMoD,MAAM,GAAGzB,YAAY,CAACpB,EAAE,CAACiB,OAAO,CAACF,GAAG,CAAC,EAAEO,MAAM,IAAI,EAAE,EAAE,KAAK,CAAC;QACjE,OAAO7B,aAAa,GAAG1B,MAAM,CAAC0E,GAAG,CAACI,MAAM,EAAEpD,aAAa,CAAC,GAAGoD,MAAM;MACnE,CAAC;MACDC,aAAaA,CAACC,IAAI,EAAEC,OAAO;QACzB,OAAO3E,MAAM,CAAC4E,GAAG,CAAC,+BAA+B,CAAC;MACpD,CAAC;MACDC,MAAM,EAAEnF,MAAM,CAACiD,GAAG,CAAC;QACjBA,GAAG,EAAEA,CAAA,KAAMhB,EAAE,CAACmD,SAAS,EAAE;QACzBjC,KAAK,EAAGrC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;UAAE0C,MAAM,EAAEvC,aAAa,CAACC,KAAK,EAAE,2BAA2B,EAAE,QAAQ;QAAC,CAAE;OACvG,CAAC;MACFuE,MAAMA,CAACC,WAAW;QAChB,OAAOtF,MAAM,CAACuF,UAAU,CAAC;UACvBtC,GAAG,EAAEA,CAAA,KAAMhB,EAAE,CAACoD,MAAM,CAACC,WAAW,CAAC;UACjCnC,KAAK,EAAGrC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;YAAE0C,MAAM,EAAEvC,aAAa,CAACC,KAAK,EAAE,2BAA2B,EAAE,QAAQ;UAAC,CAAE;SACvG,CAAC;MACJ,CAAC;MACD0E,aAAaA,CAACC,IAAI;QAChB,OAAOzF,MAAM,CAACiD,GAAG,CAAC;UAChBA,GAAG,EAAEA,CAAA,KAAMhB,EAAE,CAACuD,aAAa,CAACC,IAAI,CAAC;UACjCtC,KAAK,EAAGrC,KAAK,IACX,IAAIJ,QAAQ,CAAC;YAAE0C,MAAM,EAAEvC,aAAa,CAACC,KAAK,EAAE,0BAA0B,EAAE,eAAe;UAAC,CAAE;SAC7F,CAAC;MACJ;KACD,CAAC;EACJ,CAAC,CAAC;EAEF,MAAM4E,SAAS,GAAG,OAAOrF,SAAS,CAACe,IAAI,CAAC,CAAC,CAAC;EAC1C,MAAMuE,UAAU,GAAG,OAAO5D,cAAc;EAExC,MAAM6D,QAAQ,GAAGF,SAAS,CAACG,WAAW,CAAC,CAAC,CAAC,CAAC7F,MAAM,CAACgE,OAAO,CAAC2B,UAAU,CAAC,CAAC;EACrE,MAAMG,mBAAmB,GAAG9F,MAAM,CAAC+F,mBAAmB,CAAEC,OAAO,IAAI;IACjE,MAAMtC,KAAK,GAAGzD,KAAK,CAACgG,UAAU,EAAG;IACjC,MAAMjE,KAAK,GAAGlC,OAAO,CAACoG,SAAS,CAACxC,KAAK,CAACE,OAAO,EAAExD,KAAK,CAACA,KAAK,CAAC;IAC3D,OAAOJ,MAAM,CAACmG,EAAE,CACdnG,MAAM,CAACoG,GAAG,CACRJ,OAAO,CAACN,SAAS,CAACW,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1B,MAAMjG,KAAK,CAACgC,YAAY,CAACJ,KAAK,EAAE0D,SAAS,CAACY,OAAO,CAAC,CAAC,CAAC,CAAC,CACtD,EACDX,UAAU,CACX;EACH,CAAC,CAAC;EAEF,OAAOY,MAAM,CAACC,MAAM,CACjB,OAAOhG,MAAM,CAACY,IAAI,CAAC;IAClBwE,QAAQ;IACRrE,QAAQ;IACRuE,mBAAmB;IACnBW,cAAc,EAAE,CACd,IAAIpF,OAAO,CAACoF,cAAc,GAAGF,MAAM,CAACG,OAAO,CAACrF,OAAO,CAACoF,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAC7F,mBAAmB,EAAE,QAAQ,CAAC,CAChC;IACDc;GACD,CAAC,EACF;IACE,CAACT,MAAM,GAAGA,MAAgB;IAC1B0F,MAAM,EAAEtF,OAAO;IACf8D,MAAM,EAAEnF,MAAM,CAACqE,OAAO,CAACuB,QAAQ,EAAGgB,CAAC,IAAKA,CAAC,CAACzB,MAAM,CAAC;IACjDE,MAAM,EAAGC,WAAmB,IAAKtF,MAAM,CAACqE,OAAO,CAACuB,QAAQ,EAAGgB,CAAC,IAAKA,CAAC,CAACvB,MAAM,CAACC,WAAW,CAAC,CAAC;IACvFE,aAAa,EAAGC,IAAY,IAAKzF,MAAM,CAACqE,OAAO,CAACuB,QAAQ,EAAGgB,CAAC,IAAKA,CAAC,CAACpB,aAAa,CAACC,IAAI,CAAC;GACvF,CACF;AACH,CAAC,CAAC;AAEJ;;;;;;AAMA,OAAO,MAAMoB,WAAW,GACtBF,MAAuC,IAEvCxG,KAAK,CAAC2G,aAAa,CACjBjH,MAAM,CAACkH,MAAM,CAACJ,MAAM,CAAC,CAACK,IAAI,CACxBhH,MAAM,CAACqE,OAAO,CAACjD,IAAI,CAAC,EACpBpB,MAAM,CAAC0E,GAAG,CAAEuC,MAAM,IAChBnH,OAAO,CAACsB,IAAI,CAACF,YAAY,EAAE+F,MAAM,CAAC,CAACD,IAAI,CACrClH,OAAO,CAACoH,GAAG,CAAC1G,MAAM,CAAC2G,SAAS,EAAEF,MAAM,CAAC,CACtC,CACF,CACF,CACF,CAACD,IAAI,CAAC7G,KAAK,CAACiH,OAAO,CAAC7G,UAAU,CAAC8G,KAAK,CAAC,CAAC;AAEzC;;;;;;AAMA,OAAO,MAAMA,KAAK,GAChBV,MAA0B,IAE1BxG,KAAK,CAAC2G,aAAa,CACjB9G,MAAM,CAAC0E,GAAG,CAACtD,IAAI,CAACuF,MAAM,CAAC,EAAGM,MAAM,IAC9BnH,OAAO,CAACsB,IAAI,CAACF,YAAY,EAAE+F,MAAM,CAAC,CAACD,IAAI,CACrClH,OAAO,CAACoH,GAAG,CAAC1G,MAAM,CAAC2G,SAAS,EAAEF,MAAM,CAAC,CACtC,CAAC,CACL,CAACD,IAAI,CAAC7G,KAAK,CAACiH,OAAO,CAAC7G,UAAU,CAAC8G,KAAK,CAAC,CAAC","ignoreList":[]}
|
package/dist/SqliteMigrator.d.ts
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to Node.js SQLite databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers for applying ordered migrations through the
|
|
6
|
+
* current SQLite `SqlClient`. It is typically used at application startup, in
|
|
7
|
+
* tests that create temporary database files, or in layer graphs that must
|
|
8
|
+
* ensure a file-backed SQLite schema exists before dependent services start.
|
|
9
|
+
*
|
|
10
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
11
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
12
|
+
* with an id greater than the latest recorded id are applied, so every client
|
|
13
|
+
* involved in startup should point at the same SQLite filename. Concurrent
|
|
14
|
+
* writers can surface SQLite lock timeout errors, and this adapter does not
|
|
15
|
+
* currently write SQLite schema dumps for `schemaDirectory`.
|
|
16
|
+
*
|
|
17
|
+
* @since 4.0.0
|
|
3
18
|
*/
|
|
4
19
|
import type * as Effect from "effect/Effect";
|
|
5
20
|
import * as Layer from "effect/Layer";
|
|
@@ -7,17 +22,21 @@ import * as Migrator from "effect/unstable/sql/Migrator";
|
|
|
7
22
|
import type * as Client from "effect/unstable/sql/SqlClient";
|
|
8
23
|
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
24
|
/**
|
|
10
|
-
* @since
|
|
25
|
+
* @since 4.0.0
|
|
11
26
|
*/
|
|
12
27
|
export * from "effect/unstable/sql/Migrator";
|
|
13
28
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
29
|
+
* Runs SQL migrations for a SQLite database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
30
|
+
*
|
|
31
|
+
* @category constructors
|
|
32
|
+
* @since 4.0.0
|
|
16
33
|
*/
|
|
17
34
|
export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, Client.SqlClient | R2>;
|
|
18
35
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
36
|
+
* Creates a layer that runs the configured SQLite migrations during layer construction and provides no services.
|
|
37
|
+
*
|
|
38
|
+
* @category constructors
|
|
39
|
+
* @since 4.0.0
|
|
21
40
|
*/
|
|
22
41
|
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, Client.SqlClient | R>;
|
|
23
42
|
//# 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;;;;;;;;;;;;;;;;;GAiBG;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,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,EAAE,CA2CrB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACgB,CAAA"}
|
package/dist/SqliteMigrator.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
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
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Runs SQL migrations for a SQLite database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
9
|
+
*
|
|
10
|
+
* @category constructors
|
|
11
|
+
* @since 4.0.0
|
|
10
12
|
*/
|
|
11
13
|
export const run = /*#__PURE__*/Migrator.make({
|
|
12
14
|
// dumpSchema(path, table) {
|
|
@@ -52,8 +54,10 @@ export const run = /*#__PURE__*/Migrator.make({
|
|
|
52
54
|
// }
|
|
53
55
|
});
|
|
54
56
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
+
* Creates a layer that runs the configured SQLite migrations during layer construction and provides no services.
|
|
58
|
+
*
|
|
59
|
+
* @category constructors
|
|
60
|
+
* @since 4.0.0
|
|
57
61
|
*/
|
|
58
62
|
export const layer = options => Layer.effectDiscard(run(options));
|
|
59
63
|
//# 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":"AAmBA,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;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA,CACD,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Node.js SQLite client implementation for Effect SQL, backed by `better-sqlite3`.
|
|
6
|
+
*
|
|
7
|
+
* This module exposes constructors and layers for providing both the SQLite-specific `SqliteClient`
|
|
8
|
+
* service and the generic `SqlClient` service. It is intended for file-backed or in-memory SQLite
|
|
9
|
+
* databases in Node applications, local development tools, tests, migrations, and embedded
|
|
10
|
+
* persistence use cases that need Effect SQL query compilation plus SQLite-specific operations such
|
|
11
|
+
* as exporting a database, creating backups, or loading native SQLite extensions.
|
|
12
|
+
*
|
|
13
|
+
* Each client owns one scoped `better-sqlite3` connection and serializes access through it. WAL mode
|
|
14
|
+
* is enabled by default, so set `disableWAL` when opening read-only databases or when the database
|
|
15
|
+
* location cannot change journal mode. Prepared statements are cached by SQL text, safe integer
|
|
16
|
+
* handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
|
|
17
|
+
* SQLite does not support `updateValues`.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
6
20
|
*/
|
|
7
21
|
export * as SqliteClient from "./SqliteClient.ts";
|
|
8
22
|
/**
|
|
9
|
-
*
|
|
23
|
+
* Utilities for applying Effect SQL migrations to Node.js SQLite databases.
|
|
24
|
+
*
|
|
25
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
26
|
+
* provides `run` and `layer` helpers for applying ordered migrations through the
|
|
27
|
+
* current SQLite `SqlClient`. It is typically used at application startup, in
|
|
28
|
+
* tests that create temporary database files, or in layer graphs that must
|
|
29
|
+
* ensure a file-backed SQLite schema exists before dependent services start.
|
|
30
|
+
*
|
|
31
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
32
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
33
|
+
* with an id greater than the latest recorded id are applied, so every client
|
|
34
|
+
* involved in startup should point at the same SQLite filename. Concurrent
|
|
35
|
+
* writers can surface SQLite lock timeout errors, and this adapter does not
|
|
36
|
+
* currently write SQLite schema dumps for `schemaDirectory`.
|
|
37
|
+
*
|
|
38
|
+
* @since 4.0.0
|
|
10
39
|
*/
|
|
11
40
|
export * as SqliteMigrator from "./SqliteMigrator.ts";
|
|
12
41
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Node.js SQLite client implementation for Effect SQL, backed by `better-sqlite3`.
|
|
7
|
+
*
|
|
8
|
+
* This module exposes constructors and layers for providing both the SQLite-specific `SqliteClient`
|
|
9
|
+
* service and the generic `SqlClient` service. It is intended for file-backed or in-memory SQLite
|
|
10
|
+
* databases in Node applications, local development tools, tests, migrations, and embedded
|
|
11
|
+
* persistence use cases that need Effect SQL query compilation plus SQLite-specific operations such
|
|
12
|
+
* as exporting a database, creating backups, or loading native SQLite extensions.
|
|
13
|
+
*
|
|
14
|
+
* Each client owns one scoped `better-sqlite3` connection and serializes access through it. WAL mode
|
|
15
|
+
* is enabled by default, so set `disableWAL` when opening read-only databases or when the database
|
|
16
|
+
* location cannot change journal mode. Prepared statements are cached by SQL text, safe integer
|
|
17
|
+
* handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
|
|
18
|
+
* SQLite does not support `updateValues`.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
7
21
|
*/
|
|
8
22
|
export * as SqliteClient from "./SqliteClient.js";
|
|
9
23
|
/**
|
|
10
|
-
*
|
|
24
|
+
* Utilities for applying Effect SQL migrations to Node.js SQLite databases.
|
|
25
|
+
*
|
|
26
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
27
|
+
* provides `run` and `layer` helpers for applying ordered migrations through the
|
|
28
|
+
* current SQLite `SqlClient`. It is typically used at application startup, in
|
|
29
|
+
* tests that create temporary database files, or in layer graphs that must
|
|
30
|
+
* ensure a file-backed SQLite schema exists before dependent services start.
|
|
31
|
+
*
|
|
32
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
33
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
34
|
+
* with an id greater than the latest recorded id are applied, so every client
|
|
35
|
+
* involved in startup should point at the same SQLite filename. Concurrent
|
|
36
|
+
* writers can surface SQLite lock timeout errors, and this adapter does not
|
|
37
|
+
* currently write SQLite schema dumps for `schemaDirectory`.
|
|
38
|
+
*
|
|
39
|
+
* @since 4.0.0
|
|
11
40
|
*/
|
|
12
41
|
export * as SqliteMigrator from "./SqliteMigrator.js";
|
|
13
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["SqliteClient","SqliteMigrator"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA
|
|
1
|
+
{"version":3,"file":"index.js","names":["SqliteClient","SqliteMigrator"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;;;;;;;;;;;;;;;AAiBA,OAAO,KAAKA,YAAY,MAAM,mBAAmB;AAEjD;;;;;;;;;;;;;;;;;;AAkBA,OAAO,KAAKC,cAAc,MAAM,qBAAqB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-sqlite-node",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.68",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A SQLite toolkit for Effect",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/better-sqlite3": "^7.6.13",
|
|
47
|
-
"@effect/platform-node": "^4.0.0-beta.
|
|
48
|
-
"effect": "^4.0.0-beta.
|
|
47
|
+
"@effect/platform-node": "^4.0.0-beta.68",
|
|
48
|
+
"effect": "^4.0.0-beta.68"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"effect": "^4.0.0-beta.
|
|
51
|
+
"effect": "^4.0.0-beta.68"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"better-sqlite3": "^12.
|
|
54
|
+
"better-sqlite3": "^12.9.0"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"codegen": "effect-utils codegen",
|
package/src/SqliteClient.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Node.js SQLite client implementation for Effect SQL, backed by `better-sqlite3`.
|
|
3
|
+
*
|
|
4
|
+
* This module exposes constructors and layers for providing both the SQLite-specific `SqliteClient`
|
|
5
|
+
* service and the generic `SqlClient` service. It is intended for file-backed or in-memory SQLite
|
|
6
|
+
* databases in Node applications, local development tools, tests, migrations, and embedded
|
|
7
|
+
* persistence use cases that need Effect SQL query compilation plus SQLite-specific operations such
|
|
8
|
+
* as exporting a database, creating backups, or loading native SQLite extensions.
|
|
9
|
+
*
|
|
10
|
+
* Each client owns one scoped `better-sqlite3` connection and serializes access through it. WAL mode
|
|
11
|
+
* is enabled by default, so set `disableWAL` when opening read-only databases or when the database
|
|
12
|
+
* location cannot change journal mode. Prepared statements are cached by SQL text, safe integer
|
|
13
|
+
* handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
|
|
14
|
+
* SQLite does not support `updateValues`.
|
|
15
|
+
*
|
|
16
|
+
* @since 4.0.0
|
|
3
17
|
*/
|
|
4
18
|
import Sqlite from "better-sqlite3"
|
|
5
19
|
import * as Cache from "effect/Cache"
|
|
@@ -25,20 +39,26 @@ const classifyError = (cause: unknown, message: string, operation: string) =>
|
|
|
25
39
|
classifySqliteError(cause, { message, operation })
|
|
26
40
|
|
|
27
41
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
42
|
+
* Runtime type identifier used to mark Node `SqliteClient` values.
|
|
43
|
+
*
|
|
44
|
+
* @category type IDs
|
|
45
|
+
* @since 4.0.0
|
|
30
46
|
*/
|
|
31
47
|
export const TypeId: TypeId = "~@effect/sql-sqlite-node/SqliteClient"
|
|
32
48
|
|
|
33
49
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
50
|
+
* Type-level identifier used to mark Node `SqliteClient` values.
|
|
51
|
+
*
|
|
52
|
+
* @category type IDs
|
|
53
|
+
* @since 4.0.0
|
|
36
54
|
*/
|
|
37
55
|
export type TypeId = "~@effect/sql-sqlite-node/SqliteClient"
|
|
38
56
|
|
|
39
57
|
/**
|
|
58
|
+
* Node SQLite client service, extending `SqlClient` with database export, backup, and extension loading helpers. `updateValues` is not supported.
|
|
59
|
+
*
|
|
40
60
|
* @category models
|
|
41
|
-
* @since
|
|
61
|
+
* @since 4.0.0
|
|
42
62
|
*/
|
|
43
63
|
export interface SqliteClient extends Client.SqlClient {
|
|
44
64
|
readonly [TypeId]: TypeId
|
|
@@ -52,8 +72,10 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
52
72
|
}
|
|
53
73
|
|
|
54
74
|
/**
|
|
75
|
+
* Metadata returned from a Node SQLite backup operation, reporting total and remaining page counts.
|
|
76
|
+
*
|
|
55
77
|
* @category models
|
|
56
|
-
* @since
|
|
78
|
+
* @since 4.0.0
|
|
57
79
|
*/
|
|
58
80
|
export interface BackupMetadata {
|
|
59
81
|
readonly totalPages: number
|
|
@@ -61,14 +83,18 @@ export interface BackupMetadata {
|
|
|
61
83
|
}
|
|
62
84
|
|
|
63
85
|
/**
|
|
86
|
+
* Context service tag for the node SQLite client implementation.
|
|
87
|
+
*
|
|
64
88
|
* @category tags
|
|
65
|
-
* @since
|
|
89
|
+
* @since 4.0.0
|
|
66
90
|
*/
|
|
67
91
|
export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-node/SqliteClient")
|
|
68
92
|
|
|
69
93
|
/**
|
|
94
|
+
* Configuration for a node SQLite client backed by `better-sqlite3`, including the database filename, read-only mode, statement cache settings, WAL behavior, span attributes, and query/result name transforms.
|
|
95
|
+
*
|
|
70
96
|
* @category models
|
|
71
|
-
* @since
|
|
97
|
+
* @since 4.0.0
|
|
72
98
|
*/
|
|
73
99
|
export interface SqliteClientConfig {
|
|
74
100
|
readonly filename: string
|
|
@@ -89,8 +115,10 @@ interface SqliteConnection extends Connection {
|
|
|
89
115
|
}
|
|
90
116
|
|
|
91
117
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
118
|
+
* Creates a scoped node SQLite client from the supplied configuration, using a single serialized connection with WAL enabled by default and exposing SQLite-specific `export`, `backup`, and `loadExtension` operations.
|
|
119
|
+
*
|
|
120
|
+
* @category constructors
|
|
121
|
+
* @since 4.0.0
|
|
94
122
|
*/
|
|
95
123
|
export const make = (
|
|
96
124
|
options: SqliteClientConfig
|
|
@@ -254,8 +282,10 @@ export const make = (
|
|
|
254
282
|
})
|
|
255
283
|
|
|
256
284
|
/**
|
|
285
|
+
* Builds a layer from an Effect `Config` value, providing both the node `SqliteClient` service and the generic `SqlClient` service.
|
|
286
|
+
*
|
|
257
287
|
* @category layers
|
|
258
|
-
* @since
|
|
288
|
+
* @since 4.0.0
|
|
259
289
|
*/
|
|
260
290
|
export const layerConfig = (
|
|
261
291
|
config: Config.Wrap<SqliteClientConfig>
|
|
@@ -272,8 +302,10 @@ export const layerConfig = (
|
|
|
272
302
|
).pipe(Layer.provide(Reactivity.layer))
|
|
273
303
|
|
|
274
304
|
/**
|
|
305
|
+
* Builds a layer from a node SQLite client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
|
|
306
|
+
*
|
|
275
307
|
* @category layers
|
|
276
|
-
* @since
|
|
308
|
+
* @since 4.0.0
|
|
277
309
|
*/
|
|
278
310
|
export const layer = (
|
|
279
311
|
config: SqliteClientConfig
|
package/src/SqliteMigrator.ts
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to Node.js SQLite databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers for applying ordered migrations through the
|
|
6
|
+
* current SQLite `SqlClient`. It is typically used at application startup, in
|
|
7
|
+
* tests that create temporary database files, or in layer graphs that must
|
|
8
|
+
* ensure a file-backed SQLite schema exists before dependent services start.
|
|
9
|
+
*
|
|
10
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
11
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
12
|
+
* with an id greater than the latest recorded id are applied, so every client
|
|
13
|
+
* involved in startup should point at the same SQLite filename. Concurrent
|
|
14
|
+
* writers can surface SQLite lock timeout errors, and this adapter does not
|
|
15
|
+
* currently write SQLite schema dumps for `schemaDirectory`.
|
|
16
|
+
*
|
|
17
|
+
* @since 4.0.0
|
|
3
18
|
*/
|
|
4
19
|
import type * as Effect from "effect/Effect"
|
|
5
20
|
import * as Layer from "effect/Layer"
|
|
@@ -8,13 +23,15 @@ import type * as Client from "effect/unstable/sql/SqlClient"
|
|
|
8
23
|
import type { SqlError } from "effect/unstable/sql/SqlError"
|
|
9
24
|
|
|
10
25
|
/**
|
|
11
|
-
* @since
|
|
26
|
+
* @since 4.0.0
|
|
12
27
|
*/
|
|
13
28
|
export * from "effect/unstable/sql/Migrator"
|
|
14
29
|
|
|
15
30
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
31
|
+
* Runs SQL migrations for a SQLite database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
32
|
+
*
|
|
33
|
+
* @category constructors
|
|
34
|
+
* @since 4.0.0
|
|
18
35
|
*/
|
|
19
36
|
export const run: <R2 = never>(
|
|
20
37
|
options: Migrator.MigratorOptions<R2>
|
|
@@ -67,8 +84,10 @@ export const run: <R2 = never>(
|
|
|
67
84
|
})
|
|
68
85
|
|
|
69
86
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
87
|
+
* Creates a layer that runs the configured SQLite migrations during layer construction and provides no services.
|
|
88
|
+
*
|
|
89
|
+
* @category constructors
|
|
90
|
+
* @since 4.0.0
|
|
72
91
|
*/
|
|
73
92
|
export const layer = <R>(
|
|
74
93
|
options: Migrator.MigratorOptions<R>
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,44 @@
|
|
|
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
|
-
*
|
|
8
|
+
* Node.js SQLite client implementation for Effect SQL, backed by `better-sqlite3`.
|
|
9
|
+
*
|
|
10
|
+
* This module exposes constructors and layers for providing both the SQLite-specific `SqliteClient`
|
|
11
|
+
* service and the generic `SqlClient` service. It is intended for file-backed or in-memory SQLite
|
|
12
|
+
* databases in Node applications, local development tools, tests, migrations, and embedded
|
|
13
|
+
* persistence use cases that need Effect SQL query compilation plus SQLite-specific operations such
|
|
14
|
+
* as exporting a database, creating backups, or loading native SQLite extensions.
|
|
15
|
+
*
|
|
16
|
+
* Each client owns one scoped `better-sqlite3` connection and serializes access through it. WAL mode
|
|
17
|
+
* is enabled by default, so set `disableWAL` when opening read-only databases or when the database
|
|
18
|
+
* location cannot change journal mode. Prepared statements are cached by SQL text, safe integer
|
|
19
|
+
* handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
|
|
20
|
+
* SQLite does not support `updateValues`.
|
|
21
|
+
*
|
|
22
|
+
* @since 4.0.0
|
|
9
23
|
*/
|
|
10
24
|
export * as SqliteClient from "./SqliteClient.ts"
|
|
11
25
|
|
|
12
26
|
/**
|
|
13
|
-
*
|
|
27
|
+
* Utilities for applying Effect SQL migrations to Node.js SQLite databases.
|
|
28
|
+
*
|
|
29
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
30
|
+
* provides `run` and `layer` helpers for applying ordered migrations through the
|
|
31
|
+
* current SQLite `SqlClient`. It is typically used at application startup, in
|
|
32
|
+
* tests that create temporary database files, or in layer graphs that must
|
|
33
|
+
* ensure a file-backed SQLite schema exists before dependent services start.
|
|
34
|
+
*
|
|
35
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
36
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
37
|
+
* with an id greater than the latest recorded id are applied, so every client
|
|
38
|
+
* involved in startup should point at the same SQLite filename. Concurrent
|
|
39
|
+
* writers can surface SQLite lock timeout errors, and this adapter does not
|
|
40
|
+
* currently write SQLite schema dumps for `schemaDirectory`.
|
|
41
|
+
*
|
|
42
|
+
* @since 4.0.0
|
|
14
43
|
*/
|
|
15
44
|
export * as SqliteMigrator from "./SqliteMigrator.ts"
|