drizzle-orm 0.28.6 → 0.28.7-6c67975
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/batch.d.cts +8 -0
- package/batch.d.mts +8 -0
- package/batch.d.ts +8 -0
- package/better-sqlite3/index.mjs +1 -1
- package/bun-sqlite/index.mjs +1 -1
- package/d1/driver.d.cts +6 -1
- package/d1/driver.d.mts +6 -1
- package/d1/driver.d.ts +6 -1
- package/d1/index.cjs +90 -8
- package/d1/index.cjs.map +1 -1
- package/d1/index.mjs +95 -11
- package/d1/index.mjs.map +1 -1
- package/d1/session.d.cts +10 -5
- package/d1/session.d.mts +10 -5
- package/d1/session.d.ts +10 -5
- package/libsql/driver.d.cts +2 -9
- package/libsql/driver.d.mts +2 -9
- package/libsql/driver.d.ts +2 -9
- package/libsql/index.cjs +11 -12
- package/libsql/index.cjs.map +1 -1
- package/libsql/index.mjs +12 -13
- package/libsql/index.mjs.map +1 -1
- package/libsql/session.d.cts +1 -1
- package/libsql/session.d.mts +1 -1
- package/libsql/session.d.ts +1 -1
- package/package.json +2 -2
- package/{session-afae3551.mjs → session-f8888c77.mjs} +2 -2
- package/{session-afae3551.mjs.map → session-f8888c77.mjs.map} +1 -1
- package/sql-js/index.mjs +1 -1
- package/sqlite-core/index.mjs +2 -2
- package/sqlite-proxy/index.mjs +1 -1
- package/version.cjs +1 -1
- package/version.mjs +1 -1
package/batch.d.cts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SelectResult } from './query-builders/select.types.js';
|
|
2
|
+
import type { SQLiteDelete, SQLiteInsert, SQLiteSelect, SQLiteUpdate } from './sqlite-core/index.js';
|
|
3
|
+
import type { SQLiteRelationalQuery } from './sqlite-core/query-builders/query.js';
|
|
4
|
+
import type { SQLiteRaw } from './sqlite-core/query-builders/raw.js';
|
|
5
|
+
export type BatchParameters<TDriverResult = any> = SQLiteUpdate<any, 'async', TDriverResult, any> | SQLiteSelect<any, 'async', TDriverResult, any, any> | SQLiteDelete<any, 'async', TDriverResult, any> | Omit<SQLiteDelete<any, 'async', TDriverResult, any>, 'where'> | Omit<SQLiteUpdate<any, 'async', TDriverResult, any>, 'where'> | SQLiteInsert<any, 'async', TDriverResult, any> | SQLiteRelationalQuery<'async', any> | SQLiteRaw<any>;
|
|
6
|
+
export type BatchResponse<U extends BatchParameters, TQuery extends Readonly<[U, ...U[]]>> = {
|
|
7
|
+
[K in keyof TQuery]: TQuery[K] extends SQLiteSelect<infer _TTable, 'async', infer _TRes, infer TSelection, infer TSelectMode, infer TNullabilityMap> ? SelectResult<TSelection, TSelectMode, TNullabilityMap>[] : TQuery[K] extends SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteInsert<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteRelationalQuery<'async', infer TResult> ? TResult : TQuery[K] extends SQLiteRaw<infer TResult> ? TResult : never;
|
|
8
|
+
};
|
package/batch.d.mts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SelectResult } from './query-builders/select.types.js';
|
|
2
|
+
import type { SQLiteDelete, SQLiteInsert, SQLiteSelect, SQLiteUpdate } from './sqlite-core/index.js';
|
|
3
|
+
import type { SQLiteRelationalQuery } from './sqlite-core/query-builders/query.js';
|
|
4
|
+
import type { SQLiteRaw } from './sqlite-core/query-builders/raw.js';
|
|
5
|
+
export type BatchParameters<TDriverResult = any> = SQLiteUpdate<any, 'async', TDriverResult, any> | SQLiteSelect<any, 'async', TDriverResult, any, any> | SQLiteDelete<any, 'async', TDriverResult, any> | Omit<SQLiteDelete<any, 'async', TDriverResult, any>, 'where'> | Omit<SQLiteUpdate<any, 'async', TDriverResult, any>, 'where'> | SQLiteInsert<any, 'async', TDriverResult, any> | SQLiteRelationalQuery<'async', any> | SQLiteRaw<any>;
|
|
6
|
+
export type BatchResponse<U extends BatchParameters, TQuery extends Readonly<[U, ...U[]]>> = {
|
|
7
|
+
[K in keyof TQuery]: TQuery[K] extends SQLiteSelect<infer _TTable, 'async', infer _TRes, infer TSelection, infer TSelectMode, infer TNullabilityMap> ? SelectResult<TSelection, TSelectMode, TNullabilityMap>[] : TQuery[K] extends SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteInsert<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteRelationalQuery<'async', infer TResult> ? TResult : TQuery[K] extends SQLiteRaw<infer TResult> ? TResult : never;
|
|
8
|
+
};
|
package/batch.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SelectResult } from './query-builders/select.types.js';
|
|
2
|
+
import type { SQLiteDelete, SQLiteInsert, SQLiteSelect, SQLiteUpdate } from './sqlite-core/index.js';
|
|
3
|
+
import type { SQLiteRelationalQuery } from './sqlite-core/query-builders/query.js';
|
|
4
|
+
import type { SQLiteRaw } from './sqlite-core/query-builders/raw.js';
|
|
5
|
+
export type BatchParameters<TDriverResult = any> = SQLiteUpdate<any, 'async', TDriverResult, any> | SQLiteSelect<any, 'async', TDriverResult, any, any> | SQLiteDelete<any, 'async', TDriverResult, any> | Omit<SQLiteDelete<any, 'async', TDriverResult, any>, 'where'> | Omit<SQLiteUpdate<any, 'async', TDriverResult, any>, 'where'> | SQLiteInsert<any, 'async', TDriverResult, any> | SQLiteRelationalQuery<'async', any> | SQLiteRaw<any>;
|
|
6
|
+
export type BatchResponse<U extends BatchParameters, TQuery extends Readonly<[U, ...U[]]>> = {
|
|
7
|
+
[K in keyof TQuery]: TQuery[K] extends SQLiteSelect<infer _TTable, 'async', infer _TRes, infer TSelection, infer TSelectMode, infer TNullabilityMap> ? SelectResult<TSelection, TSelectMode, TNullabilityMap>[] : TQuery[K] extends SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteInsert<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteRelationalQuery<'async', infer TResult> ? TResult : TQuery[K] extends SQLiteRaw<infer TResult> ? TResult : never;
|
|
8
|
+
};
|
package/better-sqlite3/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NoopLogger, DefaultLogger } from '../index.mjs';
|
|
2
2
|
import { e as entityKind, s as sql, f as fillPlaceholders, m as mapResultRow, a as extractTablesRelationalConfig, c as createTableRelationsHelpers } from '../alias-cf8e03cd.mjs';
|
|
3
|
-
import { S as SQLiteSession, a as SQLiteTransaction, P as PreparedQuery$1, B as BaseSQLiteDatabase, b as SQLiteSyncDialect } from '../session-
|
|
3
|
+
import { S as SQLiteSession, a as SQLiteTransaction, P as PreparedQuery$1, B as BaseSQLiteDatabase, b as SQLiteSyncDialect } from '../session-f8888c77.mjs';
|
|
4
4
|
|
|
5
5
|
class BetterSQLiteSession extends SQLiteSession {
|
|
6
6
|
client;
|
package/bun-sqlite/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NoopLogger, DefaultLogger } from '../index.mjs';
|
|
2
2
|
import { e as entityKind, s as sql, f as fillPlaceholders, m as mapResultRow, a as extractTablesRelationalConfig, c as createTableRelationsHelpers } from '../alias-cf8e03cd.mjs';
|
|
3
|
-
import { S as SQLiteSession, a as SQLiteTransaction, P as PreparedQuery$1, B as BaseSQLiteDatabase, b as SQLiteSyncDialect } from '../session-
|
|
3
|
+
import { S as SQLiteSession, a as SQLiteTransaction, P as PreparedQuery$1, B as BaseSQLiteDatabase, b as SQLiteSyncDialect } from '../session-f8888c77.mjs';
|
|
4
4
|
|
|
5
5
|
/// <reference types="bun-types" />
|
|
6
6
|
class SQLiteBunSession extends SQLiteSession {
|
package/d1/driver.d.cts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
2
|
import { BaseSQLiteDatabase } from '../sqlite-core/db.js';
|
|
3
3
|
import { type DrizzleConfig } from '../utils.js';
|
|
4
|
-
|
|
4
|
+
import { entityKind } from '../entity.js';
|
|
5
|
+
import type { BatchParameters, BatchResponse } from '../batch.js';
|
|
6
|
+
export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {
|
|
7
|
+
static readonly [entityKind]: string;
|
|
8
|
+
batch<U extends BatchParameters<D1Result>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<U, T>>;
|
|
9
|
+
}
|
|
5
10
|
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: D1Database, config?: DrizzleConfig<TSchema>): DrizzleD1Database<TSchema>;
|
package/d1/driver.d.mts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
2
|
import { BaseSQLiteDatabase } from '../sqlite-core/db.js';
|
|
3
3
|
import { type DrizzleConfig } from '../utils.js';
|
|
4
|
-
|
|
4
|
+
import { entityKind } from '../entity.js';
|
|
5
|
+
import type { BatchParameters, BatchResponse } from '../batch.js';
|
|
6
|
+
export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {
|
|
7
|
+
static readonly [entityKind]: string;
|
|
8
|
+
batch<U extends BatchParameters<D1Result>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<U, T>>;
|
|
9
|
+
}
|
|
5
10
|
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: D1Database, config?: DrizzleConfig<TSchema>): DrizzleD1Database<TSchema>;
|
package/d1/driver.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
2
|
import { BaseSQLiteDatabase } from '../sqlite-core/db.js';
|
|
3
3
|
import { type DrizzleConfig } from '../utils.js';
|
|
4
|
-
|
|
4
|
+
import { entityKind } from '../entity.js';
|
|
5
|
+
import type { BatchParameters, BatchResponse } from '../batch.js';
|
|
6
|
+
export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {
|
|
7
|
+
static readonly [entityKind]: string;
|
|
8
|
+
batch<U extends BatchParameters<D1Result>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<U, T>>;
|
|
9
|
+
}
|
|
5
10
|
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: D1Database, config?: DrizzleConfig<TSchema>): DrizzleD1Database<TSchema>;
|
package/d1/index.cjs
CHANGED
|
@@ -4,7 +4,7 @@ var index = require('../index-1899b9ae.cjs');
|
|
|
4
4
|
var session = require('../session-90f70450.cjs');
|
|
5
5
|
|
|
6
6
|
/// <reference types="@cloudflare/workers-types" />
|
|
7
|
-
var _a, _b, _c;
|
|
7
|
+
var _a$1, _b, _c;
|
|
8
8
|
class SQLiteD1Session extends session.SQLiteSession {
|
|
9
9
|
constructor(client, dialect, schema, options = {}) {
|
|
10
10
|
super(dialect);
|
|
@@ -17,6 +17,80 @@ class SQLiteD1Session extends session.SQLiteSession {
|
|
|
17
17
|
const stmt = this.client.prepare(query.sql);
|
|
18
18
|
return new PreparedQuery(stmt, query.sql, query.params, this.logger, fields, executeMethod, customResultMapper);
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287
|
|
22
|
+
* It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.
|
|
23
|
+
* @param results
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
d1ToRawMapping(results) {
|
|
27
|
+
const rows = [];
|
|
28
|
+
for (const row of results) {
|
|
29
|
+
const entry = Object.keys(row).map((k) => row[k]);
|
|
30
|
+
rows.push(entry);
|
|
31
|
+
}
|
|
32
|
+
return rows;
|
|
33
|
+
}
|
|
34
|
+
/*override */ batch(queries) {
|
|
35
|
+
const queryToType = [];
|
|
36
|
+
const builtQueries = queries.map((query) => {
|
|
37
|
+
if (index.is(query, (session.SQLiteSelect))) {
|
|
38
|
+
const prepared = query.prepare();
|
|
39
|
+
prepared.fields === undefined
|
|
40
|
+
? queryToType.push({ mode: 'all' })
|
|
41
|
+
: queryToType.push({
|
|
42
|
+
mode: 'all_mapped',
|
|
43
|
+
config: { fields: prepared.fields, joinsNotNullableMap: prepared.joinsNotNullableMap },
|
|
44
|
+
});
|
|
45
|
+
return prepared.stmt.bind(...prepared.params);
|
|
46
|
+
}
|
|
47
|
+
else if (index.is(query, (session.SQLiteInsert)) || index.is(query, (session.SQLiteUpdate))
|
|
48
|
+
|| index.is(query, (session.SQLiteDelete))) {
|
|
49
|
+
const prepared = query.prepare();
|
|
50
|
+
queryToType.push(query.config.returning
|
|
51
|
+
? {
|
|
52
|
+
mode: 'all_mapped',
|
|
53
|
+
config: { fields: query.config.returning },
|
|
54
|
+
}
|
|
55
|
+
: { mode: 'raw' });
|
|
56
|
+
return prepared.stmt.bind(...prepared.params);
|
|
57
|
+
}
|
|
58
|
+
else if (index.is(query, session.SQLiteRaw)) {
|
|
59
|
+
const builtQuery = this.dialect.sqlToQuery(query.getSQL());
|
|
60
|
+
queryToType.push(query.config.action === 'run' ? { mode: 'raw' } : { mode: query.config.action });
|
|
61
|
+
return this.client.prepare(builtQuery.sql).bind(...builtQuery.params);
|
|
62
|
+
}
|
|
63
|
+
else if (index.is(query, session.SQLiteRelationalQuery)) {
|
|
64
|
+
const preparedRqb = query.prepare();
|
|
65
|
+
queryToType.push({ mode: 'rqb', mapper: preparedRqb.customResultMapper });
|
|
66
|
+
return preparedRqb.stmt.bind(...preparedRqb.params);
|
|
67
|
+
}
|
|
68
|
+
throw new index.DrizzleError('You can use only drizzle queries in D1 batch api');
|
|
69
|
+
});
|
|
70
|
+
const res = this.client.batch(builtQueries).then((stmt) => stmt.map(({ results }, index$1) => {
|
|
71
|
+
const action = queryToType[index$1];
|
|
72
|
+
if (action.mode === 'all') {
|
|
73
|
+
return results;
|
|
74
|
+
}
|
|
75
|
+
if (action.mode === 'all_mapped') {
|
|
76
|
+
const mappedRows = this.d1ToRawMapping(results);
|
|
77
|
+
return mappedRows.map((row) => {
|
|
78
|
+
return index.mapResultRow(action.config.fields, row, action.config.joinsNotNullableMap);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (action.mode === 'get') {
|
|
82
|
+
return results[0];
|
|
83
|
+
}
|
|
84
|
+
if (action.mode === 'values') {
|
|
85
|
+
return this.d1ToRawMapping(results);
|
|
86
|
+
}
|
|
87
|
+
if (action.mode === 'raw') {
|
|
88
|
+
return stmt[index$1];
|
|
89
|
+
}
|
|
90
|
+
return action.mapper(this.d1ToRawMapping(results));
|
|
91
|
+
}));
|
|
92
|
+
return res;
|
|
93
|
+
}
|
|
20
94
|
async transaction(transaction, config) {
|
|
21
95
|
const tx = new D1Transaction('async', this.dialect, this, this.schema);
|
|
22
96
|
await this.run(index.sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));
|
|
@@ -31,8 +105,8 @@ class SQLiteD1Session extends session.SQLiteSession {
|
|
|
31
105
|
}
|
|
32
106
|
}
|
|
33
107
|
}
|
|
34
|
-
_a = index.entityKind;
|
|
35
|
-
SQLiteD1Session[_a] = 'SQLiteD1Session';
|
|
108
|
+
_a$1 = index.entityKind;
|
|
109
|
+
SQLiteD1Session[_a$1] = 'SQLiteD1Session';
|
|
36
110
|
class D1Transaction extends session.SQLiteTransaction {
|
|
37
111
|
async transaction(transaction) {
|
|
38
112
|
const savepointName = `sp${this.nestedIndex}`;
|
|
@@ -54,12 +128,12 @@ D1Transaction[_b] = 'D1Transaction';
|
|
|
54
128
|
class PreparedQuery extends session.PreparedQuery {
|
|
55
129
|
constructor(stmt, queryString, params, logger, fields, executeMethod, customResultMapper) {
|
|
56
130
|
super('async', executeMethod);
|
|
57
|
-
this.stmt = stmt;
|
|
58
131
|
this.queryString = queryString;
|
|
59
|
-
this.params = params;
|
|
60
132
|
this.logger = logger;
|
|
61
|
-
this.fields = fields;
|
|
62
133
|
this.customResultMapper = customResultMapper;
|
|
134
|
+
this.fields = fields;
|
|
135
|
+
this.stmt = stmt;
|
|
136
|
+
this.params = params;
|
|
63
137
|
}
|
|
64
138
|
run(placeholderValues) {
|
|
65
139
|
const params = index.fillPlaceholders(this.params, placeholderValues ?? {});
|
|
@@ -104,7 +178,14 @@ class PreparedQuery extends session.PreparedQuery {
|
|
|
104
178
|
_c = index.entityKind;
|
|
105
179
|
PreparedQuery[_c] = 'D1PreparedQuery';
|
|
106
180
|
|
|
107
|
-
|
|
181
|
+
var _a;
|
|
182
|
+
class DrizzleD1Database extends session.BaseSQLiteDatabase {
|
|
183
|
+
async batch(batch) {
|
|
184
|
+
return await this.session.batch(batch);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
_a = index.entityKind;
|
|
188
|
+
DrizzleD1Database[_a] = 'LibSQLDatabase';
|
|
108
189
|
function drizzle(client, config = {}) {
|
|
109
190
|
const dialect = new session.SQLiteAsyncDialect();
|
|
110
191
|
let logger;
|
|
@@ -124,10 +205,11 @@ function drizzle(client, config = {}) {
|
|
|
124
205
|
};
|
|
125
206
|
}
|
|
126
207
|
const session$1 = new SQLiteD1Session(client, dialect, schema, { logger });
|
|
127
|
-
return new
|
|
208
|
+
return new DrizzleD1Database('async', dialect, session$1, schema);
|
|
128
209
|
}
|
|
129
210
|
|
|
130
211
|
exports.D1Transaction = D1Transaction;
|
|
212
|
+
exports.DrizzleD1Database = DrizzleD1Database;
|
|
131
213
|
exports.PreparedQuery = PreparedQuery;
|
|
132
214
|
exports.SQLiteD1Session = SQLiteD1Session;
|
|
133
215
|
exports.drizzle = drizzle;
|
package/d1/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/d1/session.ts","../../src/d1/driver.ts"],"sourcesContent":[null,null],"names":["SQLiteSession","NoopLogger","sql","entityKind","SQLiteTransaction","PreparedQueryBase","fillPlaceholders","
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/d1/session.ts","../../src/d1/driver.ts"],"sourcesContent":[null,null],"names":["SQLiteSession","NoopLogger","is","SQLiteSelect","SQLiteInsert","SQLiteUpdate","SQLiteDelete","SQLiteRaw","SQLiteRelationalQuery","DrizzleError","index","mapResultRow","sql","entityKind","_a","SQLiteTransaction","PreparedQueryBase","fillPlaceholders","BaseSQLiteDatabase","SQLiteAsyncDialect","DefaultLogger","extractTablesRelationalConfig","createTableRelationsHelpers","session"],"mappings":"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"}
|
package/d1/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NoopLogger, DefaultLogger } from '../index.mjs';
|
|
2
|
-
import { e as entityKind,
|
|
3
|
-
import { S as SQLiteSession, a as SQLiteTransaction, P as PreparedQuery$1, B as BaseSQLiteDatabase,
|
|
2
|
+
import { e as entityKind, i as is, D as DrizzleError, m as mapResultRow, s as sql, f as fillPlaceholders, a as extractTablesRelationalConfig, c as createTableRelationsHelpers } from '../alias-cf8e03cd.mjs';
|
|
3
|
+
import { S as SQLiteSession, c as SQLiteSelect, d as SQLiteInsert, e as SQLiteUpdate, f as SQLiteDelete, g as SQLiteRaw, h as SQLiteRelationalQuery, a as SQLiteTransaction, P as PreparedQuery$1, B as BaseSQLiteDatabase, i as SQLiteAsyncDialect } from '../session-f8888c77.mjs';
|
|
4
4
|
|
|
5
5
|
/// <reference types="@cloudflare/workers-types" />
|
|
6
6
|
class SQLiteD1Session extends SQLiteSession {
|
|
@@ -20,6 +20,80 @@ class SQLiteD1Session extends SQLiteSession {
|
|
|
20
20
|
const stmt = this.client.prepare(query.sql);
|
|
21
21
|
return new PreparedQuery(stmt, query.sql, query.params, this.logger, fields, executeMethod, customResultMapper);
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287
|
|
25
|
+
* It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.
|
|
26
|
+
* @param results
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
d1ToRawMapping(results) {
|
|
30
|
+
const rows = [];
|
|
31
|
+
for (const row of results) {
|
|
32
|
+
const entry = Object.keys(row).map((k) => row[k]);
|
|
33
|
+
rows.push(entry);
|
|
34
|
+
}
|
|
35
|
+
return rows;
|
|
36
|
+
}
|
|
37
|
+
/*override */ batch(queries) {
|
|
38
|
+
const queryToType = [];
|
|
39
|
+
const builtQueries = queries.map((query) => {
|
|
40
|
+
if (is(query, (SQLiteSelect))) {
|
|
41
|
+
const prepared = query.prepare();
|
|
42
|
+
prepared.fields === undefined
|
|
43
|
+
? queryToType.push({ mode: 'all' })
|
|
44
|
+
: queryToType.push({
|
|
45
|
+
mode: 'all_mapped',
|
|
46
|
+
config: { fields: prepared.fields, joinsNotNullableMap: prepared.joinsNotNullableMap },
|
|
47
|
+
});
|
|
48
|
+
return prepared.stmt.bind(...prepared.params);
|
|
49
|
+
}
|
|
50
|
+
else if (is(query, (SQLiteInsert)) || is(query, (SQLiteUpdate))
|
|
51
|
+
|| is(query, (SQLiteDelete))) {
|
|
52
|
+
const prepared = query.prepare();
|
|
53
|
+
queryToType.push(query.config.returning
|
|
54
|
+
? {
|
|
55
|
+
mode: 'all_mapped',
|
|
56
|
+
config: { fields: query.config.returning },
|
|
57
|
+
}
|
|
58
|
+
: { mode: 'raw' });
|
|
59
|
+
return prepared.stmt.bind(...prepared.params);
|
|
60
|
+
}
|
|
61
|
+
else if (is(query, SQLiteRaw)) {
|
|
62
|
+
const builtQuery = this.dialect.sqlToQuery(query.getSQL());
|
|
63
|
+
queryToType.push(query.config.action === 'run' ? { mode: 'raw' } : { mode: query.config.action });
|
|
64
|
+
return this.client.prepare(builtQuery.sql).bind(...builtQuery.params);
|
|
65
|
+
}
|
|
66
|
+
else if (is(query, SQLiteRelationalQuery)) {
|
|
67
|
+
const preparedRqb = query.prepare();
|
|
68
|
+
queryToType.push({ mode: 'rqb', mapper: preparedRqb.customResultMapper });
|
|
69
|
+
return preparedRqb.stmt.bind(...preparedRqb.params);
|
|
70
|
+
}
|
|
71
|
+
throw new DrizzleError('You can use only drizzle queries in D1 batch api');
|
|
72
|
+
});
|
|
73
|
+
const res = this.client.batch(builtQueries).then((stmt) => stmt.map(({ results }, index) => {
|
|
74
|
+
const action = queryToType[index];
|
|
75
|
+
if (action.mode === 'all') {
|
|
76
|
+
return results;
|
|
77
|
+
}
|
|
78
|
+
if (action.mode === 'all_mapped') {
|
|
79
|
+
const mappedRows = this.d1ToRawMapping(results);
|
|
80
|
+
return mappedRows.map((row) => {
|
|
81
|
+
return mapResultRow(action.config.fields, row, action.config.joinsNotNullableMap);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (action.mode === 'get') {
|
|
85
|
+
return results[0];
|
|
86
|
+
}
|
|
87
|
+
if (action.mode === 'values') {
|
|
88
|
+
return this.d1ToRawMapping(results);
|
|
89
|
+
}
|
|
90
|
+
if (action.mode === 'raw') {
|
|
91
|
+
return stmt[index];
|
|
92
|
+
}
|
|
93
|
+
return action.mapper(this.d1ToRawMapping(results));
|
|
94
|
+
}));
|
|
95
|
+
return res;
|
|
96
|
+
}
|
|
23
97
|
async transaction(transaction, config) {
|
|
24
98
|
const tx = new D1Transaction('async', this.dialect, this, this.schema);
|
|
25
99
|
await this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));
|
|
@@ -52,21 +126,25 @@ class D1Transaction extends SQLiteTransaction {
|
|
|
52
126
|
}
|
|
53
127
|
}
|
|
54
128
|
class PreparedQuery extends PreparedQuery$1 {
|
|
55
|
-
stmt;
|
|
56
129
|
queryString;
|
|
57
|
-
params;
|
|
58
130
|
logger;
|
|
59
|
-
fields;
|
|
60
|
-
customResultMapper;
|
|
61
131
|
static [entityKind] = 'D1PreparedQuery';
|
|
132
|
+
/** @internal */
|
|
133
|
+
customResultMapper;
|
|
134
|
+
/** @internal */
|
|
135
|
+
fields;
|
|
136
|
+
/** @internal */
|
|
137
|
+
params;
|
|
138
|
+
/** @internal */
|
|
139
|
+
stmt;
|
|
62
140
|
constructor(stmt, queryString, params, logger, fields, executeMethod, customResultMapper) {
|
|
63
141
|
super('async', executeMethod);
|
|
64
|
-
this.stmt = stmt;
|
|
65
142
|
this.queryString = queryString;
|
|
66
|
-
this.params = params;
|
|
67
143
|
this.logger = logger;
|
|
68
|
-
this.fields = fields;
|
|
69
144
|
this.customResultMapper = customResultMapper;
|
|
145
|
+
this.fields = fields;
|
|
146
|
+
this.stmt = stmt;
|
|
147
|
+
this.params = params;
|
|
70
148
|
}
|
|
71
149
|
run(placeholderValues) {
|
|
72
150
|
const params = fillPlaceholders(this.params, placeholderValues ?? {});
|
|
@@ -110,6 +188,12 @@ class PreparedQuery extends PreparedQuery$1 {
|
|
|
110
188
|
}
|
|
111
189
|
|
|
112
190
|
/// <reference types="@cloudflare/workers-types" />
|
|
191
|
+
class DrizzleD1Database extends BaseSQLiteDatabase {
|
|
192
|
+
static [entityKind] = 'LibSQLDatabase';
|
|
193
|
+
async batch(batch) {
|
|
194
|
+
return await this.session.batch(batch);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
113
197
|
function drizzle(client, config = {}) {
|
|
114
198
|
const dialect = new SQLiteAsyncDialect();
|
|
115
199
|
let logger;
|
|
@@ -129,8 +213,8 @@ function drizzle(client, config = {}) {
|
|
|
129
213
|
};
|
|
130
214
|
}
|
|
131
215
|
const session = new SQLiteD1Session(client, dialect, schema, { logger });
|
|
132
|
-
return new
|
|
216
|
+
return new DrizzleD1Database('async', dialect, session, schema);
|
|
133
217
|
}
|
|
134
218
|
|
|
135
|
-
export { D1Transaction, PreparedQuery, SQLiteD1Session, drizzle };
|
|
219
|
+
export { D1Transaction, DrizzleD1Database, PreparedQuery, SQLiteD1Session, drizzle };
|
|
136
220
|
//# sourceMappingURL=index.mjs.map
|
package/d1/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/d1/session.ts","../../src/d1/driver.ts"],"sourcesContent":[null,null],"names":["PreparedQueryBase"],"mappings":";;;;AAAA;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/d1/session.ts","../../src/d1/driver.ts"],"sourcesContent":[null,null],"names":["PreparedQueryBase"],"mappings":"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"}
|
package/d1/session.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
import type { BatchParameters } from '../batch.js';
|
|
2
3
|
import { entityKind } from '../entity.js';
|
|
3
4
|
import type { Logger } from '../logger.js';
|
|
4
5
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from '../relations.js';
|
|
@@ -20,6 +21,14 @@ export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>
|
|
|
20
21
|
private logger;
|
|
21
22
|
constructor(client: D1Database, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
|
|
22
23
|
prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][]) => unknown): PreparedQuery;
|
|
24
|
+
/**
|
|
25
|
+
* This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287
|
|
26
|
+
* It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.
|
|
27
|
+
* @param results
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
private d1ToRawMapping;
|
|
31
|
+
batch<U extends BatchParameters, T extends Readonly<[U, ...U[]]>>(queries: T): Promise<any[]>;
|
|
23
32
|
transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
24
33
|
}
|
|
25
34
|
export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {
|
|
@@ -34,14 +43,10 @@ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQuery
|
|
|
34
43
|
values: T['values'];
|
|
35
44
|
execute: T['execute'];
|
|
36
45
|
}> {
|
|
37
|
-
private stmt;
|
|
38
46
|
private queryString;
|
|
39
|
-
private params;
|
|
40
47
|
private logger;
|
|
41
|
-
private fields;
|
|
42
|
-
private customResultMapper?;
|
|
43
48
|
static readonly [entityKind]: string;
|
|
44
|
-
constructor(stmt: D1PreparedStatement, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (
|
|
49
|
+
constructor(stmt: D1PreparedStatement, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][]) => unknown);
|
|
45
50
|
run(placeholderValues?: Record<string, unknown>): Promise<D1Result>;
|
|
46
51
|
all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
|
|
47
52
|
get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
|
package/d1/session.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
import type { BatchParameters } from '../batch.js';
|
|
2
3
|
import { entityKind } from '../entity.js';
|
|
3
4
|
import type { Logger } from '../logger.js';
|
|
4
5
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from '../relations.js';
|
|
@@ -20,6 +21,14 @@ export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>
|
|
|
20
21
|
private logger;
|
|
21
22
|
constructor(client: D1Database, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
|
|
22
23
|
prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][]) => unknown): PreparedQuery;
|
|
24
|
+
/**
|
|
25
|
+
* This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287
|
|
26
|
+
* It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.
|
|
27
|
+
* @param results
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
private d1ToRawMapping;
|
|
31
|
+
batch<U extends BatchParameters, T extends Readonly<[U, ...U[]]>>(queries: T): Promise<any[]>;
|
|
23
32
|
transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
24
33
|
}
|
|
25
34
|
export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {
|
|
@@ -34,14 +43,10 @@ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQuery
|
|
|
34
43
|
values: T['values'];
|
|
35
44
|
execute: T['execute'];
|
|
36
45
|
}> {
|
|
37
|
-
private stmt;
|
|
38
46
|
private queryString;
|
|
39
|
-
private params;
|
|
40
47
|
private logger;
|
|
41
|
-
private fields;
|
|
42
|
-
private customResultMapper?;
|
|
43
48
|
static readonly [entityKind]: string;
|
|
44
|
-
constructor(stmt: D1PreparedStatement, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (
|
|
49
|
+
constructor(stmt: D1PreparedStatement, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][]) => unknown);
|
|
45
50
|
run(placeholderValues?: Record<string, unknown>): Promise<D1Result>;
|
|
46
51
|
all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
|
|
47
52
|
get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
|
package/d1/session.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
import type { BatchParameters } from '../batch.js';
|
|
2
3
|
import { entityKind } from '../entity.js';
|
|
3
4
|
import type { Logger } from '../logger.js';
|
|
4
5
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from '../relations.js';
|
|
@@ -20,6 +21,14 @@ export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>
|
|
|
20
21
|
private logger;
|
|
21
22
|
constructor(client: D1Database, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
|
|
22
23
|
prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][]) => unknown): PreparedQuery;
|
|
24
|
+
/**
|
|
25
|
+
* This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287
|
|
26
|
+
* It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.
|
|
27
|
+
* @param results
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
private d1ToRawMapping;
|
|
31
|
+
batch<U extends BatchParameters, T extends Readonly<[U, ...U[]]>>(queries: T): Promise<any[]>;
|
|
23
32
|
transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
24
33
|
}
|
|
25
34
|
export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {
|
|
@@ -34,14 +43,10 @@ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQuery
|
|
|
34
43
|
values: T['values'];
|
|
35
44
|
execute: T['execute'];
|
|
36
45
|
}> {
|
|
37
|
-
private stmt;
|
|
38
46
|
private queryString;
|
|
39
|
-
private params;
|
|
40
47
|
private logger;
|
|
41
|
-
private fields;
|
|
42
|
-
private customResultMapper?;
|
|
43
48
|
static readonly [entityKind]: string;
|
|
44
|
-
constructor(stmt: D1PreparedStatement, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (
|
|
49
|
+
constructor(stmt: D1PreparedStatement, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][]) => unknown);
|
|
45
50
|
run(placeholderValues?: Record<string, unknown>): Promise<D1Result>;
|
|
46
51
|
all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
|
|
47
52
|
get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
|
package/libsql/driver.d.cts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import type { Client, ResultSet } from '@libsql/client';
|
|
2
2
|
import { entityKind } from '../entity.js';
|
|
3
|
-
import type { SelectResult } from '../query-builders/select.types.js';
|
|
4
3
|
import { BaseSQLiteDatabase } from '../sqlite-core/db.js';
|
|
5
|
-
import type { SQLiteDelete, SQLiteInsert, SQLiteSelect, SQLiteUpdate } from '../sqlite-core/index.js';
|
|
6
|
-
import type { SQLiteRelationalQuery } from '../sqlite-core/query-builders/query.js';
|
|
7
|
-
import type { SQLiteRaw } from '../sqlite-core/query-builders/raw.js';
|
|
8
4
|
import { type DrizzleConfig } from '../utils.js';
|
|
9
|
-
|
|
10
|
-
export type BatchResponse<U extends BatchParameters, TQuery extends Readonly<[U, ...U[]]>> = {
|
|
11
|
-
[K in keyof TQuery]: TQuery[K] extends SQLiteSelect<infer _TTable, 'async', infer _TRes, infer TSelection, infer TSelectMode, infer TNullabilityMap> ? SelectResult<TSelection, TSelectMode, TNullabilityMap>[] : TQuery[K] extends SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteUpdate<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteInsert<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends Omit<SQLiteDelete<infer _TTable, 'async', infer _TRunResult, infer _TReturning>, 'where'> ? _TReturning extends undefined ? _TRunResult : _TReturning[] : TQuery[K] extends SQLiteRelationalQuery<'async', infer TResult> ? TResult : TQuery[K] extends SQLiteRaw<infer TResult> ? TResult : never;
|
|
12
|
-
};
|
|
5
|
+
import type { BatchParameters, BatchResponse } from '../batch.js';
|
|
13
6
|
export declare class LibSQLDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {
|
|
14
7
|
static readonly [entityKind]: string;
|
|
15
|
-
batch<U extends BatchParameters
|
|
8
|
+
batch<U extends BatchParameters<ResultSet>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<U, T>>;
|
|
16
9
|
}
|
|
17
10
|
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Client, config?: DrizzleConfig<TSchema>): LibSQLDatabase<TSchema>;
|