@prisma-next/sql-relational-core 0.12.0-dev.13 → 0.12.0-dev.15

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.
Files changed (55) hide show
  1. package/dist/{codec-types-Cezo7k-i.d.mts → codec-types-Ey_MAEly.d.mts} +1 -1
  2. package/dist/{codec-types-Cezo7k-i.d.mts.map → codec-types-Ey_MAEly.d.mts.map} +1 -1
  3. package/dist/ddl-types-Cu7feuVX.d.mts +56 -0
  4. package/dist/ddl-types-Cu7feuVX.d.mts.map +1 -0
  5. package/dist/ddl-types-wqxUC57D.mjs +71 -0
  6. package/dist/ddl-types-wqxUC57D.mjs.map +1 -0
  7. package/dist/{errors-BULgWaFz.d.mts → errors-BObzwZWY.d.mts} +2 -2
  8. package/dist/{errors-BULgWaFz.d.mts.map → errors-BObzwZWY.d.mts.map} +1 -1
  9. package/dist/{errors-BF7W5uUd.mjs → errors-HvB_h2on.mjs} +1 -1
  10. package/dist/{errors-BF7W5uUd.mjs.map → errors-HvB_h2on.mjs.map} +1 -1
  11. package/dist/exports/ast.d.mts +5 -4
  12. package/dist/exports/ast.d.mts.map +1 -1
  13. package/dist/exports/ast.mjs +4 -3
  14. package/dist/exports/ast.mjs.map +1 -1
  15. package/dist/exports/codec-descriptor-registry.d.mts +2 -2
  16. package/dist/exports/contract-free.d.mts +15 -0
  17. package/dist/exports/contract-free.d.mts.map +1 -0
  18. package/dist/exports/contract-free.mjs +19 -0
  19. package/dist/exports/contract-free.mjs.map +1 -0
  20. package/dist/exports/errors.d.mts +1 -1
  21. package/dist/exports/errors.mjs +1 -1
  22. package/dist/exports/expression.d.mts +2 -2
  23. package/dist/exports/expression.mjs +1 -1
  24. package/dist/exports/middleware.d.mts +1 -1
  25. package/dist/exports/middleware.mjs +1 -1
  26. package/dist/exports/plan.d.mts +2 -2
  27. package/dist/exports/query-lane-context.d.mts +1 -1
  28. package/dist/exports/types.d.mts +2 -2
  29. package/dist/index.d.mts +11 -10
  30. package/dist/index.mjs +6 -5
  31. package/dist/{middleware-DyfRMyIK.d.mts → middleware-BO2b9IPw.d.mts} +2 -2
  32. package/dist/{middleware-DyfRMyIK.d.mts.map → middleware-BO2b9IPw.d.mts.map} +1 -1
  33. package/dist/{middleware-B0yz0pff.mjs → middleware-CbHPs9WK.mjs} +2 -2
  34. package/dist/{middleware-B0yz0pff.mjs.map → middleware-CbHPs9WK.mjs.map} +1 -1
  35. package/dist/{plan-DLPDNbW3.d.mts → plan-BF8Gd9o9.d.mts} +3 -3
  36. package/dist/{plan-DLPDNbW3.d.mts.map → plan-BF8Gd9o9.d.mts.map} +1 -1
  37. package/dist/{query-lane-context-Dw1Tz0kv.d.mts → query-lane-context-BUYT0tOb.d.mts} +3 -3
  38. package/dist/{query-lane-context-Dw1Tz0kv.d.mts.map → query-lane-context-BUYT0tOb.d.mts.map} +1 -1
  39. package/dist/{sql-execution-plan-DSRw_huQ.d.mts → sql-execution-plan-nxHkepy_.d.mts} +2 -2
  40. package/dist/{sql-execution-plan-DSRw_huQ.d.mts.map → sql-execution-plan-nxHkepy_.d.mts.map} +1 -1
  41. package/dist/{types-Dcps1nxJ.d.mts → types-DfR7TFN-.d.mts} +5 -5
  42. package/dist/{types-Dcps1nxJ.d.mts.map → types-DfR7TFN-.d.mts.map} +1 -1
  43. package/dist/{types-CRwpSc77.d.mts → types-aapdWYy7.d.mts} +3 -3
  44. package/dist/{types-CRwpSc77.d.mts.map → types-aapdWYy7.d.mts.map} +1 -1
  45. package/dist/{types-Bv4RpTpq.mjs → types-uxhfwBCO.mjs} +1 -1
  46. package/dist/{types-Bv4RpTpq.mjs.map → types-uxhfwBCO.mjs.map} +1 -1
  47. package/dist/{types-CATb4Feu.d.mts → types-yb05Fhwp.d.mts} +2 -2
  48. package/dist/{types-CATb4Feu.d.mts.map → types-yb05Fhwp.d.mts.map} +1 -1
  49. package/dist/{util-DWmhUCEO.mjs → util-DUXs0nZ9.mjs} +1 -1
  50. package/dist/{util-DWmhUCEO.mjs.map → util-DUXs0nZ9.mjs.map} +1 -1
  51. package/package.json +12 -11
  52. package/src/ast/ddl-types.ts +106 -0
  53. package/src/contract-free/column.ts +21 -0
  54. package/src/exports/ast.ts +1 -0
  55. package/src/exports/contract-free.ts +1 -0
@@ -0,0 +1,106 @@
1
+ import type { ColumnDefaultLiteralInputValue } from '@prisma-next/contract/types';
2
+ import { isColumnDefaultLiteralInputValue } from '@prisma-next/contract/types';
3
+ import type { AnyParamRef } from './types';
4
+
5
+ export interface DdlColumnDefaultVisitor<R> {
6
+ literal(node: LiteralColumnDefault): R;
7
+ function(node: FunctionColumnDefault): R;
8
+ }
9
+
10
+ export abstract class DdlColumnDefault {
11
+ abstract readonly kind: string;
12
+ abstract accept<R>(visitor: DdlColumnDefaultVisitor<R>): R;
13
+
14
+ protected freeze(): void {
15
+ Object.freeze(this);
16
+ }
17
+ }
18
+
19
+ export class LiteralColumnDefault extends DdlColumnDefault {
20
+ readonly kind = 'literal' as const;
21
+ readonly value: ColumnDefaultLiteralInputValue;
22
+
23
+ constructor(value: ColumnDefaultLiteralInputValue) {
24
+ super();
25
+ if (!isColumnDefaultLiteralInputValue(value)) {
26
+ throw new Error('Invalid column default literal value');
27
+ }
28
+ this.value = value;
29
+ this.freeze();
30
+ }
31
+
32
+ override accept<R>(visitor: DdlColumnDefaultVisitor<R>): R {
33
+ return visitor.literal(this);
34
+ }
35
+ }
36
+
37
+ export class FunctionColumnDefault extends DdlColumnDefault {
38
+ readonly kind = 'function' as const;
39
+ readonly expression: string;
40
+
41
+ constructor(expression: string) {
42
+ super();
43
+ this.expression = expression;
44
+ this.freeze();
45
+ }
46
+
47
+ override accept<R>(visitor: DdlColumnDefaultVisitor<R>): R {
48
+ return visitor.function(this);
49
+ }
50
+ }
51
+
52
+ export type AnyDdlColumnDefault = LiteralColumnDefault | FunctionColumnDefault;
53
+
54
+ export class DdlColumn {
55
+ readonly name: string;
56
+ readonly type: string;
57
+ readonly notNull?: boolean | undefined;
58
+ readonly primaryKey?: boolean | undefined;
59
+ readonly default?: DdlColumnDefault | undefined;
60
+
61
+ constructor(options: {
62
+ readonly name: string;
63
+ readonly type: string;
64
+ readonly notNull?: boolean;
65
+ readonly primaryKey?: boolean;
66
+ readonly default?: DdlColumnDefault;
67
+ }) {
68
+ this.name = options.name;
69
+ this.type = options.type;
70
+ this.notNull = options.notNull;
71
+ this.primaryKey = options.primaryKey;
72
+ this.default = options.default;
73
+ Object.freeze(this);
74
+ }
75
+ }
76
+
77
+ export abstract class DdlNode {
78
+ abstract readonly kind: string;
79
+
80
+ /**
81
+ * Structural brand: every DDL node answers `true`. Lets {@link isDdlNode}
82
+ * recognise any `DdlNode` subclass — including target-contributed kinds —
83
+ * without a central kind registry that subclasses would have to register
84
+ * into.
85
+ */
86
+ isDdlNode(): true {
87
+ return true;
88
+ }
89
+
90
+ protected freeze(): void {
91
+ Object.freeze(this);
92
+ }
93
+
94
+ collectParamRefs(): AnyParamRef[] {
95
+ return [];
96
+ }
97
+ }
98
+
99
+ export function isDdlNode(value: unknown): value is DdlNode {
100
+ return (
101
+ typeof value === 'object' &&
102
+ value !== null &&
103
+ 'isDdlNode' in value &&
104
+ typeof value.isDdlNode === 'function'
105
+ );
106
+ }
@@ -0,0 +1,21 @@
1
+ import type { ColumnDefaultLiteralInputValue } from '@prisma-next/contract/types';
2
+ import type { DdlColumnDefault } from '../ast/ddl-types';
3
+ import { DdlColumn, FunctionColumnDefault, LiteralColumnDefault } from '../ast/ddl-types';
4
+
5
+ export interface DdlColumnOptions {
6
+ readonly notNull?: boolean;
7
+ readonly primaryKey?: boolean;
8
+ readonly default?: DdlColumnDefault;
9
+ }
10
+
11
+ export function lit(value: ColumnDefaultLiteralInputValue): LiteralColumnDefault {
12
+ return new LiteralColumnDefault(value);
13
+ }
14
+
15
+ export function fn(expression: string): FunctionColumnDefault {
16
+ return new FunctionColumnDefault(expression);
17
+ }
18
+
19
+ export function col(name: string, type: string, options?: DdlColumnOptions): DdlColumn {
20
+ return new DdlColumn({ name, type, ...options });
21
+ }
@@ -1,5 +1,6 @@
1
1
  export * from '../ast/adapter-types';
2
2
  export * from '../ast/codec-types';
3
+ export * from '../ast/ddl-types';
3
4
  export * from '../ast/driver-types';
4
5
  export * from '../ast/sql-codec-helpers';
5
6
  export * from '../ast/sql-codecs';
@@ -0,0 +1 @@
1
+ export { col, type DdlColumnOptions, fn, lit } from '../contract-free/column';