@beignet/provider-db-drizzle 0.0.21 → 0.0.22
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/CHANGELOG.md +7 -0
- package/README.md +56 -0
- package/dist/mysql/index.d.ts +9 -0
- package/dist/mysql/index.d.ts.map +1 -1
- package/dist/mysql/index.js +16 -1
- package/dist/mysql/index.js.map +1 -1
- package/dist/postgres/index.d.ts +9 -0
- package/dist/postgres/index.d.ts.map +1 -1
- package/dist/postgres/index.js +16 -1
- package/dist/postgres/index.js.map +1 -1
- package/dist/shared/health.d.ts +10 -0
- package/dist/shared/health.d.ts.map +1 -0
- package/dist/shared/health.js +14 -0
- package/dist/shared/health.js.map +1 -0
- package/dist/sqlite/index.d.ts +9 -1
- package/dist/sqlite/index.d.ts.map +1 -1
- package/dist/sqlite/index.js +16 -1
- package/dist/sqlite/index.js.map +1 -1
- package/package.json +1 -1
- package/src/mysql/index.ts +26 -1
- package/src/postgres/index.ts +26 -1
- package/src/shared/health.ts +25 -0
- package/src/sqlite/index.ts +26 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @beignet/provider-db-drizzle
|
|
2
2
|
|
|
3
|
+
## 0.0.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Add app-owned readiness helpers, first-party provider health checks, generated `/api/ready` routes, and doctor readiness hints.
|
|
8
|
+
- Normalize provider README setup guidance across first-party provider packages.
|
|
9
|
+
|
|
3
10
|
## 0.0.21
|
|
4
11
|
|
|
5
12
|
## 0.0.20
|
package/README.md
CHANGED
|
@@ -62,6 +62,16 @@ bun add @beignet/provider-db-drizzle @beignet/core drizzle-orm pg
|
|
|
62
62
|
bun add @beignet/provider-db-drizzle @beignet/core drizzle-orm mysql2
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
+
`beignet doctor --strict` checks the provider variant an app registers:
|
|
66
|
+
|
|
67
|
+
- SQLite requires `SQLITE_DB_URL` unless the app passes a client directly.
|
|
68
|
+
`SQLITE_DB_AUTH_TOKEN` is optional for hosted libSQL/Turso.
|
|
69
|
+
- Postgres requires `POSTGRES_DB_URL`.
|
|
70
|
+
- MySQL requires `MYSQL_DB_URL`.
|
|
71
|
+
|
|
72
|
+
Doctor also checks standard Drizzle config, schema exports, database scripts,
|
|
73
|
+
seed/reset entrypoints, and provider registration drift in generated apps.
|
|
74
|
+
|
|
65
75
|
## Setup
|
|
66
76
|
|
|
67
77
|
### 1. Define your schema
|
|
@@ -301,6 +311,24 @@ infrastructure code and one-off advanced Drizzle features. The older
|
|
|
301
311
|
`ctx.ports.db.db` spelling is still available as a backwards-compatible alias.
|
|
302
312
|
Do not make either spelling the normal dependency for application use cases.
|
|
303
313
|
|
|
314
|
+
## Installed ports
|
|
315
|
+
|
|
316
|
+
Each backend provider contributes `ctx.ports.db`, the standard Beignet `DbPort`
|
|
317
|
+
with a Drizzle escape hatch. Database-backed app repositories, UOW, outbox, and
|
|
318
|
+
idempotency ports are app-owned wiring layered on top of that provider. The
|
|
319
|
+
port also exposes `checkHealth()` for app-owned readiness endpoints:
|
|
320
|
+
|
|
321
|
+
```ts
|
|
322
|
+
const health = await ctx.ports.db.checkHealth();
|
|
323
|
+
|
|
324
|
+
if (!health.ok) {
|
|
325
|
+
return Response.json({ ok: false, database: health }, { status: 503 });
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
`checkHealth()` runs a cheap `select 1` through the underlying client or pool.
|
|
330
|
+
It does not run migrations, create tables, or mutate schema.
|
|
331
|
+
|
|
304
332
|
## Devtools
|
|
305
333
|
|
|
306
334
|
When `@beignet/devtools` is registered before this provider, Drizzle query
|
|
@@ -318,6 +346,28 @@ export const providers = [
|
|
|
318
346
|
];
|
|
319
347
|
```
|
|
320
348
|
|
|
349
|
+
## Failure behavior
|
|
350
|
+
|
|
351
|
+
Env-backed providers throw during startup when their required database URL is
|
|
352
|
+
missing or the driver cannot create the connection/client. Runtime query errors
|
|
353
|
+
come from Drizzle and the selected driver. Unit of Work rolls back the database
|
|
354
|
+
transaction when the callback throws; if post-commit event publishing fails, the
|
|
355
|
+
database transaction has already committed, so use the outbox for durable
|
|
356
|
+
follow-up work.
|
|
357
|
+
|
|
358
|
+
## Local and tests
|
|
359
|
+
|
|
360
|
+
Generated SQLite apps include database reset helpers for isolated repository
|
|
361
|
+
and route tests. Use repository fakes for pure use-case tests, and use the
|
|
362
|
+
Drizzle provider with an isolated database when testing SQL mapping,
|
|
363
|
+
transactions, outbox rows, idempotency rows, or migration assumptions.
|
|
364
|
+
|
|
365
|
+
## Deployment notes
|
|
366
|
+
|
|
367
|
+
Run migrations before booting code that depends on new schema. Keep repository
|
|
368
|
+
interfaces app-owned so switching SQLite, Postgres, or MySQL changes infra
|
|
369
|
+
wiring instead of contracts, use cases, policies, or routes.
|
|
370
|
+
|
|
321
371
|
## Unit of work
|
|
322
372
|
|
|
323
373
|
Use `createDrizzleSqliteUnitOfWork(...)` when a use case needs a real database
|
|
@@ -930,6 +980,9 @@ await db.delete(schema.todos).where(eq(schema.todos.id, "1"));
|
|
|
930
980
|
// Access the underlying libSQL client for advanced operations:
|
|
931
981
|
const client = ctx.ports.db.client;
|
|
932
982
|
const result = await client.execute("SELECT * FROM todos WHERE id = ?", ["1"]);
|
|
983
|
+
|
|
984
|
+
// Use this from readiness routes:
|
|
985
|
+
const health = await ctx.ports.db.checkHealth();
|
|
933
986
|
```
|
|
934
987
|
|
|
935
988
|
## Key design principles
|
|
@@ -976,12 +1029,15 @@ interface DbPort<TSchema extends Record<string, any> = any> {
|
|
|
976
1029
|
drizzle: LibSQLDatabase<TSchema>;
|
|
977
1030
|
db: LibSQLDatabase<TSchema>;
|
|
978
1031
|
client: Client;
|
|
1032
|
+
checkHealth(): Promise<DbHealth>;
|
|
979
1033
|
}
|
|
980
1034
|
```
|
|
981
1035
|
|
|
982
1036
|
- `drizzle`: The typed Drizzle database instance for ORM operations
|
|
983
1037
|
- `db`: Backwards-compatible alias for `drizzle`
|
|
984
1038
|
- `client`: The underlying libSQL client for advanced operations not covered by Drizzle
|
|
1039
|
+
- `checkHealth`: A cheap `select 1` dependency check for app-owned readiness
|
|
1040
|
+
endpoints
|
|
985
1041
|
|
|
986
1042
|
### `createDrizzleSqliteProvider<TSchema>(options)`
|
|
987
1043
|
|
package/dist/mysql/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ import type { MySqlDatabase, MySqlQueryResultHKT, MySqlTransaction, MySqlTransac
|
|
|
34
34
|
import { type MySql2Database } from "drizzle-orm/mysql2";
|
|
35
35
|
import type { Pool, PoolOptions } from "mysql2/promise";
|
|
36
36
|
import { z } from "zod";
|
|
37
|
+
import { type DbHealth } from "../shared/health.js";
|
|
37
38
|
/**
|
|
38
39
|
* Typed database port interface.
|
|
39
40
|
* Exposes a typed Drizzle database instance for your schema.
|
|
@@ -57,7 +58,15 @@ export interface DbPort<TSchema extends Record<string, unknown> = Record<string,
|
|
|
57
58
|
* Use this for advanced operations not covered by Drizzle ORM.
|
|
58
59
|
*/
|
|
59
60
|
pool: Pool;
|
|
61
|
+
/**
|
|
62
|
+
* Check whether the underlying database pool can run a cheap read query.
|
|
63
|
+
*
|
|
64
|
+
* Intended for app-owned readiness endpoints. This does not run migrations
|
|
65
|
+
* or mutate schema.
|
|
66
|
+
*/
|
|
67
|
+
checkHealth(): Promise<DbHealth>;
|
|
60
68
|
}
|
|
69
|
+
export type { DbHealth };
|
|
61
70
|
/**
|
|
62
71
|
* Drizzle database or transaction client accepted by repository factories.
|
|
63
72
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mysql/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,2BAA2B,EAEhC,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mysql/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,2BAA2B,EAEhC,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,qBAAqB,CAAC;AAc/E;;;;;GAKG;AACH,MAAM,WAAW,MAAM,CACrB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjE;;;OAGG;IACH,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;OAIG;IACH,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAE5B;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClC;AAED,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC/D,aAAa,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC/D,gBAAgB,CAClB,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACP,0BAA0B,CAAC,OAAO,CAAC,CACpC,CAAC;AAWF;;GAEG;AACH,MAAM,WAAW,6BAA6B,CAC5C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO;IAEP;;OAEG;IACH,EAAE,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAElC;;;;;OAKG;IACH,sBAAsB,EAAE,CACtB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,2BAA2B,KAChC,OAAO,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,EAEP,OAAO,EAAE,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,GACvD,cAAc,CAAC,OAAO,CAAC,CAsBzB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAsHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uCAAuC,CACrD,OAAO,GAAE,yBAA8B,GACtC,SAAS,MAAM,EAAE,CA0BnB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEvC,EAAE,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACjC,cAAc,GAAE,yBAA8B,GAC7C,UAAU,CAOZ;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,qBAAa,oCAAqC,SAAQ,KAAK;IAC7D,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE;QAChB,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;KAClB;CAQF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4CAA4C,CAC1D,OAAO,GAAE,8BAAmC,GAC3C,SAAS,MAAM,EAAE,CAsBnB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEvC,EAAE,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACjC,cAAc,GAAE,8BAAmC,GAClD,eAAe,CAWjB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;iBAY5B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,2BAA2B,CAC1C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,SAAS,MAAM,GAAG,IAAI;IAE9B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEhC;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,SAAS,MAAM,GAAG,IAAI,EAC9B,OAAO,EAAE,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC;;qEA8DxD"}
|
package/dist/mysql/index.js
CHANGED
|
@@ -32,10 +32,20 @@ import { sql } from "drizzle-orm";
|
|
|
32
32
|
import { drizzle } from "drizzle-orm/mysql2";
|
|
33
33
|
import * as mysql from "mysql2/promise";
|
|
34
34
|
import { z } from "zod";
|
|
35
|
+
import { dbHealthError, dbHealthOk } from "../shared/health.js";
|
|
35
36
|
import { createIdempotencyPortCore, formatIdempotencyMutationErrorMessage, } from "../shared/idempotency-core.js";
|
|
36
37
|
import { quoteIdentifier } from "../shared/identifiers.js";
|
|
37
38
|
import { createDbQueryLogger } from "../shared/instrumentation.js";
|
|
38
39
|
import { createOutboxPortCore, } from "../shared/outbox-core.js";
|
|
40
|
+
async function checkMysqlHealth(pool) {
|
|
41
|
+
try {
|
|
42
|
+
await pool.query("select 1");
|
|
43
|
+
return dbHealthOk("mysql");
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
return dbHealthError("mysql", error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
39
49
|
/**
|
|
40
50
|
* Create a Unit of Work port backed by Drizzle's MySQL transaction API.
|
|
41
51
|
*
|
|
@@ -328,7 +338,12 @@ export function createDrizzleMysqlProvider(options) {
|
|
|
328
338
|
? drizzle(pool, { schema, logger, mode })
|
|
329
339
|
: drizzle(pool, { schema, mode });
|
|
330
340
|
// 3. Build a typed DbPort
|
|
331
|
-
const dbPort = {
|
|
341
|
+
const dbPort = {
|
|
342
|
+
drizzle: db,
|
|
343
|
+
db,
|
|
344
|
+
pool,
|
|
345
|
+
checkHealth: () => checkMysqlHealth(pool),
|
|
346
|
+
};
|
|
332
347
|
return {
|
|
333
348
|
ports: { [portName]: dbPort },
|
|
334
349
|
async stop() {
|
package/dist/mysql/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mysql/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAEL,yBAAyB,GAI1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA6C,GAAG,EAAE,MAAM,aAAa,CAAC;AAQ7E,OAAO,EAAE,OAAO,EAAuB,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,qCAAqC,GAEtC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mysql/index.ts"],"names":[],"mappings":"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"}
|
package/dist/postgres/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ import { type NodePgDatabase } from "drizzle-orm/node-postgres";
|
|
|
34
34
|
import { type PgDatabase, type PgQueryResultHKT, PgTransaction, type PgTransactionConfig } from "drizzle-orm/pg-core";
|
|
35
35
|
import { type Pool, type PoolConfig } from "pg";
|
|
36
36
|
import { z } from "zod";
|
|
37
|
+
import { type DbHealth } from "../shared/health.js";
|
|
37
38
|
/**
|
|
38
39
|
* Typed database port interface.
|
|
39
40
|
* Exposes a typed Drizzle database instance for your schema.
|
|
@@ -57,7 +58,15 @@ export interface DbPort<TSchema extends Record<string, unknown> = Record<string,
|
|
|
57
58
|
* Use this for advanced operations not covered by Drizzle ORM.
|
|
58
59
|
*/
|
|
59
60
|
pool: Pool;
|
|
61
|
+
/**
|
|
62
|
+
* Check whether the underlying database pool can run a cheap read query.
|
|
63
|
+
*
|
|
64
|
+
* Intended for app-owned readiness endpoints. This does not run migrations
|
|
65
|
+
* or mutate schema.
|
|
66
|
+
*/
|
|
67
|
+
checkHealth(): Promise<DbHealth>;
|
|
60
68
|
}
|
|
69
|
+
export type { DbHealth };
|
|
61
70
|
/**
|
|
62
71
|
* Drizzle database or transaction client accepted by repository factories.
|
|
63
72
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,2BAA2B,EAEhC,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAW,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"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"}
|
package/dist/postgres/index.js
CHANGED
|
@@ -33,10 +33,20 @@ import { drizzle } from "drizzle-orm/node-postgres";
|
|
|
33
33
|
import { PgTransaction, } from "drizzle-orm/pg-core";
|
|
34
34
|
import pg from "pg";
|
|
35
35
|
import { z } from "zod";
|
|
36
|
+
import { dbHealthError, dbHealthOk } from "../shared/health.js";
|
|
36
37
|
import { createIdempotencyPortCore, formatIdempotencyMutationErrorMessage, } from "../shared/idempotency-core.js";
|
|
37
38
|
import { quoteIdentifier } from "../shared/identifiers.js";
|
|
38
39
|
import { createDbQueryLogger } from "../shared/instrumentation.js";
|
|
39
40
|
import { createOutboxPortCore, } from "../shared/outbox-core.js";
|
|
41
|
+
async function checkPostgresHealth(pool) {
|
|
42
|
+
try {
|
|
43
|
+
await pool.query("select 1");
|
|
44
|
+
return dbHealthOk("postgres");
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return dbHealthError("postgres", error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
40
50
|
/**
|
|
41
51
|
* Create a Unit of Work port backed by Drizzle's Postgres transaction API.
|
|
42
52
|
*
|
|
@@ -276,7 +286,12 @@ export function createDrizzlePostgresProvider(options) {
|
|
|
276
286
|
? drizzle(pool, { schema, logger })
|
|
277
287
|
: drizzle(pool, { schema });
|
|
278
288
|
// 3. Build a typed DbPort
|
|
279
|
-
const dbPort = {
|
|
289
|
+
const dbPort = {
|
|
290
|
+
drizzle: db,
|
|
291
|
+
db,
|
|
292
|
+
pool,
|
|
293
|
+
checkHealth: () => checkPostgresHealth(pool),
|
|
294
|
+
};
|
|
280
295
|
return {
|
|
281
296
|
ports: { [portName]: dbPort },
|
|
282
297
|
async stop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAEL,yBAAyB,GAI1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA6C,GAAG,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAuB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAGL,aAAa,GAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAkC,MAAM,IAAI,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,qCAAqC,GAEtC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postgres/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface DbHealth {
|
|
2
|
+
ok: boolean;
|
|
3
|
+
message?: string;
|
|
4
|
+
metadata: {
|
|
5
|
+
adapter: "sqlite" | "postgres" | "mysql";
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare function dbHealthOk(adapter: DbHealth["metadata"]["adapter"]): DbHealth;
|
|
9
|
+
export declare function dbHealthError(adapter: DbHealth["metadata"]["adapter"], error: unknown): DbHealth;
|
|
10
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/shared/health.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QACR,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;KAC1C,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,CAK7E;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EACxC,KAAK,EAAE,OAAO,GACb,QAAQ,CAMV"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function dbHealthOk(adapter) {
|
|
2
|
+
return {
|
|
3
|
+
ok: true,
|
|
4
|
+
metadata: { adapter },
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function dbHealthError(adapter, error) {
|
|
8
|
+
return {
|
|
9
|
+
ok: false,
|
|
10
|
+
message: error instanceof Error ? error.message : String(error),
|
|
11
|
+
metadata: { adapter },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/shared/health.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CAAC,OAAwC;IACjE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,EAAE,OAAO,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAwC,EACxC,KAAc;IAEd,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,QAAQ,EAAE,EAAE,OAAO,EAAE;KACtB,CAAC;AACJ,CAAC"}
|
package/dist/sqlite/index.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ import { type LibSQLDatabase } from "drizzle-orm/libsql";
|
|
|
37
37
|
import type { LibSQLTransaction } from "drizzle-orm/libsql/session";
|
|
38
38
|
import type { SQLiteTransactionConfig } from "drizzle-orm/sqlite-core";
|
|
39
39
|
import { z } from "zod";
|
|
40
|
+
import { type DbHealth } from "../shared/health.js";
|
|
40
41
|
/**
|
|
41
42
|
* Typed database port interface.
|
|
42
43
|
* Exposes a typed Drizzle database instance for your schema.
|
|
@@ -60,7 +61,15 @@ export interface DbPort<TSchema extends Record<string, unknown> = Record<string,
|
|
|
60
61
|
* Use this for advanced operations not covered by Drizzle ORM.
|
|
61
62
|
*/
|
|
62
63
|
client: Client;
|
|
64
|
+
/**
|
|
65
|
+
* Check whether the underlying database client can run a cheap read query.
|
|
66
|
+
*
|
|
67
|
+
* Intended for app-owned readiness endpoints. This does not run migrations
|
|
68
|
+
* or mutate schema.
|
|
69
|
+
*/
|
|
70
|
+
checkHealth(): Promise<DbHealth>;
|
|
63
71
|
}
|
|
72
|
+
export type { DbHealth };
|
|
64
73
|
/**
|
|
65
74
|
* Drizzle database or transaction client accepted by repository factories.
|
|
66
75
|
*/
|
|
@@ -237,5 +246,4 @@ export declare function createDrizzleSqliteProvider<TSchema extends Record<strin
|
|
|
237
246
|
DB_URL: z.ZodString;
|
|
238
247
|
DB_AUTH_TOKEN: z.ZodOptional<z.ZodString>;
|
|
239
248
|
}, z.core.$strip>, Record<PortName, DbPort<TSchema>>, unknown, void>;
|
|
240
|
-
export {};
|
|
241
249
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,2BAA2B,EAEhC,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"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"}
|
package/dist/sqlite/index.js
CHANGED
|
@@ -34,10 +34,20 @@ import { createClient } from "@libsql/client";
|
|
|
34
34
|
import { sql } from "drizzle-orm";
|
|
35
35
|
import { drizzle } from "drizzle-orm/libsql";
|
|
36
36
|
import { z } from "zod";
|
|
37
|
+
import { dbHealthError, dbHealthOk } from "../shared/health.js";
|
|
37
38
|
import { createIdempotencyPortCore, formatIdempotencyMutationErrorMessage, } from "../shared/idempotency-core.js";
|
|
38
39
|
import { quoteIdentifier } from "../shared/identifiers.js";
|
|
39
40
|
import { createDbQueryLogger } from "../shared/instrumentation.js";
|
|
40
41
|
import { createOutboxPortCore, } from "../shared/outbox-core.js";
|
|
42
|
+
async function checkSqliteHealth(client) {
|
|
43
|
+
try {
|
|
44
|
+
await client.execute("select 1");
|
|
45
|
+
return dbHealthOk("sqlite");
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return dbHealthError("sqlite", error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
41
51
|
/**
|
|
42
52
|
* Create a Unit of Work port backed by Drizzle's libSQL transaction API.
|
|
43
53
|
*
|
|
@@ -273,7 +283,12 @@ export function createDrizzleSqliteProvider(options) {
|
|
|
273
283
|
? drizzle(client, { schema, logger })
|
|
274
284
|
: drizzle(client, { schema });
|
|
275
285
|
// 3. Build a typed DbPort
|
|
276
|
-
const dbPort = {
|
|
286
|
+
const dbPort = {
|
|
287
|
+
drizzle: db,
|
|
288
|
+
db,
|
|
289
|
+
client,
|
|
290
|
+
checkHealth: () => checkSqliteHealth(client),
|
|
291
|
+
};
|
|
277
292
|
return {
|
|
278
293
|
ports: { [portName]: dbPort },
|
|
279
294
|
async stop() {
|
package/dist/sqlite/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,EAEL,yBAAyB,GAI1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAA6C,GAAG,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAuB,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,qCAAqC,GAEtC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,oBAAoB,GAGrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/provider-db-drizzle",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Drizzle ORM database providers for Beignet — typed DbPort, unit of work, outbox, and idempotency for SQLite (libSQL/Turso), Postgres, and MySQL.",
|
|
6
6
|
"exports": {
|
package/src/mysql/index.ts
CHANGED
|
@@ -52,6 +52,7 @@ import { drizzle, type MySql2Database } from "drizzle-orm/mysql2";
|
|
|
52
52
|
import type { Pool, PoolOptions } from "mysql2/promise";
|
|
53
53
|
import * as mysql from "mysql2/promise";
|
|
54
54
|
import { z } from "zod";
|
|
55
|
+
import { type DbHealth, dbHealthError, dbHealthOk } from "../shared/health.js";
|
|
55
56
|
import {
|
|
56
57
|
createIdempotencyPortCore,
|
|
57
58
|
formatIdempotencyMutationErrorMessage,
|
|
@@ -92,8 +93,18 @@ export interface DbPort<
|
|
|
92
93
|
* Use this for advanced operations not covered by Drizzle ORM.
|
|
93
94
|
*/
|
|
94
95
|
pool: Pool;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Check whether the underlying database pool can run a cheap read query.
|
|
99
|
+
*
|
|
100
|
+
* Intended for app-owned readiness endpoints. This does not run migrations
|
|
101
|
+
* or mutate schema.
|
|
102
|
+
*/
|
|
103
|
+
checkHealth(): Promise<DbHealth>;
|
|
95
104
|
}
|
|
96
105
|
|
|
106
|
+
export type { DbHealth };
|
|
107
|
+
|
|
97
108
|
/**
|
|
98
109
|
* Drizzle database or transaction client accepted by repository factories.
|
|
99
110
|
*
|
|
@@ -116,6 +127,15 @@ export type DrizzleMysqlTransaction<
|
|
|
116
127
|
ExtractTablesWithRelations<TSchema>
|
|
117
128
|
>;
|
|
118
129
|
|
|
130
|
+
async function checkMysqlHealth(pool: Pool): Promise<DbHealth> {
|
|
131
|
+
try {
|
|
132
|
+
await pool.query("select 1");
|
|
133
|
+
return dbHealthOk("mysql");
|
|
134
|
+
} catch (error) {
|
|
135
|
+
return dbHealthError("mysql", error);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
119
139
|
/**
|
|
120
140
|
* Options for creating a Drizzle MySQL-backed Unit of Work port.
|
|
121
141
|
*/
|
|
@@ -612,7 +632,12 @@ export function createDrizzleMysqlProvider<
|
|
|
612
632
|
: drizzle(pool, { schema, mode });
|
|
613
633
|
|
|
614
634
|
// 3. Build a typed DbPort
|
|
615
|
-
const dbPort: DbPort<TSchema> = {
|
|
635
|
+
const dbPort: DbPort<TSchema> = {
|
|
636
|
+
drizzle: db,
|
|
637
|
+
db,
|
|
638
|
+
pool,
|
|
639
|
+
checkHealth: () => checkMysqlHealth(pool),
|
|
640
|
+
};
|
|
616
641
|
|
|
617
642
|
return {
|
|
618
643
|
ports: { [portName]: dbPort } as Record<PortName, DbPort<TSchema>>,
|
package/src/postgres/index.ts
CHANGED
|
@@ -50,6 +50,7 @@ import {
|
|
|
50
50
|
} from "drizzle-orm/pg-core";
|
|
51
51
|
import pg, { type Pool, type PoolConfig } from "pg";
|
|
52
52
|
import { z } from "zod";
|
|
53
|
+
import { type DbHealth, dbHealthError, dbHealthOk } from "../shared/health.js";
|
|
53
54
|
import {
|
|
54
55
|
createIdempotencyPortCore,
|
|
55
56
|
formatIdempotencyMutationErrorMessage,
|
|
@@ -90,8 +91,18 @@ export interface DbPort<
|
|
|
90
91
|
* Use this for advanced operations not covered by Drizzle ORM.
|
|
91
92
|
*/
|
|
92
93
|
pool: Pool;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Check whether the underlying database pool can run a cheap read query.
|
|
97
|
+
*
|
|
98
|
+
* Intended for app-owned readiness endpoints. This does not run migrations
|
|
99
|
+
* or mutate schema.
|
|
100
|
+
*/
|
|
101
|
+
checkHealth(): Promise<DbHealth>;
|
|
93
102
|
}
|
|
94
103
|
|
|
104
|
+
export type { DbHealth };
|
|
105
|
+
|
|
95
106
|
/**
|
|
96
107
|
* Drizzle database or transaction client accepted by repository factories.
|
|
97
108
|
*
|
|
@@ -114,6 +125,15 @@ export type DrizzlePostgresTransaction<
|
|
|
114
125
|
ExtractTablesWithRelations<TSchema>
|
|
115
126
|
>;
|
|
116
127
|
|
|
128
|
+
async function checkPostgresHealth(pool: Pool): Promise<DbHealth> {
|
|
129
|
+
try {
|
|
130
|
+
await pool.query("select 1");
|
|
131
|
+
return dbHealthOk("postgres");
|
|
132
|
+
} catch (error) {
|
|
133
|
+
return dbHealthError("postgres", error);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
117
137
|
/**
|
|
118
138
|
* Options for creating a Drizzle Postgres-backed Unit of Work port.
|
|
119
139
|
*/
|
|
@@ -557,7 +577,12 @@ export function createDrizzlePostgresProvider<
|
|
|
557
577
|
: drizzle(pool, { schema });
|
|
558
578
|
|
|
559
579
|
// 3. Build a typed DbPort
|
|
560
|
-
const dbPort: DbPort<TSchema> = {
|
|
580
|
+
const dbPort: DbPort<TSchema> = {
|
|
581
|
+
drizzle: db,
|
|
582
|
+
db,
|
|
583
|
+
pool,
|
|
584
|
+
checkHealth: () => checkPostgresHealth(pool),
|
|
585
|
+
};
|
|
561
586
|
|
|
562
587
|
return {
|
|
563
588
|
ports: { [portName]: dbPort } as Record<PortName, DbPort<TSchema>>,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface DbHealth {
|
|
2
|
+
ok: boolean;
|
|
3
|
+
message?: string;
|
|
4
|
+
metadata: {
|
|
5
|
+
adapter: "sqlite" | "postgres" | "mysql";
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function dbHealthOk(adapter: DbHealth["metadata"]["adapter"]): DbHealth {
|
|
10
|
+
return {
|
|
11
|
+
ok: true,
|
|
12
|
+
metadata: { adapter },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function dbHealthError(
|
|
17
|
+
adapter: DbHealth["metadata"]["adapter"],
|
|
18
|
+
error: unknown,
|
|
19
|
+
): DbHealth {
|
|
20
|
+
return {
|
|
21
|
+
ok: false,
|
|
22
|
+
message: error instanceof Error ? error.message : String(error),
|
|
23
|
+
metadata: { adapter },
|
|
24
|
+
};
|
|
25
|
+
}
|
package/src/sqlite/index.ts
CHANGED
|
@@ -48,6 +48,7 @@ import { drizzle, type LibSQLDatabase } from "drizzle-orm/libsql";
|
|
|
48
48
|
import type { LibSQLTransaction } from "drizzle-orm/libsql/session";
|
|
49
49
|
import type { SQLiteTransactionConfig } from "drizzle-orm/sqlite-core";
|
|
50
50
|
import { z } from "zod";
|
|
51
|
+
import { type DbHealth, dbHealthError, dbHealthOk } from "../shared/health.js";
|
|
51
52
|
import {
|
|
52
53
|
createIdempotencyPortCore,
|
|
53
54
|
formatIdempotencyMutationErrorMessage,
|
|
@@ -88,8 +89,18 @@ export interface DbPort<
|
|
|
88
89
|
* Use this for advanced operations not covered by Drizzle ORM.
|
|
89
90
|
*/
|
|
90
91
|
client: Client;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Check whether the underlying database client can run a cheap read query.
|
|
95
|
+
*
|
|
96
|
+
* Intended for app-owned readiness endpoints. This does not run migrations
|
|
97
|
+
* or mutate schema.
|
|
98
|
+
*/
|
|
99
|
+
checkHealth(): Promise<DbHealth>;
|
|
91
100
|
}
|
|
92
101
|
|
|
102
|
+
export type { DbHealth };
|
|
103
|
+
|
|
93
104
|
/**
|
|
94
105
|
* Drizzle database or transaction client accepted by repository factories.
|
|
95
106
|
*/
|
|
@@ -106,6 +117,15 @@ export type DrizzleSqliteTransaction<
|
|
|
106
117
|
TSchema extends Record<string, unknown> = Record<string, unknown>,
|
|
107
118
|
> = LibSQLTransaction<TSchema, ExtractTablesWithRelations<TSchema>>;
|
|
108
119
|
|
|
120
|
+
async function checkSqliteHealth(client: Client): Promise<DbHealth> {
|
|
121
|
+
try {
|
|
122
|
+
await client.execute("select 1");
|
|
123
|
+
return dbHealthOk("sqlite");
|
|
124
|
+
} catch (error) {
|
|
125
|
+
return dbHealthError("sqlite", error);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
109
129
|
/**
|
|
110
130
|
* Options for creating a Drizzle SQLite-backed Unit of Work port.
|
|
111
131
|
*/
|
|
@@ -532,7 +552,12 @@ export function createDrizzleSqliteProvider<
|
|
|
532
552
|
: drizzle(client, { schema });
|
|
533
553
|
|
|
534
554
|
// 3. Build a typed DbPort
|
|
535
|
-
const dbPort: DbPort<TSchema> = {
|
|
555
|
+
const dbPort: DbPort<TSchema> = {
|
|
556
|
+
drizzle: db,
|
|
557
|
+
db,
|
|
558
|
+
client,
|
|
559
|
+
checkHealth: () => checkSqliteHealth(client),
|
|
560
|
+
};
|
|
536
561
|
|
|
537
562
|
return {
|
|
538
563
|
ports: { [portName]: dbPort } as Record<PortName, DbPort<TSchema>>,
|