@rudderjs/orm-drizzle 0.0.10 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -39
- package/dist/index.d.ts +72 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127 -43
- package/dist/index.js.map +1 -1
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -30,11 +30,17 @@ pnpm add @libsql/client
|
|
|
30
30
|
pnpm add postgres
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
After installing, refresh the provider manifest so the bundled `DatabaseProvider` gets picked up by `defaultProviders()`:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pnpm rudder providers:discover
|
|
37
|
+
```
|
|
38
|
+
|
|
33
39
|
---
|
|
34
40
|
|
|
35
41
|
## Defining a Drizzle Schema
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
Drizzle is schema-first in TypeScript — define table objects that the adapter uses to build queries.
|
|
38
44
|
|
|
39
45
|
```ts
|
|
40
46
|
// app/schema.ts
|
|
@@ -56,36 +62,34 @@ export const posts = sqliteTable('posts', {
|
|
|
56
62
|
|
|
57
63
|
---
|
|
58
64
|
|
|
59
|
-
##
|
|
65
|
+
## Configuration
|
|
60
66
|
|
|
61
|
-
|
|
67
|
+
Define your database config in `config/database.ts`:
|
|
62
68
|
|
|
63
69
|
```ts
|
|
64
|
-
//
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
tables: {
|
|
76
|
-
users, // tableName used in Model.table → drizzle table object
|
|
77
|
-
posts,
|
|
78
|
-
},
|
|
79
|
-
}).create()
|
|
80
|
-
|
|
81
|
-
await adapter.connect() // no-op — Drizzle connects lazily
|
|
82
|
-
ModelRegistry.set(adapter)
|
|
83
|
-
this.app.instance('db', adapter)
|
|
84
|
-
}
|
|
70
|
+
// config/database.ts
|
|
71
|
+
import type { DatabaseConfig } from '@rudderjs/orm-drizzle'
|
|
72
|
+
import { users, posts } from '../app/schema.js'
|
|
73
|
+
|
|
74
|
+
const config: DatabaseConfig = {
|
|
75
|
+
default: 'sqlite',
|
|
76
|
+
connections: {
|
|
77
|
+
sqlite: { driver: 'sqlite', url: process.env['DATABASE_URL'] ?? 'file:./dev.db' },
|
|
78
|
+
postgresql: { driver: 'postgresql', url: process.env['DATABASE_URL'] ?? '' },
|
|
79
|
+
},
|
|
80
|
+
tables: { users, posts },
|
|
85
81
|
}
|
|
82
|
+
|
|
83
|
+
export default config
|
|
86
84
|
```
|
|
87
85
|
|
|
88
|
-
|
|
86
|
+
`DatabaseProvider` reads this config automatically via `defaultProviders()` — no manual provider class needed.
|
|
87
|
+
|
|
88
|
+
If you have multiple ORM adapters installed (e.g. `@rudderjs/orm-prisma` + `@rudderjs/orm-drizzle`), set `database.driver` to disambiguate. Otherwise the first installed wins.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Model definition
|
|
89
93
|
|
|
90
94
|
```ts
|
|
91
95
|
// app/Models/User.ts
|
|
@@ -102,14 +106,15 @@ export class User extends Model {
|
|
|
102
106
|
|
|
103
107
|
---
|
|
104
108
|
|
|
105
|
-
##
|
|
109
|
+
## Manual wiring (advanced)
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
To bypass the bundled provider — for tests, custom drivers, or pre-built drizzle instances — use the `drizzle()` factory directly:
|
|
108
112
|
|
|
109
113
|
```ts
|
|
110
114
|
import { drizzle as dzCreate } from 'drizzle-orm/better-sqlite3'
|
|
111
|
-
import Database
|
|
112
|
-
import {
|
|
115
|
+
import Database from 'better-sqlite3'
|
|
116
|
+
import { drizzle } from '@rudderjs/orm-drizzle'
|
|
117
|
+
import { users } from '../schema.js'
|
|
113
118
|
|
|
114
119
|
const db = dzCreate(new Database('./dev.db'))
|
|
115
120
|
|
|
@@ -119,6 +124,8 @@ const adapter = await drizzle({
|
|
|
119
124
|
}).create()
|
|
120
125
|
```
|
|
121
126
|
|
|
127
|
+
Then either pass `client` to `DatabaseProvider` via `config('database').client`, or skip the provider entirely and call `ModelRegistry.set(adapter)` from your own service provider.
|
|
128
|
+
|
|
122
129
|
---
|
|
123
130
|
|
|
124
131
|
## Global Table Registry
|
|
@@ -126,7 +133,6 @@ const adapter = await drizzle({
|
|
|
126
133
|
As an alternative to passing `tables` in config, register tables globally — useful when tables are defined across multiple modules:
|
|
127
134
|
|
|
128
135
|
```ts
|
|
129
|
-
// bootstrap/app.ts or a service provider
|
|
130
136
|
import { DrizzleTableRegistry } from '@rudderjs/orm-drizzle'
|
|
131
137
|
import { users, posts } from '../app/schema.js'
|
|
132
138
|
|
|
@@ -143,20 +149,20 @@ The adapter checks `tables` config first, then falls back to `DrizzleTableRegist
|
|
|
143
149
|
### SQLite (default)
|
|
144
150
|
|
|
145
151
|
```ts
|
|
146
|
-
|
|
152
|
+
{ driver: 'sqlite', url: 'file:./dev.db' }
|
|
147
153
|
// url defaults to DATABASE_URL env var, then 'file:./dev.db'
|
|
148
154
|
```
|
|
149
155
|
|
|
150
156
|
### LibSQL / Turso
|
|
151
157
|
|
|
152
158
|
```ts
|
|
153
|
-
|
|
159
|
+
{ driver: 'libsql', url: 'libsql://your-db.turso.io?authToken=...' }
|
|
154
160
|
```
|
|
155
161
|
|
|
156
162
|
### PostgreSQL
|
|
157
163
|
|
|
158
164
|
```ts
|
|
159
|
-
|
|
165
|
+
{ driver: 'postgresql', url: 'postgres://user:pass@localhost/mydb' }
|
|
160
166
|
```
|
|
161
167
|
|
|
162
168
|
---
|
|
@@ -167,25 +173,40 @@ All methods mirror the `@rudderjs/orm` `QueryBuilder<T>` contract:
|
|
|
167
173
|
|
|
168
174
|
| Method | Description |
|
|
169
175
|
|--------|-------------|
|
|
170
|
-
| `where(col, value)` | Equality filter |
|
|
176
|
+
| `where(col, value)` | Equality filter (AND) |
|
|
171
177
|
| `where(col, op, value)` | Filter with operator (`=`, `!=`, `>`, `>=`, `<`, `<=`, `LIKE`, `IN`, `NOT IN`) |
|
|
172
|
-
| `orWhere(col, value)` |
|
|
178
|
+
| `orWhere(col, value)` | Equality filter joined with `OR` |
|
|
179
|
+
| `orWhere(col, op, value)` | Operator filter joined with `OR` |
|
|
173
180
|
| `orderBy(col, dir?)` | Sort by column (`ASC` / `DESC`) |
|
|
174
181
|
| `limit(n)` | Max rows to return |
|
|
175
182
|
| `offset(n)` | Skip rows |
|
|
176
183
|
| `with(...relations)` | **No-op** — see known limitations |
|
|
184
|
+
| `withTrashed()` | Include soft-deleted rows in results |
|
|
185
|
+
| `onlyTrashed()` | Return only soft-deleted rows |
|
|
177
186
|
| `first()` | First matching row or `null` |
|
|
178
|
-
| `find(id)` | Row by primary key or `null` |
|
|
187
|
+
| `find(id)` | Row by primary key or `null` (respects soft-delete filter) |
|
|
179
188
|
| `get()` | All matching rows |
|
|
180
|
-
| `all()` | All rows
|
|
189
|
+
| `all()` | All matching rows (alias of `get()`) |
|
|
181
190
|
| `count()` | Row count matching current filters |
|
|
182
191
|
| `create(data)` | Insert a row, returns the inserted row |
|
|
183
192
|
| `update(id, data)` | Update by primary key, returns the updated row |
|
|
184
|
-
| `delete(id)` | Delete by primary key |
|
|
193
|
+
| `delete(id)` | Delete by primary key (soft-deletes when enabled by Model) |
|
|
194
|
+
| `restore(id)` | Clear `deletedAt` to undo a soft delete |
|
|
195
|
+
| `forceDelete(id)` | Hard-delete the row even with soft deletes enabled |
|
|
196
|
+
| `increment(id, col, n?, extra?)` | Atomic `col = col + n` via SQL |
|
|
197
|
+
| `decrement(id, col, n?, extra?)` | Atomic `col = col - n` via SQL |
|
|
185
198
|
| `paginate(page, perPage?)` | Paginated result with metadata |
|
|
186
199
|
|
|
187
200
|
---
|
|
188
201
|
|
|
202
|
+
## Soft Deletes
|
|
203
|
+
|
|
204
|
+
When the Model enables soft deletes (via `_enableSoftDeletes()` on the QueryBuilder), all read paths (`get`, `first`, `find`, `all`, `count`, `paginate`) filter out rows where `deletedAt IS NOT NULL`. `delete()` updates `deletedAt = now()` instead of issuing a `DELETE`. `restore()` clears `deletedAt`. `forceDelete()` always issues a hard `DELETE`.
|
|
205
|
+
|
|
206
|
+
`withTrashed()` includes soft-deleted rows; `onlyTrashed()` returns only the soft-deleted ones.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
189
210
|
## Known Limitations
|
|
190
211
|
|
|
191
212
|
### `with()` is a no-op
|
|
@@ -196,7 +217,7 @@ Use `with()` as a pass-through (it will silently be ignored) and load relations
|
|
|
196
217
|
|
|
197
218
|
### No MySQL support
|
|
198
219
|
|
|
199
|
-
`mysql2` does not support `.returning()`, which is required for `create()` and `update()`. MySQL support is not planned
|
|
220
|
+
`mysql2` does not support `.returning()`, which is required for `create()` and `update()`. MySQL support is not planned.
|
|
200
221
|
|
|
201
222
|
### `connect()` is a no-op
|
|
202
223
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,45 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type SQL } from 'drizzle-orm';
|
|
2
|
+
import type { OrmAdapter, OrmAdapterProvider, QueryBuilder } from '@rudderjs/contracts';
|
|
3
|
+
type DrizzleQB = {
|
|
4
|
+
where(cond: SQL): DrizzleQB;
|
|
5
|
+
orderBy(...cols: SQL[]): DrizzleQB;
|
|
6
|
+
limit(n: number): DrizzleQB;
|
|
7
|
+
offset(n: number): DrizzleQB;
|
|
8
|
+
returning(): DrizzleQB;
|
|
9
|
+
set(data: unknown): DrizzleQB;
|
|
10
|
+
values(data: unknown): DrizzleQB;
|
|
11
|
+
then<TResult>(onfulfilled: (value: unknown) => TResult): Promise<TResult>;
|
|
12
|
+
};
|
|
13
|
+
type DrizzleDb = {
|
|
14
|
+
select(fields?: Record<string, unknown>): {
|
|
15
|
+
from(table: unknown): DrizzleQB;
|
|
16
|
+
};
|
|
17
|
+
insert(table: unknown): {
|
|
18
|
+
values(data: unknown): DrizzleQB;
|
|
19
|
+
};
|
|
20
|
+
update(table: unknown): {
|
|
21
|
+
set(data: unknown): DrizzleQB;
|
|
22
|
+
};
|
|
23
|
+
delete(table: unknown): DrizzleQB;
|
|
24
|
+
$client?: {
|
|
25
|
+
end?: () => Promise<void>;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
2
28
|
export declare class DrizzleTableRegistry {
|
|
3
29
|
private static tables;
|
|
4
30
|
static register(name: string, table: unknown): void;
|
|
5
31
|
static get(name: string): unknown | undefined;
|
|
6
32
|
}
|
|
33
|
+
export declare class DrizzleAdapter implements OrmAdapter {
|
|
34
|
+
readonly db: DrizzleDb;
|
|
35
|
+
private readonly tables;
|
|
36
|
+
private readonly primaryKey;
|
|
37
|
+
private constructor();
|
|
38
|
+
static make(config: DrizzleConfig): Promise<DrizzleAdapter>;
|
|
39
|
+
query<T>(table: string): QueryBuilder<T>;
|
|
40
|
+
connect(): Promise<void>;
|
|
41
|
+
disconnect(): Promise<void>;
|
|
42
|
+
}
|
|
7
43
|
export interface DrizzleConfig {
|
|
8
44
|
/** Pre-built drizzle db instance — skips driver setup */
|
|
9
45
|
client?: unknown;
|
|
@@ -17,4 +53,39 @@ export interface DrizzleConfig {
|
|
|
17
53
|
primaryKey?: string;
|
|
18
54
|
}
|
|
19
55
|
export declare function drizzle(config?: DrizzleConfig): OrmAdapterProvider;
|
|
56
|
+
import { ServiceProvider } from '@rudderjs/core';
|
|
57
|
+
export interface DatabaseConnectionConfig {
|
|
58
|
+
driver: 'sqlite' | 'postgresql' | 'libsql';
|
|
59
|
+
url?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Database config consumed by `DatabaseProvider`.
|
|
63
|
+
*
|
|
64
|
+
* Mirrors the Prisma adapter's `DatabaseConfig` shape (`default` + `connections`)
|
|
65
|
+
* so apps can switch drivers without restructuring their `config/database.ts`,
|
|
66
|
+
* with two Drizzle-specific extras:
|
|
67
|
+
*
|
|
68
|
+
* - `tables` — map of table name → drizzle table object (Drizzle is schema-first
|
|
69
|
+
* in TypeScript; the adapter needs the table objects to build queries).
|
|
70
|
+
* - `client` — pre-built drizzle db instance, for tests or hand-wired setups.
|
|
71
|
+
*/
|
|
72
|
+
export interface DatabaseConfig {
|
|
73
|
+
default: string;
|
|
74
|
+
connections: Record<string, DatabaseConnectionConfig>;
|
|
75
|
+
tables?: Record<string, unknown>;
|
|
76
|
+
client?: unknown;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Auto-discovered service provider that boots a `DrizzleAdapter` from
|
|
80
|
+
* `config('database')` and registers it on the DI container.
|
|
81
|
+
*
|
|
82
|
+
* Wires:
|
|
83
|
+
* - `ModelRegistry.set(adapter)` so `@rudderjs/orm` Models route through it
|
|
84
|
+
* - `app.instance('db', adapter)` for direct DI lookup
|
|
85
|
+
*/
|
|
86
|
+
export declare class DatabaseProvider extends ServiceProvider {
|
|
87
|
+
register(): void;
|
|
88
|
+
boot(): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
export {};
|
|
20
91
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { eq, ne, gt, gte, lt, lte, like, inArray, notInArray, and, asc, desc, count as sqlCount, } from 'drizzle-orm';
|
|
1
|
+
import { eq, ne, gt, gte, lt, lte, like, inArray, notInArray, isNull, isNotNull, and, or, asc, desc, count as sqlCount, sql, } from 'drizzle-orm';
|
|
2
2
|
// ─── Global Table Registry ─────────────────────────────────
|
|
3
3
|
export class DrizzleTableRegistry {
|
|
4
4
|
static tables = new Map();
|
|
@@ -15,9 +15,13 @@ class DrizzleQueryBuilder {
|
|
|
15
15
|
table;
|
|
16
16
|
primaryKey;
|
|
17
17
|
_wheres = [];
|
|
18
|
+
_orWheres = [];
|
|
18
19
|
_orders = [];
|
|
19
20
|
_limitN = null;
|
|
20
21
|
_offsetN = null;
|
|
22
|
+
_withTrashed = false;
|
|
23
|
+
_onlyTrashed = false;
|
|
24
|
+
_softDeletes = false;
|
|
21
25
|
constructor(db, table, primaryKey) {
|
|
22
26
|
this.db = db;
|
|
23
27
|
this.table = table;
|
|
@@ -32,8 +36,13 @@ class DrizzleQueryBuilder {
|
|
|
32
36
|
}
|
|
33
37
|
return this;
|
|
34
38
|
}
|
|
35
|
-
orWhere(column, value) {
|
|
36
|
-
|
|
39
|
+
orWhere(column, operatorOrValue, value) {
|
|
40
|
+
if (value === undefined) {
|
|
41
|
+
this._orWheres.push({ column, operator: '=', value: operatorOrValue });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this._orWheres.push({ column, operator: operatorOrValue, value });
|
|
45
|
+
}
|
|
37
46
|
return this;
|
|
38
47
|
}
|
|
39
48
|
orderBy(column, direction = 'ASC') {
|
|
@@ -42,48 +51,65 @@ class DrizzleQueryBuilder {
|
|
|
42
51
|
}
|
|
43
52
|
limit(n) { this._limitN = n; return this; }
|
|
44
53
|
offset(n) { this._offsetN = n; return this; }
|
|
45
|
-
// Drizzle relational queries require pre-defined relation schemas
|
|
54
|
+
// Drizzle relational queries require pre-defined relation schemas. We don't
|
|
55
|
+
// yet thread a relations object into the adapter, so eager-loading via .with()
|
|
56
|
+
// is not implemented. Calls are silently dropped to keep the QueryBuilder
|
|
57
|
+
// contract compatible across adapters; use Drizzle's relational query API
|
|
58
|
+
// directly when you need eager loading.
|
|
46
59
|
with(..._relations) { return this; }
|
|
47
|
-
// Soft delete support
|
|
48
|
-
_withTrashed = false;
|
|
49
|
-
_onlyTrashed = false;
|
|
50
|
-
_softDeletes = false;
|
|
51
60
|
withTrashed() { this._withTrashed = true; return this; }
|
|
52
61
|
onlyTrashed() { this._onlyTrashed = true; return this; }
|
|
62
|
+
/** @internal — called by Model to enable automatic soft delete filtering */
|
|
53
63
|
_enableSoftDeletes() { this._softDeletes = true; return this; }
|
|
54
64
|
col(column) {
|
|
55
65
|
return this.table[column];
|
|
56
66
|
}
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
// Soft delete filtering
|
|
73
|
-
if (this._softDeletes && !this._withTrashed) {
|
|
74
|
-
const deletedAtCol = this.col('deletedAt');
|
|
75
|
-
if (deletedAtCol) {
|
|
76
|
-
if (this._onlyTrashed) {
|
|
77
|
-
exprs.push(ne(deletedAtCol, null));
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
exprs.push(eq(deletedAtCol, null));
|
|
81
|
-
}
|
|
67
|
+
clauseToExpr(clause) {
|
|
68
|
+
const col = this.col(clause.column);
|
|
69
|
+
switch (clause.operator) {
|
|
70
|
+
case '=': return eq(col, clause.value);
|
|
71
|
+
case '!=': return ne(col, clause.value);
|
|
72
|
+
case '>': return gt(col, clause.value);
|
|
73
|
+
case '>=': return gte(col, clause.value);
|
|
74
|
+
case '<': return lt(col, clause.value);
|
|
75
|
+
case '<=': return lte(col, clause.value);
|
|
76
|
+
case 'LIKE': return like(col, clause.value);
|
|
77
|
+
case 'IN': return inArray(col, clause.value);
|
|
78
|
+
case 'NOT IN': return notInArray(col, clause.value);
|
|
79
|
+
default: {
|
|
80
|
+
const _exhaustive = clause.operator;
|
|
81
|
+
throw new Error(`[RudderJS ORM Drizzle] Unsupported operator: ${String(_exhaustive)}`);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
}
|
|
85
|
+
softDeleteExpr() {
|
|
86
|
+
if (!this._softDeletes || this._withTrashed)
|
|
87
|
+
return undefined;
|
|
88
|
+
const deletedAtCol = this.col('deletedAt');
|
|
89
|
+
if (!deletedAtCol)
|
|
85
90
|
return undefined;
|
|
86
|
-
|
|
91
|
+
// SQL: `col = NULL` never matches — must use IS NULL / IS NOT NULL
|
|
92
|
+
return (this._onlyTrashed ? isNotNull(deletedAtCol) : isNull(deletedAtCol));
|
|
93
|
+
}
|
|
94
|
+
buildConditions() {
|
|
95
|
+
const andExprs = this._wheres.map(c => this.clauseToExpr(c));
|
|
96
|
+
const orExprs = this._orWheres.map(c => this.clauseToExpr(c));
|
|
97
|
+
const softExpr = this.softDeleteExpr();
|
|
98
|
+
if (softExpr)
|
|
99
|
+
andExprs.push(softExpr);
|
|
100
|
+
const hasAnd = andExprs.length > 0;
|
|
101
|
+
const hasOr = orExprs.length > 0;
|
|
102
|
+
if (!hasAnd && !hasOr)
|
|
103
|
+
return undefined;
|
|
104
|
+
const andCombined = hasAnd
|
|
105
|
+
? (andExprs.length === 1 ? andExprs[0] : and(...andExprs))
|
|
106
|
+
: undefined;
|
|
107
|
+
const orCombined = hasOr
|
|
108
|
+
? (orExprs.length === 1 ? orExprs[0] : or(...orExprs))
|
|
109
|
+
: undefined;
|
|
110
|
+
if (andCombined && orCombined)
|
|
111
|
+
return or(andCombined, orCombined);
|
|
112
|
+
return (andCombined ?? orCombined);
|
|
87
113
|
}
|
|
88
114
|
buildOrderBy() {
|
|
89
115
|
return this._orders.map(o => {
|
|
@@ -105,10 +131,13 @@ class DrizzleQueryBuilder {
|
|
|
105
131
|
}
|
|
106
132
|
async find(id) {
|
|
107
133
|
const pkCol = this.col(this.primaryKey);
|
|
134
|
+
const softExpr = this.softDeleteExpr();
|
|
135
|
+
const pkExpr = eq(pkCol, id);
|
|
136
|
+
const cond = softExpr ? and(pkExpr, softExpr) : pkExpr;
|
|
108
137
|
const result = await this.db
|
|
109
138
|
.select()
|
|
110
139
|
.from(this.table)
|
|
111
|
-
.where(
|
|
140
|
+
.where(cond)
|
|
112
141
|
.limit(1);
|
|
113
142
|
return result[0] ?? null;
|
|
114
143
|
}
|
|
@@ -127,7 +156,7 @@ class DrizzleQueryBuilder {
|
|
|
127
156
|
return q;
|
|
128
157
|
}
|
|
129
158
|
async all() {
|
|
130
|
-
return this.
|
|
159
|
+
return this.get();
|
|
131
160
|
}
|
|
132
161
|
async count() {
|
|
133
162
|
const cond = this.buildConditions();
|
|
@@ -160,11 +189,8 @@ class DrizzleQueryBuilder {
|
|
|
160
189
|
async delete(id) {
|
|
161
190
|
const pkCol = this.col(this.primaryKey);
|
|
162
191
|
if (this._softDeletes) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
await this.db.update(this.table).set({ deletedAt: new Date() }).where(eq(pkCol, id));
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
192
|
+
await this.db.update(this.table).set({ deletedAt: new Date() }).where(eq(pkCol, id));
|
|
193
|
+
return;
|
|
168
194
|
}
|
|
169
195
|
await this.db
|
|
170
196
|
.delete(this.table)
|
|
@@ -185,6 +211,30 @@ class DrizzleQueryBuilder {
|
|
|
185
211
|
.delete(this.table)
|
|
186
212
|
.where(eq(pkCol, id));
|
|
187
213
|
}
|
|
214
|
+
async increment(id, column, amount = 1, extra = {}) {
|
|
215
|
+
const pkCol = this.col(this.primaryKey);
|
|
216
|
+
const col = this.col(column);
|
|
217
|
+
const result = await this.db
|
|
218
|
+
.update(this.table)
|
|
219
|
+
.set({ [column]: sql `${col} + ${amount}`, ...extra })
|
|
220
|
+
.where(eq(pkCol, id))
|
|
221
|
+
.returning();
|
|
222
|
+
if (!result[0])
|
|
223
|
+
throw new Error('[RudderJS ORM Drizzle] increment() returned no rows.');
|
|
224
|
+
return result[0];
|
|
225
|
+
}
|
|
226
|
+
async decrement(id, column, amount = 1, extra = {}) {
|
|
227
|
+
const pkCol = this.col(this.primaryKey);
|
|
228
|
+
const col = this.col(column);
|
|
229
|
+
const result = await this.db
|
|
230
|
+
.update(this.table)
|
|
231
|
+
.set({ [column]: sql `${col} - ${amount}`, ...extra })
|
|
232
|
+
.where(eq(pkCol, id))
|
|
233
|
+
.returning();
|
|
234
|
+
if (!result[0])
|
|
235
|
+
throw new Error('[RudderJS ORM Drizzle] decrement() returned no rows.');
|
|
236
|
+
return result[0];
|
|
237
|
+
}
|
|
188
238
|
async paginate(page = 1, perPage = 15) {
|
|
189
239
|
const cond = this.buildConditions();
|
|
190
240
|
const orderBy = this.buildOrderBy();
|
|
@@ -215,7 +265,7 @@ class DrizzleQueryBuilder {
|
|
|
215
265
|
}
|
|
216
266
|
}
|
|
217
267
|
// ─── Drizzle Adapter ───────────────────────────────────────
|
|
218
|
-
class DrizzleAdapter {
|
|
268
|
+
export class DrizzleAdapter {
|
|
219
269
|
db;
|
|
220
270
|
tables;
|
|
221
271
|
primaryKey;
|
|
@@ -278,4 +328,38 @@ export function drizzle(config = {}) {
|
|
|
278
328
|
},
|
|
279
329
|
};
|
|
280
330
|
}
|
|
331
|
+
// ─── DatabaseProvider ──────────────────────────────────────
|
|
332
|
+
import { ServiceProvider, config as appConfig } from '@rudderjs/core';
|
|
333
|
+
import { ModelRegistry } from '@rudderjs/orm';
|
|
334
|
+
/**
|
|
335
|
+
* Auto-discovered service provider that boots a `DrizzleAdapter` from
|
|
336
|
+
* `config('database')` and registers it on the DI container.
|
|
337
|
+
*
|
|
338
|
+
* Wires:
|
|
339
|
+
* - `ModelRegistry.set(adapter)` so `@rudderjs/orm` Models route through it
|
|
340
|
+
* - `app.instance('db', adapter)` for direct DI lookup
|
|
341
|
+
*/
|
|
342
|
+
export class DatabaseProvider extends ServiceProvider {
|
|
343
|
+
register() { }
|
|
344
|
+
async boot() {
|
|
345
|
+
const cfg = appConfig('database', undefined);
|
|
346
|
+
const drizzleConfig = {};
|
|
347
|
+
if (cfg) {
|
|
348
|
+
const conn = cfg.connections[cfg.default];
|
|
349
|
+
if (conn) {
|
|
350
|
+
drizzleConfig.driver = conn.driver;
|
|
351
|
+
if (conn.url !== undefined)
|
|
352
|
+
drizzleConfig.url = conn.url;
|
|
353
|
+
}
|
|
354
|
+
if (cfg.tables)
|
|
355
|
+
drizzleConfig.tables = cfg.tables;
|
|
356
|
+
if (cfg.client)
|
|
357
|
+
drizzleConfig.client = cfg.client;
|
|
358
|
+
}
|
|
359
|
+
const adapter = await DrizzleAdapter.make(drizzleConfig);
|
|
360
|
+
await adapter.connect();
|
|
361
|
+
ModelRegistry.set(adapter);
|
|
362
|
+
this.app.instance('db', adapter);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
281
365
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/orm-drizzle",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Drizzle ORM adapter for RudderJS. Implements OrmAdapterProvider / OrmAdapter / QueryBuilder<T> using Drizzle's SQL-like fluent API.",
|
|
5
|
+
"rudderjs": {
|
|
6
|
+
"provider": "DatabaseProvider",
|
|
7
|
+
"stage": "infrastructure",
|
|
8
|
+
"optional": true
|
|
9
|
+
},
|
|
5
10
|
"license": "MIT",
|
|
6
11
|
"repository": {
|
|
7
12
|
"type": "git",
|
|
@@ -23,7 +28,9 @@
|
|
|
23
28
|
},
|
|
24
29
|
"dependencies": {
|
|
25
30
|
"drizzle-orm": "^0.38.0",
|
|
26
|
-
"@rudderjs/contracts": "^1.
|
|
31
|
+
"@rudderjs/contracts": "^1.1.0",
|
|
32
|
+
"@rudderjs/core": "^1.0.1",
|
|
33
|
+
"@rudderjs/orm": "^1.3.0"
|
|
27
34
|
},
|
|
28
35
|
"optionalDependencies": {
|
|
29
36
|
"better-sqlite3": "^12.0.0",
|
|
@@ -41,7 +48,7 @@
|
|
|
41
48
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
42
49
|
"typecheck": "tsc --noEmit",
|
|
43
50
|
"lint": "eslint src",
|
|
44
|
-
"test": "tsc -p tsconfig.test.json && node --test dist-test
|
|
51
|
+
"test": "tsc -p tsconfig.test.json && node --test dist-test/*.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT",
|
|
45
52
|
"clean": "rm -rf dist"
|
|
46
53
|
}
|
|
47
54
|
}
|