@prisma-next/sql-builder 0.11.0-dev.9 → 0.12.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/dist/{db-Tp8O0y-a.d.mts → db-DYq06sbo.d.mts} +13 -19
- package/dist/db-DYq06sbo.d.mts.map +1 -0
- package/dist/exports/types.d.mts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/runtime/index.d.mts +6 -5
- package/dist/runtime/index.d.mts.map +1 -1
- package/dist/runtime/index.mjs +28 -27
- package/dist/runtime/index.mjs.map +1 -1
- package/package.json +27 -19
- package/src/expression.ts +4 -1
- package/src/runtime/builder-base.ts +11 -6
- package/src/runtime/functions.ts +11 -6
- package/src/runtime/joined-tables-impl.ts +1 -1
- package/src/runtime/mutation-impl.ts +6 -4
- package/src/runtime/query-impl.ts +5 -2
- package/src/runtime/sql.ts +4 -1
- package/src/runtime/table-proxy-impl.ts +2 -1
- package/src/types/table-proxy.ts +17 -20
- package/dist/db-Tp8O0y-a.d.mts.map +0 -1
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
type TableSource,
|
|
16
16
|
} from '@prisma-next/sql-relational-core/ast';
|
|
17
17
|
import { codecRefForStorageColumn } from '@prisma-next/sql-relational-core/codec-descriptor-registry';
|
|
18
|
+
import type { RawCodecInferer } from '@prisma-next/sql-relational-core/expression';
|
|
18
19
|
import type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';
|
|
19
20
|
import type {
|
|
20
21
|
AppliedMutationDefault,
|
|
@@ -95,6 +96,10 @@ export interface BuilderContext {
|
|
|
95
96
|
readonly applyMutationDefaults: (
|
|
96
97
|
options: MutationDefaultsOptions,
|
|
97
98
|
) => ReadonlyArray<AppliedMutationDefault>;
|
|
99
|
+
/**
|
|
100
|
+
* Codec inferer used inside `createBuiltinFunctions` to construct the raw-SQL tag — `fns.raw` dispatches through `inferCodec(value)` for bare-literal interpolations.
|
|
101
|
+
*/
|
|
102
|
+
readonly rawCodecInferer: RawCodecInferer;
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
/**
|
|
@@ -294,7 +299,7 @@ export function resolveSelectArgs(
|
|
|
294
299
|
f: FieldProxy<Scope>,
|
|
295
300
|
fns: AggregateFunctions<QueryContext>,
|
|
296
301
|
) => Expression<ScopeField>;
|
|
297
|
-
const fns = createAggregateFunctions(ctx.queryOperationTypes);
|
|
302
|
+
const fns = createAggregateFunctions(ctx.queryOperationTypes, ctx.rawCodecInferer);
|
|
298
303
|
const result = exprFn(createFieldProxy(scope), fns);
|
|
299
304
|
const field = result.returnType;
|
|
300
305
|
projections.push(ProjectionItem.of(alias, result.buildAst(), field.codec));
|
|
@@ -307,7 +312,7 @@ export function resolveSelectArgs(
|
|
|
307
312
|
f: FieldProxy<Scope>,
|
|
308
313
|
fns: AggregateFunctions<QueryContext>,
|
|
309
314
|
) => Record<string, Expression<ScopeField>>;
|
|
310
|
-
const fns = createAggregateFunctions(ctx.queryOperationTypes);
|
|
315
|
+
const fns = createAggregateFunctions(ctx.queryOperationTypes, ctx.rawCodecInferer);
|
|
311
316
|
const record = callbackFn(createFieldProxy(scope), fns);
|
|
312
317
|
for (const [key, expr] of Object.entries(record)) {
|
|
313
318
|
const field = expr.returnType;
|
|
@@ -341,8 +346,8 @@ export function resolveOrderBy(
|
|
|
341
346
|
if (typeof arg === 'function') {
|
|
342
347
|
const combined = orderByScopeOf(scope, rowFields);
|
|
343
348
|
const fns = useAggregateFns
|
|
344
|
-
? createAggregateFunctions(ctx.queryOperationTypes)
|
|
345
|
-
: createFunctions(ctx.queryOperationTypes);
|
|
349
|
+
? createAggregateFunctions(ctx.queryOperationTypes, ctx.rawCodecInferer)
|
|
350
|
+
: createFunctions(ctx.queryOperationTypes, ctx.rawCodecInferer);
|
|
346
351
|
const result = (arg as ExprCallback)(createFieldProxy(combined), fns);
|
|
347
352
|
return dir === 'asc' ? OrderByItem.asc(result.buildAst()) : OrderByItem.desc(result.buildAst());
|
|
348
353
|
}
|
|
@@ -367,7 +372,7 @@ export function resolveGroupBy(
|
|
|
367
372
|
|
|
368
373
|
if (typeof args[0] === 'function') {
|
|
369
374
|
const combined = orderByScopeOf(scope, rowFields);
|
|
370
|
-
const fns = createFunctions(ctx.queryOperationTypes);
|
|
375
|
+
const fns = createFunctions(ctx.queryOperationTypes, ctx.rawCodecInferer);
|
|
371
376
|
const result = (args[0] as ExprCallback)(createFieldProxy(combined), fns);
|
|
372
377
|
return [result.buildAst()];
|
|
373
378
|
}
|
|
@@ -383,7 +388,7 @@ export function resolveDistinctOn(
|
|
|
383
388
|
): AstExpression[] {
|
|
384
389
|
if (args.length === 1 && typeof args[0] === 'function') {
|
|
385
390
|
const combined = orderByScopeOf(scope, rowFields);
|
|
386
|
-
const fns = createFunctions(ctx.queryOperationTypes);
|
|
391
|
+
const fns = createFunctions(ctx.queryOperationTypes, ctx.rawCodecInferer);
|
|
387
392
|
const result = (args[0] as ExprCallback)(createFieldProxy(combined), fns);
|
|
388
393
|
return [result.buildAst()];
|
|
389
394
|
}
|
package/src/runtime/functions.ts
CHANGED
|
@@ -13,7 +13,8 @@ import {
|
|
|
13
13
|
OrExpr,
|
|
14
14
|
SubqueryExpr,
|
|
15
15
|
} from '@prisma-next/sql-relational-core/ast';
|
|
16
|
-
import {
|
|
16
|
+
import type { RawCodecInferer } from '@prisma-next/sql-relational-core/expression';
|
|
17
|
+
import { codecOf, createRawSql, toExpr } from '@prisma-next/sql-relational-core/expression';
|
|
17
18
|
import type {
|
|
18
19
|
AggregateFunctions,
|
|
19
20
|
AggregateOnlyFunctions,
|
|
@@ -134,7 +135,7 @@ function numericAgg(
|
|
|
134
135
|
});
|
|
135
136
|
}
|
|
136
137
|
|
|
137
|
-
function createBuiltinFunctions() {
|
|
138
|
+
function createBuiltinFunctions(rawCodecInferer: RawCodecInferer) {
|
|
138
139
|
return {
|
|
139
140
|
eq: (a: ExprOrVal, b: ExprOrVal) => eq(a, b),
|
|
140
141
|
ne: (a: ExprOrVal, b: ExprOrVal) => ne(a, b),
|
|
@@ -158,6 +159,7 @@ function createBuiltinFunctions() {
|
|
|
158
159
|
expr: Expression<ScopeField>,
|
|
159
160
|
valuesOrSubquery: Subquery<Record<string, ScopeField>> | ExprOrVal[],
|
|
160
161
|
) => inOrNotIn(expr, valuesOrSubquery, 'notIn'),
|
|
162
|
+
raw: createRawSql(rawCodecInferer),
|
|
161
163
|
} satisfies BuiltinFunctions<CodecTypes>;
|
|
162
164
|
}
|
|
163
165
|
|
|
@@ -179,13 +181,15 @@ function createAggregateOnlyFunctions() {
|
|
|
179
181
|
|
|
180
182
|
export function createFunctions<QC extends QueryContext>(
|
|
181
183
|
operations: Readonly<Record<string, SqlOperationEntry>>,
|
|
184
|
+
rawCodecInferer: RawCodecInferer,
|
|
182
185
|
): Functions<QC> {
|
|
183
|
-
const builtins = createBuiltinFunctions();
|
|
186
|
+
const builtins = createBuiltinFunctions(rawCodecInferer);
|
|
184
187
|
|
|
185
188
|
return new Proxy({} as Functions<QC>, {
|
|
186
189
|
get(_target, prop: string) {
|
|
187
|
-
|
|
188
|
-
|
|
190
|
+
if (Object.hasOwn(builtins, prop)) {
|
|
191
|
+
return (builtins as Record<string, unknown>)[prop];
|
|
192
|
+
}
|
|
189
193
|
|
|
190
194
|
const op = operations[prop];
|
|
191
195
|
if (op) return op.impl;
|
|
@@ -196,8 +200,9 @@ export function createFunctions<QC extends QueryContext>(
|
|
|
196
200
|
|
|
197
201
|
export function createAggregateFunctions<QC extends QueryContext>(
|
|
198
202
|
operations: Readonly<Record<string, SqlOperationEntry>>,
|
|
203
|
+
rawCodecInferer: RawCodecInferer,
|
|
199
204
|
): AggregateFunctions<QC> {
|
|
200
|
-
const baseFns = createFunctions<QC>(operations);
|
|
205
|
+
const baseFns = createFunctions<QC>(operations, rawCodecInferer);
|
|
201
206
|
const aggregates = createAggregateOnlyFunctions();
|
|
202
207
|
|
|
203
208
|
return new Proxy({} as AggregateFunctions<QC>, {
|
|
@@ -177,7 +177,7 @@ export class JoinedTablesImpl<QC extends QueryContext, AvailableScope extends Sc
|
|
|
177
177
|
other.getJoinOuterScope() as Other[typeof JoinOuterScope],
|
|
178
178
|
),
|
|
179
179
|
) as FieldProxy<MergeScopes<AvailableScope, Other[typeof JoinOuterScope]>>;
|
|
180
|
-
const fns = createFunctions<QC>(this.ctx.queryOperationTypes);
|
|
180
|
+
const fns = createFunctions<QC>(this.ctx.queryOperationTypes, this.ctx.rawCodecInferer);
|
|
181
181
|
const onResult = onExpr(fieldProxy, fns);
|
|
182
182
|
const joinAst = new JoinAst(joinType, other.buildAst(), onResult.buildAst());
|
|
183
183
|
|
|
@@ -101,9 +101,10 @@ function evaluateWhere(
|
|
|
101
101
|
whereCallback: WhereCallback,
|
|
102
102
|
scope: Scope,
|
|
103
103
|
queryOperationTypes: BuilderContext['queryOperationTypes'],
|
|
104
|
+
rawCodecInferer: BuilderContext['rawCodecInferer'],
|
|
104
105
|
): AstExpression {
|
|
105
106
|
const fieldProxy = createFieldProxy(scope);
|
|
106
|
-
const fns = createFunctions(queryOperationTypes);
|
|
107
|
+
const fns = createFunctions(queryOperationTypes, rawCodecInferer);
|
|
107
108
|
const result = whereCallback(fieldProxy, fns as never);
|
|
108
109
|
return result.buildAst();
|
|
109
110
|
}
|
|
@@ -112,9 +113,10 @@ export function evaluateUpdateCallback(
|
|
|
112
113
|
callback: UpdateSetCallback,
|
|
113
114
|
scope: Scope,
|
|
114
115
|
queryOperationTypes: BuilderContext['queryOperationTypes'],
|
|
116
|
+
rawCodecInferer: BuilderContext['rawCodecInferer'],
|
|
115
117
|
): Record<string, AstExpression> {
|
|
116
118
|
const fieldProxy = createFieldProxy(scope);
|
|
117
|
-
const fns = createFunctions(queryOperationTypes);
|
|
119
|
+
const fns = createFunctions(queryOperationTypes, rawCodecInferer);
|
|
118
120
|
const result = callback(fieldProxy, fns as never);
|
|
119
121
|
const set: Record<string, AstExpression> = {};
|
|
120
122
|
for (const [col, expr] of Object.entries(result)) {
|
|
@@ -290,7 +292,7 @@ export class UpdateQueryImpl<
|
|
|
290
292
|
|
|
291
293
|
where(expr: ExpressionBuilder<AvailableScope, QC>): UpdateQuery<QC, AvailableScope, RowType> {
|
|
292
294
|
const fieldProxy = createFieldProxy(this.#scope);
|
|
293
|
-
const fns = createFunctions(this.ctx.queryOperationTypes);
|
|
295
|
+
const fns = createFunctions(this.ctx.queryOperationTypes, this.ctx.rawCodecInferer);
|
|
294
296
|
const result = (expr as ExpressionBuilder<Scope, QueryContext>)(fieldProxy, fns as never);
|
|
295
297
|
return new UpdateQueryImpl(
|
|
296
298
|
this.#tableName,
|
|
@@ -460,7 +462,7 @@ export class DeleteQueryImpl<
|
|
|
460
462
|
build(): SqlQueryPlan<ResolveRow<RowType, QC['codecTypes'], QC['resolvedColumnOutputTypes']>> {
|
|
461
463
|
const whereExpr = combineWhereExprs(
|
|
462
464
|
this.#whereCallbacks.map((cb) =>
|
|
463
|
-
evaluateWhere(cb, this.#scope, this.ctx.queryOperationTypes),
|
|
465
|
+
evaluateWhere(cb, this.#scope, this.ctx.queryOperationTypes, this.ctx.rawCodecInferer),
|
|
464
466
|
),
|
|
465
467
|
);
|
|
466
468
|
|
|
@@ -211,7 +211,7 @@ export class SelectQueryImpl<
|
|
|
211
211
|
|
|
212
212
|
where(expr: ExpressionBuilder<AvailableScope, QC>): SelectQuery<QC, AvailableScope, RowType> {
|
|
213
213
|
const fieldProxy = createFieldProxy(this.state.scope);
|
|
214
|
-
const fns = createFunctions<QC>(this.ctx.queryOperationTypes);
|
|
214
|
+
const fns = createFunctions<QC>(this.ctx.queryOperationTypes, this.ctx.rawCodecInferer);
|
|
215
215
|
const result = (expr as ExpressionBuilder<Scope, QueryContext>)(fieldProxy, fns as never);
|
|
216
216
|
return new SelectQueryImpl(
|
|
217
217
|
cloneState(this.state, {
|
|
@@ -269,7 +269,10 @@ export class GroupedQueryImpl<
|
|
|
269
269
|
this.state.scope as AvailableScope,
|
|
270
270
|
this.state.rowFields as RowType,
|
|
271
271
|
);
|
|
272
|
-
const fns = createAggregateFunctions(
|
|
272
|
+
const fns = createAggregateFunctions<QC>(
|
|
273
|
+
this.ctx.queryOperationTypes,
|
|
274
|
+
this.ctx.rawCodecInferer,
|
|
275
|
+
);
|
|
273
276
|
const result = expr(createFieldProxy(combined), fns);
|
|
274
277
|
return new GroupedQueryImpl(cloneState(this.state, { having: result.buildAst() }), this.ctx);
|
|
275
278
|
}
|
package/src/runtime/sql.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Contract } from '@prisma-next/contract/types';
|
|
2
2
|
import type { SqlStorage, StorageTable } from '@prisma-next/sql-contract/types';
|
|
3
|
+
import type { RawCodecInferer } from '@prisma-next/sql-relational-core/expression';
|
|
3
4
|
import type { ExecutionContext } from '@prisma-next/sql-relational-core/query-lane-context';
|
|
4
5
|
import type { Db, TableProxyContract } from '../types/db';
|
|
5
6
|
import type { BuilderContext } from './builder-base';
|
|
@@ -7,6 +8,7 @@ import { TableProxyImpl } from './table-proxy-impl';
|
|
|
7
8
|
|
|
8
9
|
export interface SqlOptions<C extends Contract<SqlStorage> & TableProxyContract> {
|
|
9
10
|
readonly context: ExecutionContext<C>;
|
|
11
|
+
readonly rawCodecInferer: RawCodecInferer;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
// Find a table by name across every declared namespace. Mirrors the
|
|
@@ -27,7 +29,7 @@ function findTableAcrossNamespaces(storage: SqlStorage, name: string): StorageTa
|
|
|
27
29
|
export function sql<C extends Contract<SqlStorage> & TableProxyContract>(
|
|
28
30
|
options: SqlOptions<C>,
|
|
29
31
|
): Db<C> {
|
|
30
|
-
const { context } = options;
|
|
32
|
+
const { context, rawCodecInferer } = options;
|
|
31
33
|
const ctx: BuilderContext = {
|
|
32
34
|
capabilities: context.contract.capabilities,
|
|
33
35
|
queryOperationTypes: context.queryOperations.entries(),
|
|
@@ -35,6 +37,7 @@ export function sql<C extends Contract<SqlStorage> & TableProxyContract>(
|
|
|
35
37
|
storageHash: context.contract.storage.storageHash ?? 'unknown',
|
|
36
38
|
storage: context.contract.storage,
|
|
37
39
|
applyMutationDefaults: (options) => context.applyMutationDefaults(options),
|
|
40
|
+
rawCodecInferer,
|
|
38
41
|
};
|
|
39
42
|
|
|
40
43
|
return new Proxy({} as Db<C>, {
|
|
@@ -113,7 +113,7 @@ export class TableProxyImpl<
|
|
|
113
113
|
|
|
114
114
|
as<NewAlias extends string>(
|
|
115
115
|
newAlias: NewAlias,
|
|
116
|
-
): TableProxy<C, Name, NewAlias, RebindScope<AvailableScope, Alias, NewAlias
|
|
116
|
+
): TableProxy<C, Name, NewAlias, RebindScope<AvailableScope, Alias, NewAlias>, QC> {
|
|
117
117
|
return new TableProxyImpl(this.#tableName, this.#table, newAlias, this.ctx);
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -181,6 +181,7 @@ export class TableProxyImpl<
|
|
|
181
181
|
setOrCallback as UpdateSetCallback,
|
|
182
182
|
this.#scope,
|
|
183
183
|
this.ctx.queryOperationTypes,
|
|
184
|
+
this.ctx.rawCodecInferer,
|
|
184
185
|
);
|
|
185
186
|
const setExpressions = buildSetExpressions(
|
|
186
187
|
callbackExprs,
|
package/src/types/table-proxy.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Contract, ContractModelsMap } from '@prisma-next/contract/types';
|
|
1
2
|
import type {
|
|
2
3
|
ExtractCodecTypes,
|
|
3
4
|
ExtractFieldInputTypes,
|
|
@@ -19,30 +20,26 @@ import type { TableProxyContract, UnboundTables } from './db';
|
|
|
19
20
|
import type { DeleteQuery, InsertQuery, InsertValues, UpdateQuery } from './mutation-query';
|
|
20
21
|
import type { WithJoin, WithSelect } from './shared';
|
|
21
22
|
|
|
22
|
-
type FindModelForTable<C, TableName extends string> = C extends
|
|
23
|
-
readonly models: infer Models extends Record<
|
|
24
|
-
string,
|
|
25
|
-
{ readonly storage: { readonly table: string } }
|
|
26
|
-
>;
|
|
27
|
-
}
|
|
23
|
+
type FindModelForTable<C, TableName extends string> = C extends Contract
|
|
28
24
|
? {
|
|
29
|
-
[M in keyof
|
|
30
|
-
|
|
25
|
+
[M in keyof ContractModelsMap<C> & string]: ContractModelsMap<C>[M] extends {
|
|
26
|
+
readonly storage: { readonly table: TableName };
|
|
27
|
+
}
|
|
28
|
+
? M
|
|
29
|
+
: never;
|
|
30
|
+
}[keyof ContractModelsMap<C> & string]
|
|
31
31
|
: never;
|
|
32
32
|
|
|
33
|
-
type FindFieldForColumn<C, ModelName extends string, ColumnName extends string> = C extends
|
|
34
|
-
|
|
35
|
-
string,
|
|
36
|
-
{ readonly storage: { readonly fields: Record<string, { readonly column: string }> } }
|
|
37
|
-
>;
|
|
38
|
-
}
|
|
39
|
-
? ModelName extends keyof Models
|
|
33
|
+
type FindFieldForColumn<C, ModelName extends string, ColumnName extends string> = C extends Contract
|
|
34
|
+
? ModelName extends keyof ContractModelsMap<C>
|
|
40
35
|
? {
|
|
41
|
-
[F in keyof
|
|
42
|
-
string]:
|
|
36
|
+
[F in keyof ContractModelsMap<C>[ModelName]['storage']['fields'] &
|
|
37
|
+
string]: ContractModelsMap<C>[ModelName]['storage']['fields'][F] extends {
|
|
38
|
+
readonly column: ColumnName;
|
|
39
|
+
}
|
|
43
40
|
? F
|
|
44
41
|
: never;
|
|
45
|
-
}[keyof
|
|
42
|
+
}[keyof ContractModelsMap<C>[ModelName]['storage']['fields'] & string]
|
|
46
43
|
: never
|
|
47
44
|
: never;
|
|
48
45
|
|
|
@@ -119,7 +116,7 @@ type ResolvedUpdateExpressions<Table extends StorageTable> = {
|
|
|
119
116
|
}>;
|
|
120
117
|
};
|
|
121
118
|
|
|
122
|
-
type ContractToQC<C extends TableProxyContract, Name extends string = string> = {
|
|
119
|
+
export type ContractToQC<C extends TableProxyContract, Name extends string = string> = {
|
|
123
120
|
readonly codecTypes: ExtractCodecTypes<C>;
|
|
124
121
|
readonly capabilities: C['capabilities'];
|
|
125
122
|
readonly queryOperationTypes: ExtractQueryOperationTypes<C>;
|
|
@@ -137,7 +134,7 @@ export interface TableProxy<
|
|
|
137
134
|
WithJoin<QC, AvailableScope, C['capabilities']> {
|
|
138
135
|
as<NewAlias extends string>(
|
|
139
136
|
newAlias: NewAlias,
|
|
140
|
-
): TableProxy<C, Name, NewAlias, RebindScope<AvailableScope, Alias, NewAlias
|
|
137
|
+
): TableProxy<C, Name, NewAlias, RebindScope<AvailableScope, Alias, NewAlias>, QC>;
|
|
141
138
|
|
|
142
139
|
insert(
|
|
143
140
|
rows: ReadonlyArray<
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-Tp8O0y-a.d.mts","names":[],"sources":["../src/scope.ts","../src/expression.ts","../src/resolve.ts","../src/types/mutation-query.ts","../src/types/joined-tables.ts","../src/types/grouped-query.ts","../src/types/select-query.ts","../src/types/shared.ts","../src/types/table-proxy.ts","../src/types/db.ts"],"mappings":"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"}
|