@remix-run/data-table 0.2.1 → 0.4.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 +251 -123
- package/dist/cli.d.ts +54 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +53 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/lib/column.d.ts +1 -1
- package/dist/lib/column.d.ts.map +1 -1
- package/dist/lib/column.js +10 -1
- package/dist/lib/database/execution-context.d.ts +5 -5
- package/dist/lib/database/execution-context.d.ts.map +1 -1
- package/dist/lib/database/execution-context.js +1 -0
- package/dist/lib/database/helpers.js +6 -6
- package/dist/lib/database/query-execution.d.ts.map +1 -1
- package/dist/lib/database/query-execution.js +17 -17
- package/dist/lib/database/relations.js +5 -5
- package/dist/lib/database/write-lifecycle.d.ts +2 -2
- package/dist/lib/database/write-lifecycle.d.ts.map +1 -1
- package/dist/lib/database/write-lifecycle.js +5 -5
- package/dist/lib/database.d.ts +74 -59
- package/dist/lib/database.d.ts.map +1 -1
- package/dist/lib/database.js +176 -83
- package/dist/lib/driver.d.ts +287 -0
- package/dist/lib/driver.d.ts.map +1 -0
- package/dist/lib/errors.d.ts +2 -2
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +4 -4
- package/dist/lib/migrations/directive.d.ts +12 -0
- package/dist/lib/migrations/directive.d.ts.map +1 -0
- package/dist/lib/migrations/directive.js +28 -0
- package/dist/lib/migrations/directory-name.d.ts +12 -0
- package/dist/lib/migrations/directory-name.d.ts.map +1 -0
- package/dist/lib/migrations/directory-name.js +18 -0
- package/dist/lib/migrations/journal-store.d.ts +7 -7
- package/dist/lib/migrations/journal-store.d.ts.map +1 -1
- package/dist/lib/migrations/journal-store.js +37 -28
- package/dist/lib/migrations/registry.d.ts +1 -1
- package/dist/lib/migrations/registry.js +1 -1
- package/dist/lib/migrations/runner.d.ts +12 -19
- package/dist/lib/migrations/runner.d.ts.map +1 -1
- package/dist/lib/migrations/runner.js +170 -175
- package/dist/lib/migrations-node.d.ts +26 -5
- package/dist/lib/migrations-node.d.ts.map +1 -1
- package/dist/lib/migrations-node.js +73 -41
- package/dist/lib/migrations.d.ts +63 -209
- package/dist/lib/migrations.d.ts.map +1 -1
- package/dist/lib/migrations.js +1 -38
- package/dist/lib/operators.d.ts +1 -1
- package/dist/lib/operators.js +1 -1
- package/dist/lib/query.d.ts +34 -1
- package/dist/lib/query.d.ts.map +1 -1
- package/dist/lib/query.js +32 -4
- package/dist/lib/sql-helpers.d.ts +1 -7
- package/dist/lib/sql-helpers.d.ts.map +1 -1
- package/dist/lib/sql-helpers.js +0 -16
- package/dist/lib/sql.d.ts +1 -1
- package/dist/lib/sql.js +1 -1
- package/dist/lib/table.d.ts +1 -1
- package/dist/lib/table.d.ts.map +1 -1
- package/dist/lib/table.js +5 -5
- package/dist/migrations/node.d.ts +1 -1
- package/dist/migrations/node.d.ts.map +1 -1
- package/dist/migrations/node.js +1 -1
- package/dist/migrations.d.ts +2 -6
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +2 -5
- package/dist/operators.js +1 -1
- package/dist/sql-helpers.d.ts +1 -1
- package/dist/sql-helpers.d.ts.map +1 -1
- package/dist/sql-helpers.js +1 -1
- package/package.json +13 -9
- package/src/cli.ts +120 -0
- package/src/index.ts +20 -54
- package/src/lib/column.ts +14 -2
- package/src/lib/database/execution-context.ts +10 -6
- package/src/lib/database/helpers.ts +1 -1
- package/src/lib/database/query-execution.ts +15 -11
- package/src/lib/database/write-lifecycle.ts +4 -4
- package/src/lib/database.ts +223 -96
- package/src/lib/driver.ts +333 -0
- package/src/lib/errors.ts +4 -4
- package/src/lib/migrations/directive.ts +38 -0
- package/src/lib/migrations/directory-name.ts +23 -0
- package/src/lib/migrations/journal-store.ts +42 -28
- package/src/lib/migrations/registry.ts +1 -1
- package/src/lib/migrations/runner.ts +224 -205
- package/src/lib/migrations-node.ts +80 -38
- package/src/lib/migrations.ts +62 -228
- package/src/lib/operators.ts +1 -1
- package/src/lib/query.ts +34 -1
- package/src/lib/sql-helpers.ts +1 -22
- package/src/lib/sql.ts +1 -1
- package/src/lib/table.ts +1 -1
- package/src/migrations/node.ts +1 -1
- package/src/migrations.ts +5 -16
- package/src/sql-helpers.ts +0 -1
- package/dist/lib/adapter.d.ts +0 -550
- package/dist/lib/adapter.d.ts.map +0 -1
- package/dist/lib/migrations/filename.d.ts +0 -12
- package/dist/lib/migrations/filename.d.ts.map +0 -1
- package/dist/lib/migrations/filename.js +0 -20
- package/dist/lib/migrations/helpers.d.ts +0 -11
- package/dist/lib/migrations/helpers.d.ts.map +0 -1
- package/dist/lib/migrations/helpers.js +0 -77
- package/dist/lib/migrations/schema-api.d.ts +0 -7
- package/dist/lib/migrations/schema-api.d.ts.map +0 -1
- package/dist/lib/migrations/schema-api.js +0 -326
- package/src/lib/adapter.ts +0 -653
- package/src/lib/migrations/filename.ts +0 -25
- package/src/lib/migrations/helpers.ts +0 -108
- package/src/lib/migrations/schema-api.ts +0 -417
- /package/dist/lib/{adapter.js → driver.js} +0 -0
package/dist/lib/database.js
CHANGED
|
@@ -1,35 +1,145 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { executeOperation } from
|
|
3
|
-
import { asQueryTableInput, getPrimaryKeyWhere, getPrimaryKeyWhereFromRow, normalizeOrderByInput, resolveCreateRowWhere, toWriteResult, } from
|
|
4
|
-
import { executeQuery } from
|
|
5
|
-
import { bindQueryRuntime, query as createQuery } from
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
1
|
+
import { DataTableDatabaseError, DataTableQueryError } from './errors.js';
|
|
2
|
+
import { executeOperation, runInTransaction, } from './database/execution-context.js';
|
|
3
|
+
import { asQueryTableInput, getPrimaryKeyWhere, getPrimaryKeyWhereFromRow, normalizeOrderByInput, resolveCreateRowWhere, toWriteResult, } from './database/helpers.js';
|
|
4
|
+
import { executeQuery } from './database/query-execution.js';
|
|
5
|
+
import { bindQueryRuntime, query as createQuery } from './query.js';
|
|
6
|
+
import { createMigrationRunner } from './migrations/runner.js';
|
|
7
|
+
import { isSqlStatement, rawSql } from './sql.js';
|
|
8
|
+
import { getTableName } from './table.js';
|
|
9
9
|
/**
|
|
10
|
-
* High-level database runtime used to
|
|
10
|
+
* High-level database runtime used to query and manage a database.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* Database dialects extend this class and provide a {@link DatabaseDriver} to the constructor.
|
|
13
|
+
* The driver owns SQL execution, transactions, and connection lifecycle while this class provides
|
|
14
|
+
* the shared query, persistence, and migration APIs.
|
|
14
15
|
*/
|
|
15
16
|
export class Database {
|
|
16
|
-
#
|
|
17
|
+
#driver;
|
|
18
|
+
#executionContext;
|
|
17
19
|
#token;
|
|
18
20
|
#now;
|
|
19
21
|
#savepointCounter;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Creates a database backed by a driver.
|
|
24
|
+
* @param driver Low-level database engine integration.
|
|
25
|
+
* @param options Database runtime options.
|
|
26
|
+
*/
|
|
27
|
+
constructor(driver, options) {
|
|
28
|
+
this.#driver = driver;
|
|
22
29
|
this.#now = options?.now ?? defaultNow;
|
|
23
30
|
this.#savepointCounter = { value: 0 };
|
|
31
|
+
let database = this;
|
|
32
|
+
this.#executionContext = {
|
|
33
|
+
get capabilities() {
|
|
34
|
+
return database.capabilities;
|
|
35
|
+
},
|
|
36
|
+
now() {
|
|
37
|
+
return database.now();
|
|
38
|
+
},
|
|
39
|
+
[executeOperation](operation) {
|
|
40
|
+
return database.#executeOperation(operation);
|
|
41
|
+
},
|
|
42
|
+
[runInTransaction](callback, transactionOptions) {
|
|
43
|
+
return database.#runInTransaction((transactionDatabase) => callback(transactionDatabase.#executionContext), transactionOptions);
|
|
44
|
+
},
|
|
45
|
+
};
|
|
24
46
|
}
|
|
25
|
-
static
|
|
26
|
-
let database = new Database(
|
|
47
|
+
static #createInternalDatabase(driver, options, internal) {
|
|
48
|
+
let database = new Database(driver, options);
|
|
27
49
|
database.#token = internal.token;
|
|
28
50
|
database.#savepointCounter = internal.savepointCounter;
|
|
29
51
|
return database;
|
|
30
52
|
}
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
/** Stable identifier for the SQL dialect. */
|
|
54
|
+
get dialect() {
|
|
55
|
+
return this.#driver.dialect;
|
|
56
|
+
}
|
|
57
|
+
/** Immutable feature flags used by shared query and migration behavior. */
|
|
58
|
+
get capabilities() {
|
|
59
|
+
return this.#driver.capabilities;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Executes a migration or raw multi-statement SQL script.
|
|
63
|
+
* @param sql SQL script to execute.
|
|
64
|
+
* @returns A promise that resolves when execution completes.
|
|
65
|
+
*/
|
|
66
|
+
executeScript(sql) {
|
|
67
|
+
return this.#driver.executeScript(sql, this.#token);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reports whether a table exists.
|
|
71
|
+
* @param table Table to inspect.
|
|
72
|
+
* @returns A promise that resolves to `true` when the table exists.
|
|
73
|
+
*/
|
|
74
|
+
hasTable(table) {
|
|
75
|
+
return this.#driver.hasTable(table, this.#token);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Reports whether a column exists on a table.
|
|
79
|
+
* @param table Table to inspect.
|
|
80
|
+
* @param column Column name to inspect.
|
|
81
|
+
* @returns A promise that resolves to `true` when the column exists.
|
|
82
|
+
*/
|
|
83
|
+
hasColumn(table, column) {
|
|
84
|
+
return this.#driver.hasColumn(table, column, this.#token);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Closes resources owned by this database.
|
|
88
|
+
* @returns A promise that resolves when owned resources have been released.
|
|
89
|
+
*/
|
|
90
|
+
async close() {
|
|
91
|
+
this.#assertLifecycleOperationAllowed('close');
|
|
92
|
+
await this.#driver.close();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Destructively recreates the configured database.
|
|
96
|
+
* @returns A promise that resolves when the database is ready for use.
|
|
97
|
+
*/
|
|
98
|
+
async wipe() {
|
|
99
|
+
this.#assertLifecycleOperationAllowed('wipe');
|
|
100
|
+
await this.#driver.wipe();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Applies or reverts migrations in order.
|
|
104
|
+
*
|
|
105
|
+
* @param migrations Migration descriptors or registry to apply.
|
|
106
|
+
* @param options Migration direction, bound, dry-run, and journal configuration.
|
|
107
|
+
* @returns The migrations applied or reverted by this run and their SQL scripts.
|
|
108
|
+
*/
|
|
109
|
+
async migrate(migrations, options) {
|
|
110
|
+
this.#assertLifecycleOperationAllowed('migrate');
|
|
111
|
+
let { direction = 'up', journalTable, ...migrateOptions } = options ?? {};
|
|
112
|
+
let runner = createMigrationRunner(this.#driver, migrations, { journalTable });
|
|
113
|
+
return direction === 'up' ? runner.up(migrateOptions) : runner.down(migrateOptions);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Reports the current state of the provided migrations.
|
|
117
|
+
*
|
|
118
|
+
* @param migrations Migration descriptors or registry to inspect.
|
|
119
|
+
* @param options Migration journal configuration.
|
|
120
|
+
* @returns Status entries for the provided migrations.
|
|
121
|
+
*/
|
|
122
|
+
async migrationStatus(migrations, options = {}) {
|
|
123
|
+
this.#assertLifecycleOperationAllowed('migrationStatus');
|
|
124
|
+
let runner = createMigrationRunner(this.#driver, migrations, options);
|
|
125
|
+
return runner.status();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Wipes the database, applies migrations, and optionally seeds data.
|
|
129
|
+
*
|
|
130
|
+
* @param options Migrations and optional seed function used to rebuild the database.
|
|
131
|
+
* @returns A promise that resolves when the database has been rebuilt.
|
|
132
|
+
*/
|
|
133
|
+
async reset(options) {
|
|
134
|
+
this.#assertLifecycleOperationAllowed('reset');
|
|
135
|
+
await this.wipe();
|
|
136
|
+
await this.migrate(options.migrations, { journalTable: options.journalTable });
|
|
137
|
+
await options.seed?.(this);
|
|
138
|
+
}
|
|
139
|
+
#assertLifecycleOperationAllowed(method) {
|
|
140
|
+
if (this.#token) {
|
|
141
|
+
throw new DataTableQueryError('Cannot call ' + method + '() from a transaction-scoped database');
|
|
142
|
+
}
|
|
33
143
|
}
|
|
34
144
|
now() {
|
|
35
145
|
return this.#now();
|
|
@@ -44,7 +154,7 @@ export class Database {
|
|
|
44
154
|
let result = await query.insert(values, { touch });
|
|
45
155
|
return toWriteResult(result);
|
|
46
156
|
}
|
|
47
|
-
if (this
|
|
157
|
+
if (this.capabilities.returning) {
|
|
48
158
|
let result = (await query.insert(values, {
|
|
49
159
|
returning: '*',
|
|
50
160
|
touch,
|
|
@@ -80,8 +190,8 @@ export class Database {
|
|
|
80
190
|
async createMany(table, values, options) {
|
|
81
191
|
let query = this.query(asQueryTableInput(table));
|
|
82
192
|
if (options?.returnRows === true) {
|
|
83
|
-
if (!this
|
|
84
|
-
throw new DataTableQueryError('createMany({ returnRows: true }) is not supported by this
|
|
193
|
+
if (!this.capabilities.returning) {
|
|
194
|
+
throw new DataTableQueryError('createMany({ returnRows: true }) is not supported by this database');
|
|
85
195
|
}
|
|
86
196
|
let result = (await query.insertMany(values, {
|
|
87
197
|
returning: '*',
|
|
@@ -144,7 +254,7 @@ export class Database {
|
|
|
144
254
|
}
|
|
145
255
|
async update(table, value, changes, options) {
|
|
146
256
|
let where = getPrimaryKeyWhere(table, value);
|
|
147
|
-
if (this
|
|
257
|
+
if (this.capabilities.returning) {
|
|
148
258
|
let updateResult = (await this.query(asQueryTableInput(table)).where(where).update(changes, {
|
|
149
259
|
touch: options?.touch,
|
|
150
260
|
returning: '*',
|
|
@@ -214,106 +324,89 @@ export class Database {
|
|
|
214
324
|
let sqlStatement = isSqlStatement(statementOrInput)
|
|
215
325
|
? statementOrInput
|
|
216
326
|
: rawSql(statementOrInput, values);
|
|
217
|
-
return this
|
|
327
|
+
return this.#executeOperation({
|
|
218
328
|
kind: 'raw',
|
|
219
329
|
sql: sqlStatement,
|
|
220
330
|
});
|
|
221
331
|
}
|
|
222
|
-
return executeQuery(this, statementOrInput);
|
|
332
|
+
return executeQuery(this.#executionContext, statementOrInput);
|
|
223
333
|
}
|
|
224
334
|
async transaction(callback, options) {
|
|
335
|
+
return this.#runInTransaction(callback, options);
|
|
336
|
+
}
|
|
337
|
+
async #runInTransaction(callback, options) {
|
|
225
338
|
if (!this.#token) {
|
|
226
|
-
let token = await this.#
|
|
227
|
-
let tx = Database
|
|
339
|
+
let token = await this.#driver.beginTransaction(options);
|
|
340
|
+
let tx = Database.#createInternalDatabase(this.#driver, { now: this.#now }, {
|
|
228
341
|
token,
|
|
229
342
|
savepointCounter: this.#savepointCounter,
|
|
230
343
|
});
|
|
344
|
+
let result;
|
|
231
345
|
try {
|
|
232
|
-
|
|
233
|
-
await this.#adapter.commitTransaction(token);
|
|
234
|
-
return result;
|
|
346
|
+
result = await callback(tx);
|
|
235
347
|
}
|
|
236
348
|
catch (error) {
|
|
237
|
-
|
|
349
|
+
try {
|
|
350
|
+
await this.#driver.rollbackTransaction(token);
|
|
351
|
+
}
|
|
352
|
+
catch (rollbackError) {
|
|
353
|
+
throw new AggregateError([error, rollbackError], 'Database transaction and rollback both failed', { cause: error });
|
|
354
|
+
}
|
|
238
355
|
throw error;
|
|
239
356
|
}
|
|
357
|
+
await this.#driver.commitTransaction(token);
|
|
358
|
+
return result;
|
|
240
359
|
}
|
|
241
|
-
if (!this
|
|
242
|
-
throw new DataTableQueryError('Nested transactions require
|
|
360
|
+
if (!this.capabilities.savepoints) {
|
|
361
|
+
throw new DataTableQueryError('Nested transactions require database savepoint support');
|
|
243
362
|
}
|
|
244
363
|
let savepointName = 'sp_' + String(this.#savepointCounter.value);
|
|
245
364
|
this.#savepointCounter.value += 1;
|
|
246
|
-
await this.#
|
|
365
|
+
await this.#driver.createSavepoint(this.#token, savepointName);
|
|
366
|
+
let result;
|
|
247
367
|
try {
|
|
248
|
-
|
|
249
|
-
await this.#adapter.releaseSavepoint(this.#token, savepointName);
|
|
250
|
-
return result;
|
|
368
|
+
result = await callback(this);
|
|
251
369
|
}
|
|
252
370
|
catch (error) {
|
|
253
|
-
|
|
254
|
-
|
|
371
|
+
let failures = [error];
|
|
372
|
+
try {
|
|
373
|
+
await this.#driver.rollbackToSavepoint(this.#token, savepointName);
|
|
374
|
+
}
|
|
375
|
+
catch (rollbackError) {
|
|
376
|
+
failures.push(rollbackError);
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
await this.#driver.releaseSavepoint(this.#token, savepointName);
|
|
380
|
+
}
|
|
381
|
+
catch (releaseError) {
|
|
382
|
+
failures.push(releaseError);
|
|
383
|
+
}
|
|
384
|
+
if (failures.length > 1) {
|
|
385
|
+
throw new AggregateError(failures, 'Nested transaction cleanup failed', { cause: error });
|
|
386
|
+
}
|
|
255
387
|
throw error;
|
|
256
388
|
}
|
|
389
|
+
await this.#driver.releaseSavepoint(this.#token, savepointName);
|
|
390
|
+
return result;
|
|
257
391
|
}
|
|
258
|
-
async
|
|
392
|
+
async #executeOperation(operation) {
|
|
259
393
|
try {
|
|
260
|
-
return await this.#
|
|
394
|
+
return await this.#driver.execute({
|
|
261
395
|
operation,
|
|
262
396
|
transaction: this.#token,
|
|
263
397
|
});
|
|
264
398
|
}
|
|
265
399
|
catch (error) {
|
|
266
|
-
throw new
|
|
400
|
+
throw new DataTableDatabaseError('Database execution failed', {
|
|
267
401
|
cause: error,
|
|
268
402
|
metadata: {
|
|
269
|
-
dialect: this
|
|
403
|
+
dialect: this.dialect,
|
|
270
404
|
operationKind: operation.kind,
|
|
271
405
|
},
|
|
272
406
|
});
|
|
273
407
|
}
|
|
274
408
|
}
|
|
275
409
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Creates a database runtime from an adapter.
|
|
278
|
-
* Thin wrapper around `new Database(adapter, options)`.
|
|
279
|
-
* @param adapter Adapter implementation responsible for SQL execution.
|
|
280
|
-
* @param options Optional runtime options.
|
|
281
|
-
* @param options.now Clock function used for auto-managed timestamps.
|
|
282
|
-
* @returns A {@link Database} API instance.
|
|
283
|
-
* @example
|
|
284
|
-
* ```ts
|
|
285
|
-
* import { column as c, createDatabase, table } from 'remix/data-table'
|
|
286
|
-
*
|
|
287
|
-
* let users = table({
|
|
288
|
-
* name: 'users',
|
|
289
|
-
* columns: {
|
|
290
|
-
* id: c.integer(),
|
|
291
|
-
* email: c.varchar(255),
|
|
292
|
-
* },
|
|
293
|
-
* })
|
|
294
|
-
*
|
|
295
|
-
* let db = createDatabase(adapter)
|
|
296
|
-
* let rows = await db.query(users).where({ id: 1 }).all()
|
|
297
|
-
* ```
|
|
298
|
-
*/
|
|
299
|
-
export function createDatabase(adapter, options) {
|
|
300
|
-
return new Database(adapter, options);
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Creates a database runtime bound to an existing adapter transaction token.
|
|
304
|
-
* This is an internal helper used by the migration runner.
|
|
305
|
-
* @param adapter Adapter implementation responsible for SQL execution.
|
|
306
|
-
* @param token Active adapter transaction token.
|
|
307
|
-
* @param options Optional runtime options.
|
|
308
|
-
* @param options.now Clock function used for auto-managed timestamps.
|
|
309
|
-
* @returns A {@link Database} API instance bound to the provided transaction.
|
|
310
|
-
*/
|
|
311
|
-
export function createDatabaseWithTransaction(adapter, token, options) {
|
|
312
|
-
return Database[createInternalDatabase](adapter, options, {
|
|
313
|
-
token,
|
|
314
|
-
savepointCounter: { value: 0 },
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
410
|
function defaultNow() {
|
|
318
411
|
return new Date();
|
|
319
412
|
}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import type { AnyTable, OrderByClause } from './table.ts';
|
|
2
|
+
import type { Predicate } from './operators.ts';
|
|
3
|
+
import type { SqlStatement } from './sql.ts';
|
|
4
|
+
/**
|
|
5
|
+
* SQL join kinds supported by database drivers.
|
|
6
|
+
*/
|
|
7
|
+
export type JoinType = 'inner' | 'left' | 'right';
|
|
8
|
+
/**
|
|
9
|
+
* Join configuration used in compiled select statements.
|
|
10
|
+
*/
|
|
11
|
+
export type JoinClause = {
|
|
12
|
+
type: JoinType;
|
|
13
|
+
table: AnyTable;
|
|
14
|
+
on: Predicate;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Selected output column with optional alias.
|
|
18
|
+
*/
|
|
19
|
+
export type SelectColumn = {
|
|
20
|
+
column: string;
|
|
21
|
+
alias: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Returning selection for write statements.
|
|
25
|
+
*/
|
|
26
|
+
export type ReturningSelection = '*' | string[];
|
|
27
|
+
/**
|
|
28
|
+
* Canonical select statement shape consumed by drivers.
|
|
29
|
+
*/
|
|
30
|
+
export type SelectOperation<table extends AnyTable = AnyTable> = {
|
|
31
|
+
kind: 'select';
|
|
32
|
+
table: table;
|
|
33
|
+
select: '*' | SelectColumn[];
|
|
34
|
+
distinct: boolean;
|
|
35
|
+
joins: JoinClause[];
|
|
36
|
+
where: Predicate[];
|
|
37
|
+
groupBy: string[];
|
|
38
|
+
having: Predicate[];
|
|
39
|
+
orderBy: OrderByClause[];
|
|
40
|
+
limit?: number;
|
|
41
|
+
offset?: number;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Canonical count statement shape consumed by drivers.
|
|
45
|
+
*/
|
|
46
|
+
export type CountOperation<table extends AnyTable = AnyTable> = {
|
|
47
|
+
kind: 'count';
|
|
48
|
+
table: table;
|
|
49
|
+
joins: JoinClause[];
|
|
50
|
+
where: Predicate[];
|
|
51
|
+
groupBy: string[];
|
|
52
|
+
having: Predicate[];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Canonical exists statement shape consumed by drivers.
|
|
56
|
+
*/
|
|
57
|
+
export type ExistsOperation<table extends AnyTable = AnyTable> = {
|
|
58
|
+
kind: 'exists';
|
|
59
|
+
table: table;
|
|
60
|
+
joins: JoinClause[];
|
|
61
|
+
where: Predicate[];
|
|
62
|
+
groupBy: string[];
|
|
63
|
+
having: Predicate[];
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Canonical insert statement shape consumed by drivers.
|
|
67
|
+
*/
|
|
68
|
+
export type InsertOperation<table extends AnyTable = AnyTable> = {
|
|
69
|
+
kind: 'insert';
|
|
70
|
+
table: table;
|
|
71
|
+
values: Record<string, unknown>;
|
|
72
|
+
returning?: ReturningSelection;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Canonical bulk-insert statement shape consumed by drivers.
|
|
76
|
+
*/
|
|
77
|
+
export type InsertManyOperation<table extends AnyTable = AnyTable> = {
|
|
78
|
+
kind: 'insertMany';
|
|
79
|
+
table: table;
|
|
80
|
+
values: Record<string, unknown>[];
|
|
81
|
+
returning?: ReturningSelection;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Canonical update statement shape consumed by drivers.
|
|
85
|
+
*/
|
|
86
|
+
export type UpdateOperation<table extends AnyTable = AnyTable> = {
|
|
87
|
+
kind: 'update';
|
|
88
|
+
table: table;
|
|
89
|
+
changes: Record<string, unknown>;
|
|
90
|
+
where: Predicate[];
|
|
91
|
+
returning?: ReturningSelection;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Canonical delete statement shape consumed by drivers.
|
|
95
|
+
*/
|
|
96
|
+
export type DeleteOperation<table extends AnyTable = AnyTable> = {
|
|
97
|
+
kind: 'delete';
|
|
98
|
+
table: table;
|
|
99
|
+
where: Predicate[];
|
|
100
|
+
returning?: ReturningSelection;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Canonical upsert statement shape consumed by drivers.
|
|
104
|
+
*/
|
|
105
|
+
export type UpsertOperation<table extends AnyTable = AnyTable> = {
|
|
106
|
+
kind: 'upsert';
|
|
107
|
+
table: table;
|
|
108
|
+
values: Record<string, unknown>;
|
|
109
|
+
conflictTarget?: string[];
|
|
110
|
+
update?: Record<string, unknown>;
|
|
111
|
+
returning?: ReturningSelection;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Raw SQL statement execution descriptor.
|
|
115
|
+
*/
|
|
116
|
+
export type RawOperation = {
|
|
117
|
+
kind: 'raw';
|
|
118
|
+
sql: SqlStatement;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Union of all data-manipulation statement shapes.
|
|
122
|
+
*/
|
|
123
|
+
export type DataManipulationOperation = SelectOperation | CountOperation | ExistsOperation | InsertOperation | InsertManyOperation | UpdateOperation | DeleteOperation | UpsertOperation | RawOperation;
|
|
124
|
+
/**
|
|
125
|
+
* Qualified table reference.
|
|
126
|
+
*/
|
|
127
|
+
export type TableRef = {
|
|
128
|
+
name: string;
|
|
129
|
+
schema?: string;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Referential actions supported by foreign key constraints.
|
|
133
|
+
*/
|
|
134
|
+
export type ForeignKeyAction = 'cascade' | 'restrict' | 'set null' | 'set default' | 'no action';
|
|
135
|
+
/**
|
|
136
|
+
* Logical column type names used by schema definitions.
|
|
137
|
+
*/
|
|
138
|
+
export type ColumnTypeName = 'varchar' | 'text' | 'integer' | 'bigint' | 'decimal' | 'boolean' | 'uuid' | 'date' | 'time' | 'timestamp' | 'json' | 'binary' | 'enum';
|
|
139
|
+
/**
|
|
140
|
+
* Default value definition for a column.
|
|
141
|
+
*/
|
|
142
|
+
export type ColumnDefault = {
|
|
143
|
+
kind: 'literal';
|
|
144
|
+
value: unknown;
|
|
145
|
+
} | {
|
|
146
|
+
kind: 'now';
|
|
147
|
+
} | {
|
|
148
|
+
kind: 'sql';
|
|
149
|
+
expression: string;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Definition for a computed or generated column.
|
|
153
|
+
*/
|
|
154
|
+
export type ColumnComputed = {
|
|
155
|
+
expression: string;
|
|
156
|
+
stored: boolean;
|
|
157
|
+
};
|
|
158
|
+
/** Options for configuring identity column generation. */
|
|
159
|
+
export type IdentityOptions = {
|
|
160
|
+
always?: boolean;
|
|
161
|
+
start?: number;
|
|
162
|
+
increment?: number;
|
|
163
|
+
};
|
|
164
|
+
/** Foreign-key reference metadata declared on a column. */
|
|
165
|
+
export type ColumnReference = {
|
|
166
|
+
table: TableRef;
|
|
167
|
+
columns: string[];
|
|
168
|
+
name: string;
|
|
169
|
+
onDelete?: ForeignKeyAction;
|
|
170
|
+
onUpdate?: ForeignKeyAction;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Check constraint declared on a column definition.
|
|
174
|
+
*/
|
|
175
|
+
export type ColumnCheck = {
|
|
176
|
+
expression: string;
|
|
177
|
+
name: string;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Normalized column definition used in schema operations.
|
|
181
|
+
*/
|
|
182
|
+
export type ColumnDefinition = {
|
|
183
|
+
type: ColumnTypeName;
|
|
184
|
+
nullable?: boolean;
|
|
185
|
+
primaryKey?: boolean;
|
|
186
|
+
unique?: boolean | {
|
|
187
|
+
name?: string;
|
|
188
|
+
};
|
|
189
|
+
default?: ColumnDefault;
|
|
190
|
+
computed?: ColumnComputed;
|
|
191
|
+
references?: ColumnReference;
|
|
192
|
+
checks?: ColumnCheck[];
|
|
193
|
+
comment?: string;
|
|
194
|
+
length?: number;
|
|
195
|
+
precision?: number;
|
|
196
|
+
scale?: number;
|
|
197
|
+
unsigned?: boolean;
|
|
198
|
+
withTimezone?: boolean;
|
|
199
|
+
enumValues?: string[];
|
|
200
|
+
autoIncrement?: boolean;
|
|
201
|
+
identity?: IdentityOptions;
|
|
202
|
+
collate?: string;
|
|
203
|
+
charset?: string;
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Opaque transaction handle supplied by database drivers.
|
|
207
|
+
*/
|
|
208
|
+
export type TransactionToken = {
|
|
209
|
+
id: string;
|
|
210
|
+
metadata?: Record<string, unknown>;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Transaction hints that database drivers may apply when supported by the dialect.
|
|
214
|
+
*/
|
|
215
|
+
export type TransactionOptions = {
|
|
216
|
+
isolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
|
|
217
|
+
readOnly?: boolean;
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Database driver execution request payload.
|
|
221
|
+
*/
|
|
222
|
+
export type DataManipulationRequest = {
|
|
223
|
+
operation: DataManipulationOperation;
|
|
224
|
+
transaction?: TransactionToken;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Database data-manipulation result payload.
|
|
228
|
+
*/
|
|
229
|
+
export type DataManipulationResult = {
|
|
230
|
+
rows?: Record<string, unknown>[];
|
|
231
|
+
affectedRows?: number;
|
|
232
|
+
insertId?: unknown;
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Declares database feature support.
|
|
236
|
+
*/
|
|
237
|
+
export type DatabaseCapabilities = {
|
|
238
|
+
readonly returning: boolean;
|
|
239
|
+
readonly savepoints: boolean;
|
|
240
|
+
readonly upsert: boolean;
|
|
241
|
+
readonly transactionalDdl: boolean;
|
|
242
|
+
readonly migrationLock: boolean;
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Low-level contract that connects a `Database` to a database engine.
|
|
246
|
+
*/
|
|
247
|
+
export interface DatabaseDriver<dialect extends string = string> {
|
|
248
|
+
/** Stable identifier for the SQL dialect. */
|
|
249
|
+
readonly dialect: dialect;
|
|
250
|
+
/** Immutable feature flags used by shared query and migration behavior. */
|
|
251
|
+
readonly capabilities: DatabaseCapabilities;
|
|
252
|
+
/** Executes a data-manipulation request. */
|
|
253
|
+
execute(request: DataManipulationRequest): Promise<DataManipulationResult>;
|
|
254
|
+
/** Executes a raw SQL script that may contain multiple statements. */
|
|
255
|
+
executeScript(sql: string, transaction?: TransactionToken): Promise<void>;
|
|
256
|
+
/** Starts a new database transaction. */
|
|
257
|
+
beginTransaction(options?: TransactionOptions): Promise<TransactionToken>;
|
|
258
|
+
/** Commits an open transaction. */
|
|
259
|
+
commitTransaction(token: TransactionToken): Promise<void>;
|
|
260
|
+
/** Rolls back an open transaction. */
|
|
261
|
+
rollbackTransaction(token: TransactionToken): Promise<void>;
|
|
262
|
+
/** Checks whether a table exists. */
|
|
263
|
+
hasTable(table: TableRef, transaction?: TransactionToken): Promise<boolean>;
|
|
264
|
+
/** Checks whether a column exists on a table. */
|
|
265
|
+
hasColumn(table: TableRef, column: string, transaction?: TransactionToken): Promise<boolean>;
|
|
266
|
+
/** Creates a savepoint inside an open transaction. */
|
|
267
|
+
createSavepoint(token: TransactionToken, name: string): Promise<void>;
|
|
268
|
+
/** Rolls back to a previously created savepoint. */
|
|
269
|
+
rollbackToSavepoint(token: TransactionToken, name: string): Promise<void>;
|
|
270
|
+
/** Releases a previously created savepoint. */
|
|
271
|
+
releaseSavepoint(token: TransactionToken, name: string): Promise<void>;
|
|
272
|
+
/** Destructively recreates the configured database. */
|
|
273
|
+
wipe(): Promise<void>;
|
|
274
|
+
/** Releases connection handles owned by the driver. Must be safe to call repeatedly. */
|
|
275
|
+
close(): void | Promise<void>;
|
|
276
|
+
/**
|
|
277
|
+
* Runs migration work while holding a driver-specific lock.
|
|
278
|
+
*
|
|
279
|
+
* The callback receives a driver bound to the connection that owns the lock. Drivers must
|
|
280
|
+
* release the lock when the callback rejects as well as when it resolves.
|
|
281
|
+
* @param name Logical migration lock name.
|
|
282
|
+
* @param run Migration work to run with the connection-bound driver.
|
|
283
|
+
* @returns The callback result.
|
|
284
|
+
*/
|
|
285
|
+
withMigrationLock?<result>(name: string, run: (driver: DatabaseDriver<dialect>) => Promise<result>): Promise<result>;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -39,9 +39,9 @@ export declare class DataTableQueryError extends DataTableError {
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* Thrown when
|
|
42
|
+
* Thrown when database execution fails.
|
|
43
43
|
*/
|
|
44
|
-
export declare class
|
|
44
|
+
export declare class DataTableDatabaseError extends DataTableError {
|
|
45
45
|
constructor(message: string, options?: {
|
|
46
46
|
cause?: unknown;
|
|
47
47
|
metadata?: Record<string, unknown>;
|
package/dist/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAElC,YACE,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EAMF;CACF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAE9B,YACE,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EAUF;CACF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,YACE,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EASF;CACF;AAED;;GAEG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAElC,YACE,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EAMF;CACF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAE9B,YACE,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EAUF;CACF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,YACE,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EASF;CACF;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,YACE,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EASF;CACF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,YACE,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,EASF;CACF"}
|