@remix-run/data-table 0.1.0 → 0.2.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 +306 -55
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/lib/adapter.d.ts +386 -16
- package/dist/lib/adapter.d.ts.map +1 -1
- package/dist/lib/column.d.ts +193 -0
- package/dist/lib/column.d.ts.map +1 -0
- package/dist/lib/column.js +302 -0
- package/dist/lib/database/execution-context.d.ts +10 -0
- package/dist/lib/database/execution-context.d.ts.map +1 -0
- package/dist/lib/database/execution-context.js +1 -0
- package/dist/lib/database/helpers.d.ts +26 -0
- package/dist/lib/database/helpers.d.ts.map +1 -0
- package/dist/lib/database/helpers.js +116 -0
- package/dist/lib/database/query-execution.d.ts +7 -0
- package/dist/lib/database/query-execution.d.ts.map +1 -0
- package/dist/lib/database/query-execution.js +401 -0
- package/dist/lib/database/relations.d.ts +4 -0
- package/dist/lib/database/relations.d.ts.map +1 -0
- package/dist/lib/database/relations.js +207 -0
- package/dist/lib/database/write-lifecycle.d.ts +13 -0
- package/dist/lib/database/write-lifecycle.d.ts.map +1 -0
- package/dist/lib/database/write-lifecycle.js +279 -0
- package/dist/lib/database.d.ts +141 -238
- package/dist/lib/database.d.ts.map +1 -1
- package/dist/lib/database.js +73 -1122
- package/dist/lib/errors.d.ts +9 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +9 -0
- package/dist/lib/migrations/filename.d.ts +12 -0
- package/dist/lib/migrations/filename.d.ts.map +1 -0
- package/dist/lib/migrations/filename.js +20 -0
- package/dist/lib/migrations/helpers.d.ts +11 -0
- package/dist/lib/migrations/helpers.d.ts.map +1 -0
- package/dist/lib/migrations/helpers.js +77 -0
- package/dist/lib/migrations/journal-store.d.ts +15 -0
- package/dist/lib/migrations/journal-store.d.ts.map +1 -0
- package/dist/lib/migrations/journal-store.js +83 -0
- package/dist/lib/migrations/registry.d.ts +27 -0
- package/dist/lib/migrations/registry.d.ts.map +1 -0
- package/dist/lib/migrations/registry.js +51 -0
- package/dist/lib/migrations/runner.d.ts +20 -0
- package/dist/lib/migrations/runner.d.ts.map +1 -0
- package/dist/lib/migrations/runner.js +273 -0
- package/dist/lib/migrations/schema-api.d.ts +7 -0
- package/dist/lib/migrations/schema-api.d.ts.map +1 -0
- package/dist/lib/migrations/schema-api.js +326 -0
- package/dist/lib/migrations-node.d.ts +17 -0
- package/dist/lib/migrations-node.d.ts.map +1 -0
- package/dist/lib/migrations-node.js +65 -0
- package/dist/lib/migrations.d.ts +292 -0
- package/dist/lib/migrations.d.ts.map +1 -0
- package/dist/lib/migrations.js +38 -0
- package/dist/lib/operators.d.ts +3 -0
- package/dist/lib/operators.d.ts.map +1 -1
- package/dist/lib/query.d.ts +159 -0
- package/dist/lib/query.d.ts.map +1 -0
- package/dist/lib/query.js +401 -0
- package/dist/lib/references.d.ts +0 -1
- package/dist/lib/references.d.ts.map +1 -1
- package/dist/lib/sql-helpers.d.ts +50 -0
- package/dist/lib/sql-helpers.d.ts.map +1 -0
- package/dist/lib/sql-helpers.js +111 -0
- package/dist/lib/sql.d.ts +23 -6
- package/dist/lib/sql.d.ts.map +1 -1
- package/dist/lib/sql.js +19 -5
- package/dist/lib/table.d.ts +355 -40
- package/dist/lib/table.d.ts.map +1 -1
- package/dist/lib/table.js +113 -90
- package/dist/migrations/node.d.ts +2 -0
- package/dist/migrations/node.d.ts.map +1 -0
- package/dist/migrations/node.js +1 -0
- package/dist/migrations.d.ts +8 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +5 -0
- package/dist/operators.d.ts +3 -0
- package/dist/operators.d.ts.map +1 -0
- package/dist/operators.js +1 -0
- package/dist/sql-helpers.d.ts +3 -0
- package/dist/sql-helpers.d.ts.map +1 -0
- package/dist/sql-helpers.js +1 -0
- package/package.json +23 -8
- package/src/index.ts +93 -10
- package/src/lib/adapter.ts +469 -25
- package/src/lib/column.ts +384 -0
- package/src/lib/database/execution-context.ts +15 -0
- package/src/lib/database/helpers.ts +216 -0
- package/src/lib/database/query-execution.ts +638 -0
- package/src/lib/database/relations.ts +332 -0
- package/src/lib/database/write-lifecycle.ts +487 -0
- package/src/lib/database.ts +246 -1848
- package/src/lib/errors.ts +10 -0
- package/src/lib/migrations/filename.ts +25 -0
- package/src/lib/migrations/helpers.ts +108 -0
- package/src/lib/migrations/journal-store.ts +122 -0
- package/src/lib/migrations/registry.ts +62 -0
- package/src/lib/migrations/runner.ts +374 -0
- package/src/lib/migrations/schema-api.ts +417 -0
- package/src/lib/migrations-node.ts +71 -0
- package/src/lib/migrations.ts +328 -0
- package/src/lib/operators.ts +3 -0
- package/src/lib/query.ts +958 -0
- package/src/lib/references.ts +0 -1
- package/src/lib/sql-helpers.ts +146 -0
- package/src/lib/sql.ts +23 -6
- package/src/lib/table.ts +484 -156
- package/src/migrations/node.ts +1 -0
- package/src/migrations.ts +26 -0
- package/src/operators.ts +18 -0
- package/src/sql-helpers.ts +9 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import type { Database } from './database.ts';
|
|
2
|
+
import type { ColumnDefinition, ForeignKeyAction, IndexDefinition } from './adapter.ts';
|
|
3
|
+
import type { ColumnBuilder } from './column.ts';
|
|
4
|
+
import type { SqlStatement } from './sql.ts';
|
|
5
|
+
import type { AnyTable } from './table.ts';
|
|
6
|
+
/**
|
|
7
|
+
* Controls how each migration is wrapped in transactions.
|
|
8
|
+
*/
|
|
9
|
+
export type MigrationTransactionMode = 'auto' | 'required' | 'none';
|
|
10
|
+
/**
|
|
11
|
+
* Runtime context passed to migration `up`/`down` handlers.
|
|
12
|
+
*/
|
|
13
|
+
export type MigrationContext = {
|
|
14
|
+
/**
|
|
15
|
+
* Immediate data runtime (`query/create/update/exec/transaction`).
|
|
16
|
+
*/
|
|
17
|
+
db: Database;
|
|
18
|
+
/**
|
|
19
|
+
* Migration schema runtime (`createTable/alterTable/createIndex/...`).
|
|
20
|
+
*/
|
|
21
|
+
schema: MigrationSchema;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Authoring shape for `createMigration(...)`.
|
|
25
|
+
*/
|
|
26
|
+
export type CreateMigrationInput = {
|
|
27
|
+
up: (context: MigrationContext) => Promise<void> | void;
|
|
28
|
+
down: (context: MigrationContext) => Promise<void> | void;
|
|
29
|
+
transaction?: MigrationTransactionMode;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Normalized migration object consumed by the registry/runner.
|
|
33
|
+
*/
|
|
34
|
+
export type Migration = {
|
|
35
|
+
up: CreateMigrationInput['up'];
|
|
36
|
+
down: CreateMigrationInput['down'];
|
|
37
|
+
transaction: MigrationTransactionMode;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Creates a migration descriptor with normalized defaults.
|
|
41
|
+
* @param input Migration handlers and transaction mode.
|
|
42
|
+
* @returns A normalized migration object.
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { createMigration, column as c } from 'remix/data-table/migrations'
|
|
46
|
+
* import { table } from 'remix/data-table'
|
|
47
|
+
*
|
|
48
|
+
* let users = table({
|
|
49
|
+
* name: 'users',
|
|
50
|
+
* columns: {
|
|
51
|
+
* id: c.integer().primaryKey().autoIncrement(),
|
|
52
|
+
* email: c.varchar(255).notNull().unique(),
|
|
53
|
+
* },
|
|
54
|
+
* })
|
|
55
|
+
*
|
|
56
|
+
* export default createMigration({
|
|
57
|
+
* async up({ db, schema }) {
|
|
58
|
+
* await schema.createTable(users)
|
|
59
|
+
*
|
|
60
|
+
* if (db.adapter.dialect === 'sqlite') {
|
|
61
|
+
* await db.exec('pragma foreign_keys = on')
|
|
62
|
+
* }
|
|
63
|
+
* },
|
|
64
|
+
* async down({ schema }) {
|
|
65
|
+
* await schema.dropTable('users', { ifExists: true })
|
|
66
|
+
* },
|
|
67
|
+
* })
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function createMigration(input: CreateMigrationInput): Migration;
|
|
71
|
+
/**
|
|
72
|
+
* Migration metadata stored in registries and returned by loaders.
|
|
73
|
+
*/
|
|
74
|
+
export type MigrationDescriptor = {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string;
|
|
77
|
+
path?: string;
|
|
78
|
+
checksum?: string;
|
|
79
|
+
migration: Migration;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Direction used by migration runner operations.
|
|
83
|
+
*/
|
|
84
|
+
export type MigrationDirection = 'up' | 'down';
|
|
85
|
+
/**
|
|
86
|
+
* Row shape persisted in the migration journal table.
|
|
87
|
+
*/
|
|
88
|
+
export type MigrationJournalRow = {
|
|
89
|
+
id: string;
|
|
90
|
+
name: string;
|
|
91
|
+
checksum: string;
|
|
92
|
+
batch: number;
|
|
93
|
+
appliedAt: Date;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Effective status for a known migration.
|
|
97
|
+
*/
|
|
98
|
+
export type MigrationStatus = 'applied' | 'pending' | 'drifted';
|
|
99
|
+
/**
|
|
100
|
+
* Status row returned by `runner.status()` and `runner.up/down(...)`.
|
|
101
|
+
*/
|
|
102
|
+
export type MigrationStatusEntry = {
|
|
103
|
+
id: string;
|
|
104
|
+
name: string;
|
|
105
|
+
status: MigrationStatus;
|
|
106
|
+
appliedAt?: Date;
|
|
107
|
+
batch?: number;
|
|
108
|
+
checksum?: string;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Common options for `runner.up(...)` and `runner.down(...)`.
|
|
112
|
+
* `to` and `step` are mutually exclusive.
|
|
113
|
+
*/
|
|
114
|
+
export type MigrateOptions = {
|
|
115
|
+
to: string;
|
|
116
|
+
step?: never;
|
|
117
|
+
dryRun?: boolean;
|
|
118
|
+
} | {
|
|
119
|
+
to?: never;
|
|
120
|
+
step: number;
|
|
121
|
+
dryRun?: boolean;
|
|
122
|
+
} | {
|
|
123
|
+
to?: undefined;
|
|
124
|
+
step?: undefined;
|
|
125
|
+
dryRun?: boolean;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Result shape returned by migration runner commands.
|
|
129
|
+
*/
|
|
130
|
+
export type MigrateResult = {
|
|
131
|
+
applied: MigrationStatusEntry[];
|
|
132
|
+
reverted: MigrationStatusEntry[];
|
|
133
|
+
/**
|
|
134
|
+
* Compiled SQL statements for operations processed during this run.
|
|
135
|
+
* Includes planned SQL when running with `dryRun: true`.
|
|
136
|
+
*/
|
|
137
|
+
sql: SqlStatement[];
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Options for `schema.createTable(...)` migration operations.
|
|
141
|
+
*/
|
|
142
|
+
export type CreateTableOptions = {
|
|
143
|
+
ifNotExists?: boolean;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Options for `schema.alterTable(...)` migration operations.
|
|
147
|
+
*/
|
|
148
|
+
export type AlterTableOptions = {
|
|
149
|
+
ifExists?: boolean;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Options for `schema.dropTable(...)` migration operations.
|
|
153
|
+
*/
|
|
154
|
+
export type DropTableOptions = {
|
|
155
|
+
ifExists?: boolean;
|
|
156
|
+
cascade?: boolean;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Accepts either one index column or multiple (compound index).
|
|
160
|
+
*/
|
|
161
|
+
export type IndexColumns = string | string[];
|
|
162
|
+
/**
|
|
163
|
+
* Accepts either one key column or multiple (compound key).
|
|
164
|
+
*/
|
|
165
|
+
export type KeyColumns = string | string[];
|
|
166
|
+
/**
|
|
167
|
+
* Accepts either a SQL table name or a `table(...)` object.
|
|
168
|
+
*/
|
|
169
|
+
export type TableInput = string | AnyTable;
|
|
170
|
+
/**
|
|
171
|
+
* Optional name override for constraints and indexes.
|
|
172
|
+
*/
|
|
173
|
+
export type NamedConstraintOptions = {
|
|
174
|
+
name?: string;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Foreign key options for migration APIs.
|
|
178
|
+
*/
|
|
179
|
+
export type ForeignKeyOptions = NamedConstraintOptions & {
|
|
180
|
+
onDelete?: ForeignKeyAction;
|
|
181
|
+
onUpdate?: ForeignKeyAction;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Index options for migration APIs.
|
|
185
|
+
*/
|
|
186
|
+
export type CreateIndexOptions = NamedConstraintOptions & Omit<IndexDefinition, 'table' | 'name' | 'columns'> & {
|
|
187
|
+
ifNotExists?: boolean;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Builder API available inside `schema.alterTable(name, table => ...)`.
|
|
191
|
+
*/
|
|
192
|
+
export interface AlterTableBuilder {
|
|
193
|
+
/** Adds a column during an `alterTable` migration. */
|
|
194
|
+
addColumn(name: string, definition: ColumnDefinition | ColumnBuilder): void;
|
|
195
|
+
/** Changes an existing column during an `alterTable` migration. */
|
|
196
|
+
changeColumn(name: string, definition: ColumnDefinition | ColumnBuilder): void;
|
|
197
|
+
/** Renames a column during an `alterTable` migration. */
|
|
198
|
+
renameColumn(from: string, to: string): void;
|
|
199
|
+
/** Drops a column during an `alterTable` migration. */
|
|
200
|
+
dropColumn(name: string, options?: {
|
|
201
|
+
ifExists?: boolean;
|
|
202
|
+
}): void;
|
|
203
|
+
/** Adds a primary key during an `alterTable` migration. */
|
|
204
|
+
addPrimaryKey(columns: KeyColumns, options?: NamedConstraintOptions): void;
|
|
205
|
+
/** Drops a primary key during an `alterTable` migration. */
|
|
206
|
+
dropPrimaryKey(name: string): void;
|
|
207
|
+
/** Adds a unique constraint during an `alterTable` migration. */
|
|
208
|
+
addUnique(columns: KeyColumns, options?: NamedConstraintOptions): void;
|
|
209
|
+
/** Drops a unique constraint during an `alterTable` migration. */
|
|
210
|
+
dropUnique(name: string): void;
|
|
211
|
+
/** Adds a foreign key during an `alterTable` migration. */
|
|
212
|
+
addForeignKey(columns: KeyColumns, refTable: TableInput, refColumns?: KeyColumns, options?: ForeignKeyOptions): void;
|
|
213
|
+
/** Drops a foreign key during an `alterTable` migration. */
|
|
214
|
+
dropForeignKey(name: string): void;
|
|
215
|
+
/** Adds a check constraint during an `alterTable` migration. */
|
|
216
|
+
addCheck(expression: string, options?: NamedConstraintOptions): void;
|
|
217
|
+
/** Drops a check constraint during an `alterTable` migration. */
|
|
218
|
+
dropCheck(name: string): void;
|
|
219
|
+
/** Adds an index during an `alterTable` migration. */
|
|
220
|
+
addIndex(columns: IndexColumns, options?: CreateIndexOptions): void;
|
|
221
|
+
/** Drops an index during an `alterTable` migration. */
|
|
222
|
+
dropIndex(name: string): void;
|
|
223
|
+
/** Sets the table comment during an `alterTable` migration. */
|
|
224
|
+
comment(text: string): void;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* DDL-focused operations mixed into the migration `db` object.
|
|
228
|
+
*/
|
|
229
|
+
export interface MigrationSchema {
|
|
230
|
+
/** Creates a table in the migration schema. */
|
|
231
|
+
createTable<table extends AnyTable>(table: table, options?: CreateTableOptions): Promise<void>;
|
|
232
|
+
/** Alters an existing table in the migration schema. */
|
|
233
|
+
alterTable(table: TableInput, migrate: (table: AlterTableBuilder) => void, options?: AlterTableOptions): Promise<void>;
|
|
234
|
+
/** Renames a table in the migration schema. */
|
|
235
|
+
renameTable(from: TableInput, to: string): Promise<void>;
|
|
236
|
+
/** Drops a table from the migration schema. */
|
|
237
|
+
dropTable(table: TableInput, options?: DropTableOptions): Promise<void>;
|
|
238
|
+
/** Creates an index in the migration schema. */
|
|
239
|
+
createIndex(table: TableInput, columns: IndexColumns, options?: CreateIndexOptions): Promise<void>;
|
|
240
|
+
/** Drops an index from the migration schema. */
|
|
241
|
+
dropIndex(table: TableInput, name: string, options?: {
|
|
242
|
+
ifExists?: boolean;
|
|
243
|
+
}): Promise<void>;
|
|
244
|
+
/** Renames an index in the migration schema. */
|
|
245
|
+
renameIndex(table: TableInput, from: string, to: string): Promise<void>;
|
|
246
|
+
/** Adds a foreign key in the migration schema. */
|
|
247
|
+
addForeignKey(table: TableInput, columns: KeyColumns, refTable: TableInput, refColumns?: KeyColumns, options?: ForeignKeyOptions): Promise<void>;
|
|
248
|
+
/** Drops a foreign key in the migration schema. */
|
|
249
|
+
dropForeignKey(table: TableInput, name: string): Promise<void>;
|
|
250
|
+
/** Adds a check constraint in the migration schema. */
|
|
251
|
+
addCheck(table: TableInput, expression: string, options?: NamedConstraintOptions): Promise<void>;
|
|
252
|
+
/** Drops a check constraint in the migration schema. */
|
|
253
|
+
dropCheck(table: TableInput, name: string): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Adds raw SQL to the migration plan as a migration operation.
|
|
256
|
+
*/
|
|
257
|
+
plan(sql: string | SqlStatement): Promise<void>;
|
|
258
|
+
/**
|
|
259
|
+
* Returns `true` when the table exists in the current database.
|
|
260
|
+
*/
|
|
261
|
+
hasTable(table: TableInput): Promise<boolean>;
|
|
262
|
+
/**
|
|
263
|
+
* Returns `true` when the column exists on the given table.
|
|
264
|
+
*/
|
|
265
|
+
hasColumn(table: TableInput, column: string): Promise<boolean>;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Runtime-agnostic migration registry abstraction.
|
|
269
|
+
*/
|
|
270
|
+
export type MigrationRegistry = {
|
|
271
|
+
register(migration: MigrationDescriptor): void;
|
|
272
|
+
list(): MigrationDescriptor[];
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Options for creating a migration runner.
|
|
276
|
+
*/
|
|
277
|
+
export type MigrationRunnerOptions = {
|
|
278
|
+
/**
|
|
279
|
+
* Journal table used to record applied migrations.
|
|
280
|
+
* Defaults to `data_table_migrations`.
|
|
281
|
+
*/
|
|
282
|
+
journalTable?: string;
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Migration runner API for applying, reverting, and inspecting migration state.
|
|
286
|
+
*/
|
|
287
|
+
export type MigrationRunner = {
|
|
288
|
+
up(options?: MigrateOptions): Promise<MigrateResult>;
|
|
289
|
+
down(options?: MigrateOptions): Promise<MigrateResult>;
|
|
290
|
+
status(): Promise<MigrationStatusEntry[]>;
|
|
291
|
+
};
|
|
292
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/lib/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a migration descriptor with normalized defaults.
|
|
3
|
+
* @param input Migration handlers and transaction mode.
|
|
4
|
+
* @returns A normalized migration object.
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { createMigration, column as c } from 'remix/data-table/migrations'
|
|
8
|
+
* import { table } from 'remix/data-table'
|
|
9
|
+
*
|
|
10
|
+
* let users = table({
|
|
11
|
+
* name: 'users',
|
|
12
|
+
* columns: {
|
|
13
|
+
* id: c.integer().primaryKey().autoIncrement(),
|
|
14
|
+
* email: c.varchar(255).notNull().unique(),
|
|
15
|
+
* },
|
|
16
|
+
* })
|
|
17
|
+
*
|
|
18
|
+
* export default createMigration({
|
|
19
|
+
* async up({ db, schema }) {
|
|
20
|
+
* await schema.createTable(users)
|
|
21
|
+
*
|
|
22
|
+
* if (db.adapter.dialect === 'sqlite') {
|
|
23
|
+
* await db.exec('pragma foreign_keys = on')
|
|
24
|
+
* }
|
|
25
|
+
* },
|
|
26
|
+
* async down({ schema }) {
|
|
27
|
+
* await schema.dropTable('users', { ifExists: true })
|
|
28
|
+
* },
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function createMigration(input) {
|
|
33
|
+
return {
|
|
34
|
+
up: input.up,
|
|
35
|
+
down: input.down,
|
|
36
|
+
transaction: input.transaction ?? 'auto',
|
|
37
|
+
};
|
|
38
|
+
}
|
package/dist/lib/operators.d.ts
CHANGED
|
@@ -34,6 +34,9 @@ export type Predicate<column extends string = string> = {
|
|
|
34
34
|
operator: 'and' | 'or';
|
|
35
35
|
predicates: Predicate<column>[];
|
|
36
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Object shorthand accepted in `where` clauses.
|
|
39
|
+
*/
|
|
37
40
|
export type WhereObject<column extends string = string> = Partial<Record<column, unknown>>;
|
|
38
41
|
/**
|
|
39
42
|
* User-facing where input accepted by `query.where()` and relation modifiers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/lib/operators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/lib/operators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import type { JoinClause, JoinType, SelectColumn } from './adapter.ts';
|
|
2
|
+
import type { MergeColumnTypeMaps, PrimaryKeyInputForRow, QueryColumnInput, QueryColumnName, QueryColumnTypeMap, QueryColumnTypeMapFromRow, QueryColumns, QueryTableInput, RelationMapForSourceName, ReturningInput, SelectedAliasRow, WriteResult, WriteRowResult, WriteRowsResult } from './database.ts';
|
|
3
|
+
import type { Predicate, WhereInput } from './operators.ts';
|
|
4
|
+
import type { AnyRelation, AnyTable, LoadedRelationMap, OrderByClause } from './table.ts';
|
|
5
|
+
type QueryBindingState = 'bound' | 'unbound';
|
|
6
|
+
type InsertQueryOptions<row extends Record<string, unknown>> = {
|
|
7
|
+
returning?: ReturningInput<row>;
|
|
8
|
+
touch?: boolean;
|
|
9
|
+
};
|
|
10
|
+
type DeleteQueryOptions<row extends Record<string, unknown>> = {
|
|
11
|
+
returning?: ReturningInput<row>;
|
|
12
|
+
};
|
|
13
|
+
type UpsertQueryOptions<row extends Record<string, unknown>> = {
|
|
14
|
+
returning?: ReturningInput<row>;
|
|
15
|
+
touch?: boolean;
|
|
16
|
+
conflictTarget?: (keyof row & string)[];
|
|
17
|
+
update?: Partial<row>;
|
|
18
|
+
};
|
|
19
|
+
export type QueryState = {
|
|
20
|
+
select: '*' | SelectColumn[];
|
|
21
|
+
distinct: boolean;
|
|
22
|
+
joins: JoinClause[];
|
|
23
|
+
where: Predicate<string>[];
|
|
24
|
+
groupBy: string[];
|
|
25
|
+
having: Predicate<string>[];
|
|
26
|
+
orderBy: OrderByClause[];
|
|
27
|
+
limit?: number;
|
|
28
|
+
offset?: number;
|
|
29
|
+
with: Record<string, AnyRelation>;
|
|
30
|
+
};
|
|
31
|
+
type QueryPlanMap<row extends Record<string, unknown>, primaryKey extends readonly string[]> = {
|
|
32
|
+
all: {
|
|
33
|
+
kind: 'all';
|
|
34
|
+
};
|
|
35
|
+
first: {
|
|
36
|
+
kind: 'first';
|
|
37
|
+
};
|
|
38
|
+
find: {
|
|
39
|
+
kind: 'find';
|
|
40
|
+
value: PrimaryKeyInputForRow<row, primaryKey>;
|
|
41
|
+
};
|
|
42
|
+
count: {
|
|
43
|
+
kind: 'count';
|
|
44
|
+
};
|
|
45
|
+
exists: {
|
|
46
|
+
kind: 'exists';
|
|
47
|
+
};
|
|
48
|
+
insert: {
|
|
49
|
+
kind: 'insert';
|
|
50
|
+
values: Partial<row>;
|
|
51
|
+
options?: InsertQueryOptions<row>;
|
|
52
|
+
};
|
|
53
|
+
insertMany: {
|
|
54
|
+
kind: 'insertMany';
|
|
55
|
+
values: Partial<row>[];
|
|
56
|
+
options?: InsertQueryOptions<row>;
|
|
57
|
+
};
|
|
58
|
+
update: {
|
|
59
|
+
kind: 'update';
|
|
60
|
+
changes: Partial<row>;
|
|
61
|
+
options?: InsertQueryOptions<row>;
|
|
62
|
+
};
|
|
63
|
+
delete: {
|
|
64
|
+
kind: 'delete';
|
|
65
|
+
options?: DeleteQueryOptions<row>;
|
|
66
|
+
};
|
|
67
|
+
upsert: {
|
|
68
|
+
kind: 'upsert';
|
|
69
|
+
values: Partial<row>;
|
|
70
|
+
options?: UpsertQueryOptions<row>;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
type QueryExecutionMode = keyof QueryPlanMap<Record<string, unknown>, readonly string[]>;
|
|
74
|
+
type QueryPhase<binding extends QueryBindingState = QueryBindingState, mode extends QueryExecutionMode = QueryExecutionMode> = {
|
|
75
|
+
binding: binding;
|
|
76
|
+
mode: mode;
|
|
77
|
+
};
|
|
78
|
+
export type BoundQueryPhase<mode extends QueryExecutionMode = QueryExecutionMode> = QueryPhase<'bound', mode>;
|
|
79
|
+
export type UnboundQueryPhase<mode extends QueryExecutionMode = QueryExecutionMode> = QueryPhase<'unbound', mode>;
|
|
80
|
+
type AnyQuerySource = QueryTableInput<string, Record<string, unknown>, readonly string[]>;
|
|
81
|
+
type QuerySourceTableName<source extends AnyQuerySource> = source extends QueryTableInput<infer tableName, any, any> ? tableName : never;
|
|
82
|
+
type QuerySourceRow<source extends AnyQuerySource> = source extends QueryTableInput<any, infer row, any> ? row : never;
|
|
83
|
+
type QuerySourcePrimaryKey<source extends AnyQuerySource> = source extends QueryTableInput<any, any, infer primaryKey> ? primaryKey : never;
|
|
84
|
+
type QuerySourceColumnTypes<source extends AnyQuerySource> = QueryColumnTypeMapFromRow<QuerySourceTableName<source>, QuerySourceRow<source>>;
|
|
85
|
+
type QueryPlan<row extends Record<string, unknown>, primaryKey extends readonly string[], mode extends QueryExecutionMode = QueryExecutionMode> = QueryPlanMap<row, primaryKey>[mode];
|
|
86
|
+
type QueryResultMap<row extends Record<string, unknown>, loaded extends Record<string, unknown>> = {
|
|
87
|
+
all: Array<row & loaded>;
|
|
88
|
+
first: (row & loaded) | null;
|
|
89
|
+
find: (row & loaded) | null;
|
|
90
|
+
count: number;
|
|
91
|
+
exists: boolean;
|
|
92
|
+
insert: WriteResult | WriteRowResult<row>;
|
|
93
|
+
insertMany: WriteResult | WriteRowsResult<row>;
|
|
94
|
+
update: WriteResult | WriteRowsResult<row>;
|
|
95
|
+
delete: WriteResult | WriteRowsResult<row>;
|
|
96
|
+
upsert: WriteResult | WriteRowResult<row>;
|
|
97
|
+
};
|
|
98
|
+
export type AnyQuery = Query<any, any, any, any, any>;
|
|
99
|
+
type QuerySource<input extends AnyQuery> = input extends Query<infer source, any, any, any, any> ? source : never;
|
|
100
|
+
type QueryColumnTypes<input extends AnyQuery> = input extends Query<any, infer columnTypes, any, any, any> ? columnTypes : never;
|
|
101
|
+
type QueryRow<input extends AnyQuery> = input extends Query<any, any, infer row, any, any> ? row : never;
|
|
102
|
+
type QueryLoaded<input extends AnyQuery> = input extends Query<any, any, any, infer loaded, any> ? loaded : never;
|
|
103
|
+
type QueryPhaseOf<input extends AnyQuery> = input extends Query<any, any, any, any, infer phase> ? phase : never;
|
|
104
|
+
type QueryBinding<input extends AnyQuery> = QueryPhaseOf<input>['binding'];
|
|
105
|
+
type QueryMode<input extends AnyQuery> = QueryPhaseOf<input>['mode'];
|
|
106
|
+
type QueryPhaseBinding<phase extends QueryPhase> = phase['binding'];
|
|
107
|
+
type QueryPhaseMode<phase extends QueryPhase> = phase['mode'];
|
|
108
|
+
type QueryAllPhase<phase extends QueryPhase> = QueryPhase<QueryPhaseBinding<phase>, 'all'>;
|
|
109
|
+
type QueryWith<input extends AnyQuery, phase extends QueryPhase> = Query<QuerySource<input>, QueryColumnTypes<input>, QueryRow<input>, QueryLoaded<input>, phase>;
|
|
110
|
+
type QueryTerminalResult<input extends AnyQuery, mode extends QueryExecutionMode, result> = QueryBinding<input> extends 'bound' ? Promise<result> : QueryWith<input, UnboundQueryPhase<mode>>;
|
|
111
|
+
export type QueryExecutionResult<input> = input extends AnyQuery ? QueryResultMap<QueryRow<input>, QueryLoaded<input>>[Extract<QueryMode<input>, QueryExecutionMode>] : never;
|
|
112
|
+
type QueryRuntime = {
|
|
113
|
+
exec<input extends AnyQuery>(input: input): Promise<QueryExecutionResult<input>>;
|
|
114
|
+
};
|
|
115
|
+
type QuerySnapshot<source extends AnyQuerySource = AnyQuerySource, row extends Record<string, unknown> = Record<string, unknown>, mode extends QueryExecutionMode = QueryExecutionMode> = {
|
|
116
|
+
table: source;
|
|
117
|
+
state: QueryState;
|
|
118
|
+
plan: QueryPlan<row, QuerySourcePrimaryKey<source>, mode>;
|
|
119
|
+
};
|
|
120
|
+
export declare const bindQueryRuntime: unique symbol;
|
|
121
|
+
export declare const querySnapshot: unique symbol;
|
|
122
|
+
declare const queryTypeBrand: unique symbol;
|
|
123
|
+
export declare class Query<source extends AnyQuerySource, columnTypes extends Record<string, unknown> = QuerySourceColumnTypes<source>, row extends Record<string, unknown> = QuerySourceRow<source>, loaded extends Record<string, unknown> = {}, phase extends QueryPhase = UnboundQueryPhase<'all'>> {
|
|
124
|
+
#private;
|
|
125
|
+
readonly [queryTypeBrand]: {
|
|
126
|
+
binding: QueryPhaseBinding<phase>;
|
|
127
|
+
mode: QueryPhaseMode<phase>;
|
|
128
|
+
};
|
|
129
|
+
constructor(table: source);
|
|
130
|
+
select<selection extends (keyof row & string)[]>(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, ...columns: selection): Query<source, columnTypes, Pick<row, selection[number]>, loaded, QueryAllPhase<phase>>;
|
|
131
|
+
select<selection extends Record<string, QueryColumnInput<columnTypes>>>(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, selection: selection): Query<source, columnTypes, SelectedAliasRow<columnTypes, selection>, loaded, QueryAllPhase<phase>>;
|
|
132
|
+
distinct(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, value?: boolean): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
133
|
+
where(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, input: WhereInput<QueryColumns<columnTypes>>): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
134
|
+
having(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, input: WhereInput<QueryColumns<columnTypes>>): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
135
|
+
join<target extends AnyTable>(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, target: target, on: Predicate<QueryColumns<columnTypes> | QueryColumnName<target>>, type?: JoinType): Query<source, MergeColumnTypeMaps<columnTypes, QueryColumnTypeMap<target>>, row, loaded, QueryAllPhase<phase>>;
|
|
136
|
+
leftJoin<target extends AnyTable>(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, target: target, on: Predicate<QueryColumns<columnTypes> | QueryColumnName<target>>): Query<source, MergeColumnTypeMaps<columnTypes, QueryColumnTypeMap<target>>, row, loaded, QueryAllPhase<phase>>;
|
|
137
|
+
rightJoin<target extends AnyTable>(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, target: target, on: Predicate<QueryColumns<columnTypes> | QueryColumnName<target>>): Query<source, MergeColumnTypeMaps<columnTypes, QueryColumnTypeMap<target>>, row, loaded, QueryAllPhase<phase>>;
|
|
138
|
+
orderBy(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, column: QueryColumnInput<columnTypes>, direction?: 'asc' | 'desc'): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
139
|
+
groupBy(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, ...columns: QueryColumnInput<columnTypes>[]): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
140
|
+
limit(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, value: number): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
141
|
+
offset(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, value: number): Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>;
|
|
142
|
+
with<relations extends RelationMapForSourceName<QuerySourceTableName<source>>>(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, relations: relations): Query<source, columnTypes, row, loaded & LoadedRelationMap<relations>, QueryAllPhase<phase>>;
|
|
143
|
+
all(this: Query<source, columnTypes, row, loaded, BoundQueryPhase<'all'>>): Promise<Array<row & loaded>>;
|
|
144
|
+
first(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'first', (row & loaded) | null>;
|
|
145
|
+
find(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, value: PrimaryKeyInputForRow<row, QuerySourcePrimaryKey<source>>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'find', (row & loaded) | null>;
|
|
146
|
+
count(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'count', number>;
|
|
147
|
+
exists(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'exists', boolean>;
|
|
148
|
+
insert(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, values: Partial<row>, options?: InsertQueryOptions<row>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'insert', WriteResult | WriteRowResult<row>>;
|
|
149
|
+
insertMany(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, values: Partial<row>[], options?: InsertQueryOptions<row>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'insertMany', WriteResult | WriteRowsResult<row>>;
|
|
150
|
+
update(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, changes: Partial<row>, options?: InsertQueryOptions<row>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'update', WriteResult | WriteRowsResult<row>>;
|
|
151
|
+
delete(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, options?: DeleteQueryOptions<row>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'delete', WriteResult | WriteRowsResult<row>>;
|
|
152
|
+
upsert(this: Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, values: Partial<row>, options?: UpsertQueryOptions<row>): QueryTerminalResult<Query<source, columnTypes, row, loaded, QueryAllPhase<phase>>, 'upsert', WriteResult | WriteRowResult<row>>;
|
|
153
|
+
[querySnapshot](): QuerySnapshot<source, row, QueryPhaseMode<phase>>;
|
|
154
|
+
[bindQueryRuntime](runtime: QueryRuntime): Query<source, columnTypes, row, loaded, BoundQueryPhase<QueryPhaseMode<phase>>>;
|
|
155
|
+
}
|
|
156
|
+
export declare function query<tableName extends string, row extends Record<string, unknown>, primaryKey extends readonly (keyof row & string)[]>(table: QueryTableInput<tableName, row, primaryKey>): Query<QueryTableInput<tableName, row, primaryKey>, QueryColumnTypeMapFromRow<tableName, row>, row, {}, UnboundQueryPhase<'all'>>;
|
|
157
|
+
export declare function cloneQueryState(state: QueryState): QueryState;
|
|
158
|
+
export {};
|
|
159
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/lib/query.ts"],"names":[],"mappings":"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"}
|