@prisma-next/contract-authoring 0.3.0-dev.40 → 0.3.0-dev.43
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/index.d.mts +23 -23
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +6 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/builder-state.ts +19 -15
- package/src/index.ts +1 -0
- package/src/table-builder.ts +11 -21
- package/src/types.ts +2 -0
package/dist/index.d.mts
CHANGED
|
@@ -3,6 +3,11 @@ import { TargetPackRef } from "@prisma-next/contract/framework-components";
|
|
|
3
3
|
|
|
4
4
|
//#region src/builder-state.d.ts
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Duplicated from sql-contract to avoid cross-layer dependency
|
|
8
|
+
* (framework authoring cannot depend on the SQL domain's contract package).
|
|
9
|
+
*/
|
|
10
|
+
type ReferentialAction = 'noAction' | 'restrict' | 'cascade' | 'setNull' | 'setDefault';
|
|
6
11
|
/**
|
|
7
12
|
* Column type descriptor containing both codec ID and native type.
|
|
8
13
|
* Used when defining columns with descriptor objects instead of string IDs.
|
|
@@ -33,21 +38,13 @@ type StorageTypeInstanceState = {
|
|
|
33
38
|
readonly typeParams: Record<string, unknown>;
|
|
34
39
|
};
|
|
35
40
|
/**
|
|
36
|
-
*
|
|
37
|
-
* This string literal appears in TypeScript error messages for better DX.
|
|
38
|
-
*/
|
|
39
|
-
type NullableColumnCannotHaveDefault = "Error: A nullable column cannot have a default value. Remove 'nullable: true' or remove 'default'.";
|
|
40
|
-
/**
|
|
41
|
-
* Column builder state with enforced nullable/default mutual exclusivity.
|
|
41
|
+
* Column builder state.
|
|
42
42
|
*
|
|
43
|
-
*
|
|
44
|
-
* This is enforced at the type level via conditional types:
|
|
45
|
-
* - Nullable columns (`nullable: true`) cannot have a `default` property
|
|
46
|
-
* - Non-nullable columns (`nullable: false`) can optionally have a `default` property
|
|
43
|
+
* Both nullable and non-nullable columns can define defaults to match database behavior.
|
|
47
44
|
*/
|
|
48
45
|
type ColumnBuilderState<Name extends string, Nullable extends boolean, Type extends string> = ColumnBuilderStateBase<Name, Type> & (Nullable extends true ? {
|
|
49
46
|
readonly nullable: true;
|
|
50
|
-
readonly default?:
|
|
47
|
+
readonly default?: ColumnDefault;
|
|
51
48
|
} : {
|
|
52
49
|
readonly nullable: false;
|
|
53
50
|
readonly default?: ColumnDefault;
|
|
@@ -67,16 +64,23 @@ interface IndexDef {
|
|
|
67
64
|
readonly columns: readonly string[];
|
|
68
65
|
readonly name?: string;
|
|
69
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Options for configuring a foreign key's name and referential actions.
|
|
69
|
+
*/
|
|
70
|
+
type ForeignKeyOptions = {
|
|
71
|
+
readonly name?: string;
|
|
72
|
+
readonly onDelete?: ReferentialAction;
|
|
73
|
+
readonly onUpdate?: ReferentialAction;
|
|
74
|
+
};
|
|
70
75
|
/**
|
|
71
76
|
* Foreign key definition for table builder.
|
|
72
77
|
*/
|
|
73
|
-
interface ForeignKeyDef {
|
|
78
|
+
interface ForeignKeyDef extends ForeignKeyOptions {
|
|
74
79
|
readonly columns: readonly string[];
|
|
75
80
|
readonly references: {
|
|
76
81
|
readonly table: string;
|
|
77
82
|
readonly columns: readonly string[];
|
|
78
83
|
};
|
|
79
|
-
readonly name?: string;
|
|
80
84
|
readonly constraint?: boolean;
|
|
81
85
|
readonly index?: boolean;
|
|
82
86
|
}
|
|
@@ -177,13 +181,12 @@ declare class ModelBuilder<Name extends string, Table extends string, Fields ext
|
|
|
177
181
|
//#region src/table-builder.d.ts
|
|
178
182
|
/**
|
|
179
183
|
* Column options for nullable columns.
|
|
180
|
-
* Nullable columns cannot have a default value.
|
|
181
184
|
*/
|
|
182
185
|
interface NullableColumnOptions<Descriptor extends ColumnTypeDescriptor> {
|
|
183
186
|
type: Descriptor;
|
|
184
187
|
nullable: true;
|
|
185
188
|
typeParams?: Record<string, unknown>;
|
|
186
|
-
default?:
|
|
189
|
+
default?: ColumnDefault;
|
|
187
190
|
}
|
|
188
191
|
/**
|
|
189
192
|
* Column options for non-nullable columns.
|
|
@@ -220,10 +223,7 @@ declare class TableBuilder<Name extends string, Columns extends Record<string, C
|
|
|
220
223
|
private get _name();
|
|
221
224
|
private get _columns();
|
|
222
225
|
private get _primaryKey();
|
|
223
|
-
/**
|
|
224
|
-
* Add a nullable column to the table.
|
|
225
|
-
* Nullable columns cannot have a default value.
|
|
226
|
-
*/
|
|
226
|
+
/** Add a nullable column to the table. */
|
|
227
227
|
column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(name: ColName, options: NullableColumnOptions<Descriptor>): TableBuilder<Name, Columns & Record<ColName, ColumnBuilderState<ColName, true, Descriptor['codecId']>>, PrimaryKey>;
|
|
228
228
|
/**
|
|
229
229
|
* Add a non-nullable column to the table.
|
|
@@ -238,11 +238,10 @@ declare class TableBuilder<Name extends string, Columns extends Record<string, C
|
|
|
238
238
|
foreignKey(columns: readonly string[], references: {
|
|
239
239
|
table: string;
|
|
240
240
|
columns: readonly string[];
|
|
241
|
-
}, opts?: {
|
|
242
|
-
name?: string;
|
|
241
|
+
}, opts?: string | (ForeignKeyOptions & {
|
|
243
242
|
constraint?: boolean;
|
|
244
243
|
index?: boolean;
|
|
245
|
-
}): TableBuilder<Name, Columns, PrimaryKey>;
|
|
244
|
+
})): TableBuilder<Name, Columns, PrimaryKey>;
|
|
246
245
|
build(): TableBuilderState<Name, Columns, PrimaryKey>;
|
|
247
246
|
}
|
|
248
247
|
//#endregion
|
|
@@ -266,6 +265,7 @@ type BuildStorageColumn<Nullable extends boolean, Type extends string> = {
|
|
|
266
265
|
readonly nullable: Nullable;
|
|
267
266
|
readonly typeParams?: Record<string, unknown>;
|
|
268
267
|
readonly typeRef?: string;
|
|
268
|
+
readonly default?: ColumnDefault;
|
|
269
269
|
};
|
|
270
270
|
type ExtractColumns<T extends TableBuilderState<string, Record<string, ColumnBuilderState<string, boolean, string>>, readonly string[] | undefined>> = T extends TableBuilderState<string, infer C, readonly string[] | undefined> ? C : never;
|
|
271
271
|
type ExtractPrimaryKey<T extends TableBuilderState<string, Record<string, ColumnBuilderState<string, boolean, string>>, readonly string[] | undefined>> = T extends TableBuilderState<string, Record<string, ColumnBuilderState<string, boolean, string>>, infer PK> ? PK : never;
|
|
@@ -291,5 +291,5 @@ type BuildModels<Models extends Record<string, ModelBuilderState<string, string,
|
|
|
291
291
|
} };
|
|
292
292
|
type BuildRelations<Models extends Record<string, ModelBuilderState<string, string, Record<string, string>, Record<string, RelationDefinition>>>> = { readonly [K in keyof Models as Models[K]['table']]: ExtractModelRelations<Models[K]> };
|
|
293
293
|
//#endregion
|
|
294
|
-
export { type BuildModelFields, type BuildModels, type BuildRelations, type BuildStorage, type BuildStorageColumn, type BuildStorageTables, type ColumnBuilder, type ColumnBuilderState, type ColumnTypeDescriptor, ContractBuilder, type ContractBuilderState, type ExtractColumns, type ExtractModelFields, type ExtractModelRelations, type ExtractPrimaryKey, type ForeignKeyDef, type ForeignKeyDefaultsState, type IndexDef, ModelBuilder, type ModelBuilderState, type Mutable, type RelationDefinition, TableBuilder, type TableBuilderState, type UniqueConstraintDef, createTable, defineContract };
|
|
294
|
+
export { type BuildModelFields, type BuildModels, type BuildRelations, type BuildStorage, type BuildStorageColumn, type BuildStorageTables, type ColumnBuilder, type ColumnBuilderState, type ColumnTypeDescriptor, ContractBuilder, type ContractBuilderState, type ExtractColumns, type ExtractModelFields, type ExtractModelRelations, type ExtractPrimaryKey, type ForeignKeyDef, type ForeignKeyDefaultsState, type ForeignKeyOptions, type IndexDef, ModelBuilder, type ModelBuilderState, type Mutable, type RelationDefinition, TableBuilder, type TableBuilderState, type UniqueConstraintDef, createTable, defineContract };
|
|
295
295
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/builder-state.ts","../src/model-builder.ts","../src/table-builder.ts","../src/contract-builder.ts","../src/types.ts"],"sourcesContent":[],"mappings":"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wB,CAAA,MAAA,EGgDT,kBHhDS,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,CAAA,IAAA,EGoDpB,SHpDoB,EAAA,QAAA,EAAA,CAAA,CAAA,EGqDZ,YHrDY,CGqDC,SHrDD,CAAA,EAAA,GGqDgB,CHrDhB,GAAA,SAAA,CAAA,EGsDzB,eHtDyB,CGuD1B,MHvD0B,EGwD1B,MHxD0B,GGwDjB,MHxDiB,CGwDV,SHxDU,EGwDC,UHxDD,CGwDY,CHxDZ,CAAA,OAAA,CAAA,CAAA,CAAA,EGyD1B,MHzD0B,EG0D1B,WH1D0B,EG2D1B,cH3D0B,EG4D1B,YH5D0B,CAAA;EAIlB,KAAA,CAAA,kBAAA,MAAwB,EAAA,kBAGP,MAAA,EAAA,UG6Ef,YH7Ee,CG8EvB,SH9EuB,EG+EvB,SH/EuB,EGgFvB,MHhFuB,CAAA,MAAA,EAAA,MAAA,CAAA,EGiFvB,MHjFuB,CAAA,MAAA,EGiFR,kBHjFQ,CAAA,CAAA,CAAA,CAAA,IAAA,EGoFnB,SHpFmB,EAAA,KAAA,EGqFlB,SHrFkB,EAAA,QAAA,EAAA,CAAA,CAAA,EGuFpB,YHvFoB,CGuFP,SHvFO,EGuFI,SHvFJ,EGuFe,MHvFf,CAAA,MAAA,EAAA,MAAA,CAAA,EGuFuC,MHvFvC,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,EAAA,GGwFpB,CHxFoB,GAAA,SAAA,CAAA,EGyFxB,eHzFwB,CG0FzB,MH1FyB,EG2FzB,MH3FyB,EG4FzB,MH5FyB,GG4FhB,MH5FgB,CG4FT,SH5FS,EG4FE,UH5FF,CG4Fa,CH5Fb,CAAA,OAAA,CAAA,CAAA,CAAA,EG6FzB,WH7FyB,EG8FzB,cH9FyB,EG+FzB,YH/FyB,CAAA;EAOjB,WAAA,CAAA,UAAA,MAAA,CAAA,CAAA,IAA+B,EG8GjC,CH9GiC,CAAA,EG+GtC,eH/GsC,CG+GtB,MH/GsB,EG+Gd,MH/Gc,EG+GN,MH/GM,EG+GE,CH/GF,EG+GK,cH/GL,EG+GqB,YH/GrB,CAAA;EAW/B,kBAAA,CAAA,MAAkB,EG4GlB,uBH5GkB,CAAA,EG6GzB,eH7GyB,CG6GT,M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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/builder-state.ts","../src/model-builder.ts","../src/table-builder.ts","../src/contract-builder.ts","../src/types.ts"],"sourcesContent":[],"mappings":"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jCZ,EGiCoB,MHjCpB,EGiC4B,WHjC5B,EGiCyC,cHjCzC,EGiCyD,CHjCzD,CAAA;EAEO,KAAA,CAAA,kBAAA,MAAA,EAAA,UGwCV,YHxCU,CGyClB,SHzCkB,EG0ClB,MH1CkB,CAAA,MAAA,EG0CH,kBH1CG,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,CAAA,IAAA,EG8Cd,SH9Cc,EAAA,QAAA,EAAA,CAAA,CAAA,EG+CN,YH/CM,CG+CO,SH/CP,CAAA,EAAA,GG+CsB,CH/CtB,GAAA,SAAA,CAAA,EGgDnB,eHhDmB,CGiDpB,MHjDoB,EGkDpB,MHlDoB,GGkDX,MHlDW,CGkDJ,SHlDI,EGkDO,UHlDP,CGkDkB,CHlDlB,CAAA,OAAA,CAAA,CAAA,CAAA,EGmDpB,MHnDoB,EGoDpB,WHpDoB,EGqDpB,cHrDoB,EGsDpB,YHtDoB,CAAA;EAAM,KAAA,CAAA,kBAAA,MAAA,EAAA,kBAAA,MAAA,EAAA,UG8EhB,YH9EgB,CG+ExB,SH/EwB,EGgFxB,SHhFwB,EGiFxB,MHjFwB,CAAA,MAAA,EAAA,MAAA,CAAA,EGkFxB,MHlFwB,CAAA,MAAA,EGkFT,kBHlFS,CAAA,CAAA,CAAA,CAAA,IAAA,EGqFpB,SHrFoB,EAAA,KAAA,EGsFnB,SHtFmB,EAAA,QAAA,EAAA,CAAA,CAAA,EGwFrB,YHxFqB,CGwFR,SHxFQ,EGwFG,SHxFH,EGwFc,MHxFd,CAAA,MAAA,EAAA,MAAA,CAAA,EGwFsC,MHxFtC,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA,EAAA,GGyFrB,CHzFqB,GAAA,SAAA,CAAA,EG0FzB,eH1FyB,CG2F1B,MH3F0B,EG4F1B,MH5F0B,EG6F1B,MH7F0B,GG6FjB,MH7FiB,CG6FV,SH7FU,EG6FC,UH7FD,CG6FY,CH7FZ,CAAA,OAAA,CAAA,CAAA,CAAA,EG8F1B,WH9F0B,EG+F1B,cH/F0B,EGgG1B,YHhG0B,CAAA;EAIlB,WAAA,CAAA,UAAA,MAAwB,CAAA,CAAA,IAAA,EGkH1B,CHlH0B,CAAA,EGmH/B,eHhHwB,CGgHR,MHhHQ,EG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"}
|
package/dist/index.mjs
CHANGED
|
@@ -136,12 +136,15 @@ var TableBuilder = class TableBuilder {
|
|
|
136
136
|
return new TableBuilder(this._state.name, this._state.columns, this._state.primaryKey, this._state.primaryKeyName, this._state.uniques, [...this._state.indexes, indexDef], this._state.foreignKeys);
|
|
137
137
|
}
|
|
138
138
|
foreignKey(columns, references, opts) {
|
|
139
|
+
const resolved = typeof opts === "string" ? { name: opts } : opts;
|
|
139
140
|
const fkDef = {
|
|
140
141
|
columns,
|
|
141
142
|
references,
|
|
142
|
-
...
|
|
143
|
-
...
|
|
144
|
-
...
|
|
143
|
+
...ifDefined("name", resolved?.name),
|
|
144
|
+
...ifDefined("onDelete", resolved?.onDelete),
|
|
145
|
+
...ifDefined("onUpdate", resolved?.onUpdate),
|
|
146
|
+
...ifDefined("constraint", resolved?.constraint),
|
|
147
|
+
...ifDefined("index", resolved?.index)
|
|
145
148
|
};
|
|
146
149
|
return new TableBuilder(this._state.name, this._state.columns, this._state.primaryKey, this._state.primaryKeyName, this._state.uniques, this._state.indexes, [...this._state.foreignKeys, fkDef]);
|
|
147
150
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["relationDef: RelationDefinition","constraint: UniqueConstraintDef","indexDef: IndexDef","fkDef: ForeignKeyDef"],"sources":["../src/model-builder.ts","../src/table-builder.ts","../src/contract-builder.ts"],"sourcesContent":["import type { ModelBuilderState, RelationDefinition } from './builder-state';\n\nexport class ModelBuilder<\n Name extends string,\n Table extends string,\n Fields extends Record<string, string> = Record<never, never>,\n Relations extends Record<string, RelationDefinition> = Record<never, never>,\n> {\n private readonly _name: Name;\n private readonly _table: Table;\n private readonly _fields: Fields;\n private readonly _relations: Relations;\n\n constructor(\n name: Name,\n table: Table,\n fields: Fields = {} as Fields,\n relations: Relations = {} as Relations,\n ) {\n this._name = name;\n this._table = table;\n this._fields = fields;\n this._relations = relations;\n }\n\n field<FieldName extends string, ColumnName extends string>(\n fieldName: FieldName,\n columnName: ColumnName,\n ): ModelBuilder<Name, Table, Fields & Record<FieldName, ColumnName>, Relations> {\n return new ModelBuilder(\n this._name,\n this._table,\n {\n ...this._fields,\n [fieldName]: columnName,\n } as Fields & Record<FieldName, ColumnName>,\n this._relations,\n );\n }\n\n relation<RelationName extends string, ToModel extends string, ToTable extends string>(\n name: RelationName,\n options: {\n toModel: ToModel;\n toTable: ToTable;\n cardinality: '1:1' | '1:N' | 'N:1';\n on: {\n parentTable: Table;\n parentColumns: readonly string[];\n childTable: ToTable;\n childColumns: readonly string[];\n };\n },\n ): ModelBuilder<Name, Table, Fields, Relations & Record<RelationName, RelationDefinition>>;\n relation<\n RelationName extends string,\n ToModel extends string,\n ToTable extends string,\n JunctionTable extends string,\n >(\n name: RelationName,\n options: {\n toModel: ToModel;\n toTable: ToTable;\n cardinality: 'N:M';\n through: {\n table: JunctionTable;\n parentColumns: readonly string[];\n childColumns: readonly string[];\n };\n on: {\n parentTable: Table;\n parentColumns: readonly string[];\n childTable: JunctionTable;\n childColumns: readonly string[];\n };\n },\n ): ModelBuilder<Name, Table, Fields, Relations & Record<RelationName, RelationDefinition>>;\n relation<\n RelationName extends string,\n ToModel extends string,\n ToTable extends string,\n JunctionTable extends string = never,\n >(\n name: RelationName,\n options: {\n toModel: ToModel;\n toTable: ToTable;\n cardinality: '1:1' | '1:N' | 'N:1' | 'N:M';\n through?: {\n table: JunctionTable;\n parentColumns: readonly string[];\n childColumns: readonly string[];\n };\n on: {\n parentTable: Table;\n parentColumns: readonly string[];\n childTable: ToTable | JunctionTable;\n childColumns: readonly string[];\n };\n },\n ): ModelBuilder<Name, Table, Fields, Relations & Record<RelationName, RelationDefinition>> {\n // Validate parentTable matches model's table\n if (options.on.parentTable !== this._table) {\n throw new Error(\n `Relation \"${name}\" parentTable \"${options.on.parentTable}\" does not match model table \"${this._table}\"`,\n );\n }\n\n // Validate childTable matches toTable (for non-N:M) or through.table (for N:M)\n if (options.cardinality === 'N:M') {\n if (!options.through) {\n throw new Error(`Relation \"${name}\" with cardinality \"N:M\" requires through field`);\n }\n if (options.on.childTable !== options.through.table) {\n throw new Error(\n `Relation \"${name}\" childTable \"${options.on.childTable}\" does not match through.table \"${options.through.table}\"`,\n );\n }\n } else {\n if (options.on.childTable !== options.toTable) {\n throw new Error(\n `Relation \"${name}\" childTable \"${options.on.childTable}\" does not match toTable \"${options.toTable}\"`,\n );\n }\n }\n\n const relationDef: RelationDefinition = {\n to: options.toModel,\n cardinality: options.cardinality,\n on: {\n parentCols: options.on.parentColumns,\n childCols: options.on.childColumns,\n },\n ...(options.through\n ? {\n through: {\n table: options.through.table,\n parentCols: options.through.parentColumns,\n childCols: options.through.childColumns,\n },\n }\n : undefined),\n };\n\n return new ModelBuilder(this._name, this._table, this._fields, {\n ...this._relations,\n [name]: relationDef,\n } as Relations & Record<RelationName, RelationDefinition>);\n }\n\n build(): ModelBuilderState<Name, Table, Fields, Relations> {\n return {\n name: this._name,\n table: this._table,\n fields: this._fields,\n relations: this._relations,\n };\n }\n}\n","import type { ColumnDefault, ExecutionMutationDefaultValue } from '@prisma-next/contract/types';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport type {\n ColumnBuilderState,\n ColumnTypeDescriptor,\n ForeignKeyDef,\n IndexDef,\n NullableColumnCannotHaveDefault,\n TableBuilderState,\n UniqueConstraintDef,\n} from './builder-state';\n\n/**\n * Column options for nullable columns.\n * Nullable columns cannot have a default value.\n */\ninterface NullableColumnOptions<Descriptor extends ColumnTypeDescriptor> {\n type: Descriptor;\n nullable: true;\n typeParams?: Record<string, unknown>;\n default?: NullableColumnCannotHaveDefault;\n}\n\n/**\n * Column options for non-nullable columns.\n * Non-nullable columns can optionally have a default value.\n */\ninterface NonNullableColumnOptions<Descriptor extends ColumnTypeDescriptor> {\n type: Descriptor;\n nullable?: false;\n typeParams?: Record<string, unknown>;\n default?: ColumnDefault;\n}\n\ntype GeneratedColumnOptions<Descriptor extends ColumnTypeDescriptor> = Omit<\n NonNullableColumnOptions<Descriptor>,\n 'default' | 'nullable'\n> & {\n /**\n * Generated columns are always non-nullable and use mutation-time defaults\n * that the runtime injects when the column is omitted from insert input.\n */\n nullable?: false;\n generated: ExecutionMutationDefaultValue;\n};\n\n/**\n * Column options that enforce nullable/default mutual exclusivity.\n *\n * Invariant: A column with a default value is always NOT NULL.\n * - If `nullable: true`, the `default` property is forbidden\n * - If `nullable` is `false` or omitted, the `default` property is allowed\n */\ntype ColumnOptions<Descriptor extends ColumnTypeDescriptor> =\n | NullableColumnOptions<Descriptor>\n | NonNullableColumnOptions<Descriptor>;\n\ntype NullableFromOptions<TOptions> = TOptions extends { nullable: true } ? true : false;\n\ninterface TableBuilderInternalState<\n Name extends string,\n Columns extends Record<string, ColumnBuilderState<string, boolean, string>>,\n PrimaryKey extends readonly string[] | undefined,\n> {\n readonly name: Name;\n readonly columns: Columns;\n readonly primaryKey: PrimaryKey;\n readonly primaryKeyName: string | undefined;\n readonly uniques: readonly UniqueConstraintDef[];\n readonly indexes: readonly IndexDef[];\n readonly foreignKeys: readonly ForeignKeyDef[];\n}\n\n/**\n * Creates a new table builder with the given name.\n * This is the preferred way to create a TableBuilder - it ensures\n * type parameters are inferred correctly without unsafe casts.\n */\nexport function createTable<Name extends string>(name: Name): TableBuilder<Name> {\n return new TableBuilder(name, {}, undefined, undefined, [], [], []);\n}\n\n/**\n * Builder for defining table structure with type-safe chaining.\n * Use `createTable(name)` to create instances.\n */\nexport class TableBuilder<\n Name extends string,\n Columns extends Record<string, ColumnBuilderState<string, boolean, string>> = Record<\n never,\n ColumnBuilderState<string, boolean, string>\n >,\n PrimaryKey extends readonly string[] | undefined = undefined,\n> {\n private readonly _state: TableBuilderInternalState<Name, Columns, PrimaryKey>;\n\n /** @internal Use createTable() instead */\n constructor(\n name: Name,\n columns: Columns,\n primaryKey: PrimaryKey,\n primaryKeyName: string | undefined,\n uniques: readonly UniqueConstraintDef[],\n indexes: readonly IndexDef[],\n foreignKeys: readonly ForeignKeyDef[],\n ) {\n this._state = {\n name,\n columns,\n primaryKey,\n primaryKeyName,\n uniques,\n indexes,\n foreignKeys,\n };\n }\n\n private get _name(): Name {\n return this._state.name;\n }\n\n private get _columns(): Columns {\n return this._state.columns;\n }\n\n private get _primaryKey(): PrimaryKey {\n return this._state.primaryKey;\n }\n\n /**\n * Add a nullable column to the table.\n * Nullable columns cannot have a default value.\n */\n column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: NullableColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, true, Descriptor['codecId']>>,\n PrimaryKey\n >;\n\n /**\n * Add a non-nullable column to the table.\n * Non-nullable columns can optionally have a default value.\n */\n column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: NonNullableColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, false, Descriptor['codecId']>>,\n PrimaryKey\n >;\n\n /**\n * Implementation of the column method.\n */\n column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: ColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, boolean, Descriptor['codecId']>>,\n PrimaryKey\n > {\n return this.columnInternal(name, options);\n }\n\n generated<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: GeneratedColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, false, Descriptor['codecId']>>,\n PrimaryKey\n > {\n const { generated, ...columnOptions } = options;\n return this.columnInternal(name, columnOptions, generated);\n }\n\n private columnInternal<\n ColName extends string,\n Descriptor extends ColumnTypeDescriptor,\n Options extends ColumnOptions<Descriptor>,\n >(\n name: ColName,\n options: Options,\n executionDefault?: ExecutionMutationDefaultValue,\n ): TableBuilder<\n Name,\n Columns &\n Record<\n ColName,\n ColumnBuilderState<ColName, NullableFromOptions<Options>, Descriptor['codecId']>\n >,\n PrimaryKey\n > {\n const nullable = options.nullable ?? false;\n const { codecId, nativeType, typeParams: descriptorTypeParams, typeRef } = options.type;\n const typeParams = options.typeParams ?? descriptorTypeParams;\n\n // The type safety is enforced at the call site via overloads:\n // - NullableColumnOptions forbids `default` when `nullable: true`\n // - NonNullableColumnOptions allows `default` when `nullable` is false/omitted\n const columnState = {\n name,\n nullable,\n type: codecId,\n nativeType,\n ...ifDefined('typeParams', typeParams),\n ...ifDefined('typeRef', typeRef),\n ...ifDefined('default', 'default' in options ? options.default : undefined),\n ...ifDefined('executionDefault', executionDefault),\n } as ColumnBuilderState<ColName, NullableFromOptions<Options>, Descriptor['codecId']>;\n const newColumns = { ...this._columns, [name]: columnState } as Columns &\n Record<\n ColName,\n ColumnBuilderState<ColName, NullableFromOptions<Options>, Descriptor['codecId']>\n >;\n return new TableBuilder(\n this._state.name,\n newColumns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n this._state.uniques,\n this._state.indexes,\n this._state.foreignKeys,\n );\n }\n\n primaryKey<PK extends readonly string[]>(\n columns: PK,\n name?: string,\n ): TableBuilder<Name, Columns, PK> {\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n columns,\n name,\n this._state.uniques,\n this._state.indexes,\n this._state.foreignKeys,\n );\n }\n\n unique(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey> {\n const constraint: UniqueConstraintDef = name ? { columns, name } : { columns };\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n [...this._state.uniques, constraint],\n this._state.indexes,\n this._state.foreignKeys,\n );\n }\n\n index(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey> {\n const indexDef: IndexDef = name ? { columns, name } : { columns };\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n this._state.uniques,\n [...this._state.indexes, indexDef],\n this._state.foreignKeys,\n );\n }\n\n foreignKey(\n columns: readonly string[],\n references: { table: string; columns: readonly string[] },\n opts?: { name?: string; constraint?: boolean; index?: boolean },\n ): TableBuilder<Name, Columns, PrimaryKey> {\n const fkDef: ForeignKeyDef = {\n columns,\n references,\n ...(opts?.name !== undefined && { name: opts.name }),\n ...(opts?.constraint !== undefined && { constraint: opts.constraint }),\n ...(opts?.index !== undefined && { index: opts.index }),\n };\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n this._state.uniques,\n this._state.indexes,\n [...this._state.foreignKeys, fkDef],\n );\n }\n\n build(): TableBuilderState<Name, Columns, PrimaryKey> {\n return {\n name: this._name,\n columns: this._columns,\n ...(this._primaryKey !== undefined ? { primaryKey: this._primaryKey } : {}),\n ...(this._state.primaryKeyName !== undefined\n ? { primaryKeyName: this._state.primaryKeyName }\n : {}),\n uniques: this._state.uniques,\n indexes: this._state.indexes,\n foreignKeys: this._state.foreignKeys,\n } as TableBuilderState<Name, Columns, PrimaryKey>;\n }\n}\n","import type { TargetPackRef } from '@prisma-next/contract/framework-components';\nimport type {\n ColumnBuilderState,\n ContractBuilderState,\n ForeignKeyDefaultsState,\n ModelBuilderState,\n RelationDefinition,\n TableBuilderState,\n} from './builder-state';\nimport { ModelBuilder } from './model-builder';\nimport { createTable, TableBuilder } from './table-builder';\n\nexport class ContractBuilder<\n Target extends string | undefined = undefined,\n Tables extends Record<\n string,\n TableBuilderState<\n string,\n Record<string, ColumnBuilderState<string, boolean, string>>,\n readonly string[] | undefined\n >\n > = Record<never, never>,\n Models extends Record<\n string,\n ModelBuilderState<string, string, Record<string, string>, Record<string, RelationDefinition>>\n > = Record<never, never>,\n StorageHash extends string | undefined = undefined,\n ExtensionPacks extends Record<string, unknown> | undefined = undefined,\n Capabilities extends Record<string, Record<string, boolean>> | undefined = undefined,\n> {\n protected readonly state: ContractBuilderState<\n Target,\n Tables,\n Models,\n StorageHash,\n ExtensionPacks,\n Capabilities\n >;\n\n constructor(\n state?: ContractBuilderState<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities>,\n ) {\n this.state =\n state ??\n ({\n tables: {},\n models: {},\n } as ContractBuilderState<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities>);\n }\n\n target<T extends string>(\n packRef: TargetPackRef<string, T>,\n ): ContractBuilder<T, Tables, Models, StorageHash, ExtensionPacks, Capabilities> {\n return new ContractBuilder<T, Tables, Models, StorageHash, ExtensionPacks, Capabilities>({\n ...this.state,\n target: packRef.targetId,\n });\n }\n\n capabilities<C extends Record<string, Record<string, boolean>>>(\n capabilities: C,\n ): ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, C> {\n return new ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, C>({\n ...this.state,\n capabilities,\n });\n }\n\n table<\n TableName extends string,\n T extends TableBuilder<\n TableName,\n Record<string, ColumnBuilderState<string, boolean, string>>,\n readonly string[] | undefined\n >,\n >(\n name: TableName,\n callback: (t: TableBuilder<TableName>) => T | undefined,\n ): ContractBuilder<\n Target,\n Tables & Record<TableName, ReturnType<T['build']>>,\n Models,\n StorageHash,\n ExtensionPacks,\n Capabilities\n > {\n const tableBuilder = createTable(name);\n const result = callback(tableBuilder);\n const finalBuilder = result instanceof TableBuilder ? result : tableBuilder;\n const tableState = finalBuilder.build();\n\n return new ContractBuilder<\n Target,\n Tables & Record<TableName, ReturnType<T['build']>>,\n Models,\n StorageHash,\n ExtensionPacks,\n Capabilities\n >({\n ...this.state,\n tables: { ...this.state.tables, [name]: tableState } as Tables &\n Record<TableName, ReturnType<T['build']>>,\n });\n }\n\n model<\n ModelName extends string,\n TableName extends string,\n M extends ModelBuilder<\n ModelName,\n TableName,\n Record<string, string>,\n Record<string, RelationDefinition>\n >,\n >(\n name: ModelName,\n table: TableName,\n callback: (\n m: ModelBuilder<ModelName, TableName, Record<string, string>, Record<never, never>>,\n ) => M | undefined,\n ): ContractBuilder<\n Target,\n Tables,\n Models & Record<ModelName, ReturnType<M['build']>>,\n StorageHash,\n ExtensionPacks,\n Capabilities\n > {\n const modelBuilder = new ModelBuilder<ModelName, TableName>(name, table);\n const result = callback(modelBuilder);\n const finalBuilder = result instanceof ModelBuilder ? result : modelBuilder;\n const modelState = finalBuilder.build();\n\n return new ContractBuilder<\n Target,\n Tables,\n Models & Record<ModelName, ReturnType<M['build']>>,\n StorageHash,\n ExtensionPacks,\n Capabilities\n >({\n ...this.state,\n models: { ...this.state.models, [name]: modelState } as Models &\n Record<ModelName, ReturnType<M['build']>>,\n });\n }\n\n storageHash<H extends string>(\n hash: H,\n ): ContractBuilder<Target, Tables, Models, H, ExtensionPacks, Capabilities> {\n return new ContractBuilder<Target, Tables, Models, H, ExtensionPacks, Capabilities>({\n ...this.state,\n storageHash: hash,\n });\n }\n\n foreignKeyDefaults(\n config: ForeignKeyDefaultsState,\n ): ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities> {\n return new ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities>({\n ...this.state,\n foreignKeyDefaults: config,\n });\n }\n}\n\nexport function defineContract(): ContractBuilder {\n return new ContractBuilder();\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["relationDef: RelationDefinition","constraint: UniqueConstraintDef","indexDef: IndexDef","fkDef: ForeignKeyDef"],"sources":["../src/model-builder.ts","../src/table-builder.ts","../src/contract-builder.ts"],"sourcesContent":["import type { ModelBuilderState, RelationDefinition } from './builder-state';\n\nexport class ModelBuilder<\n Name extends string,\n Table extends string,\n Fields extends Record<string, string> = Record<never, never>,\n Relations extends Record<string, RelationDefinition> = Record<never, never>,\n> {\n private readonly _name: Name;\n private readonly _table: Table;\n private readonly _fields: Fields;\n private readonly _relations: Relations;\n\n constructor(\n name: Name,\n table: Table,\n fields: Fields = {} as Fields,\n relations: Relations = {} as Relations,\n ) {\n this._name = name;\n this._table = table;\n this._fields = fields;\n this._relations = relations;\n }\n\n field<FieldName extends string, ColumnName extends string>(\n fieldName: FieldName,\n columnName: ColumnName,\n ): ModelBuilder<Name, Table, Fields & Record<FieldName, ColumnName>, Relations> {\n return new ModelBuilder(\n this._name,\n this._table,\n {\n ...this._fields,\n [fieldName]: columnName,\n } as Fields & Record<FieldName, ColumnName>,\n this._relations,\n );\n }\n\n relation<RelationName extends string, ToModel extends string, ToTable extends string>(\n name: RelationName,\n options: {\n toModel: ToModel;\n toTable: ToTable;\n cardinality: '1:1' | '1:N' | 'N:1';\n on: {\n parentTable: Table;\n parentColumns: readonly string[];\n childTable: ToTable;\n childColumns: readonly string[];\n };\n },\n ): ModelBuilder<Name, Table, Fields, Relations & Record<RelationName, RelationDefinition>>;\n relation<\n RelationName extends string,\n ToModel extends string,\n ToTable extends string,\n JunctionTable extends string,\n >(\n name: RelationName,\n options: {\n toModel: ToModel;\n toTable: ToTable;\n cardinality: 'N:M';\n through: {\n table: JunctionTable;\n parentColumns: readonly string[];\n childColumns: readonly string[];\n };\n on: {\n parentTable: Table;\n parentColumns: readonly string[];\n childTable: JunctionTable;\n childColumns: readonly string[];\n };\n },\n ): ModelBuilder<Name, Table, Fields, Relations & Record<RelationName, RelationDefinition>>;\n relation<\n RelationName extends string,\n ToModel extends string,\n ToTable extends string,\n JunctionTable extends string = never,\n >(\n name: RelationName,\n options: {\n toModel: ToModel;\n toTable: ToTable;\n cardinality: '1:1' | '1:N' | 'N:1' | 'N:M';\n through?: {\n table: JunctionTable;\n parentColumns: readonly string[];\n childColumns: readonly string[];\n };\n on: {\n parentTable: Table;\n parentColumns: readonly string[];\n childTable: ToTable | JunctionTable;\n childColumns: readonly string[];\n };\n },\n ): ModelBuilder<Name, Table, Fields, Relations & Record<RelationName, RelationDefinition>> {\n // Validate parentTable matches model's table\n if (options.on.parentTable !== this._table) {\n throw new Error(\n `Relation \"${name}\" parentTable \"${options.on.parentTable}\" does not match model table \"${this._table}\"`,\n );\n }\n\n // Validate childTable matches toTable (for non-N:M) or through.table (for N:M)\n if (options.cardinality === 'N:M') {\n if (!options.through) {\n throw new Error(`Relation \"${name}\" with cardinality \"N:M\" requires through field`);\n }\n if (options.on.childTable !== options.through.table) {\n throw new Error(\n `Relation \"${name}\" childTable \"${options.on.childTable}\" does not match through.table \"${options.through.table}\"`,\n );\n }\n } else {\n if (options.on.childTable !== options.toTable) {\n throw new Error(\n `Relation \"${name}\" childTable \"${options.on.childTable}\" does not match toTable \"${options.toTable}\"`,\n );\n }\n }\n\n const relationDef: RelationDefinition = {\n to: options.toModel,\n cardinality: options.cardinality,\n on: {\n parentCols: options.on.parentColumns,\n childCols: options.on.childColumns,\n },\n ...(options.through\n ? {\n through: {\n table: options.through.table,\n parentCols: options.through.parentColumns,\n childCols: options.through.childColumns,\n },\n }\n : undefined),\n };\n\n return new ModelBuilder(this._name, this._table, this._fields, {\n ...this._relations,\n [name]: relationDef,\n } as Relations & Record<RelationName, RelationDefinition>);\n }\n\n build(): ModelBuilderState<Name, Table, Fields, Relations> {\n return {\n name: this._name,\n table: this._table,\n fields: this._fields,\n relations: this._relations,\n };\n }\n}\n","import type { ColumnDefault, ExecutionMutationDefaultValue } from '@prisma-next/contract/types';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport type {\n ColumnBuilderState,\n ColumnTypeDescriptor,\n ForeignKeyDef,\n ForeignKeyOptions,\n IndexDef,\n TableBuilderState,\n UniqueConstraintDef,\n} from './builder-state';\n\n/**\n * Column options for nullable columns.\n */\ninterface NullableColumnOptions<Descriptor extends ColumnTypeDescriptor> {\n type: Descriptor;\n nullable: true;\n typeParams?: Record<string, unknown>;\n default?: ColumnDefault;\n}\n\n/**\n * Column options for non-nullable columns.\n * Non-nullable columns can optionally have a default value.\n */\ninterface NonNullableColumnOptions<Descriptor extends ColumnTypeDescriptor> {\n type: Descriptor;\n nullable?: false;\n typeParams?: Record<string, unknown>;\n default?: ColumnDefault;\n}\n\ntype GeneratedColumnOptions<Descriptor extends ColumnTypeDescriptor> = Omit<\n NonNullableColumnOptions<Descriptor>,\n 'default' | 'nullable'\n> & {\n /**\n * Generated columns are always non-nullable and use mutation-time defaults\n * that the runtime injects when the column is omitted from insert input.\n */\n nullable?: false;\n generated: ExecutionMutationDefaultValue;\n};\n\n/** Column options for any column nullability. */\ntype ColumnOptions<Descriptor extends ColumnTypeDescriptor> =\n | NullableColumnOptions<Descriptor>\n | NonNullableColumnOptions<Descriptor>;\n\ntype NullableFromOptions<TOptions> = TOptions extends { nullable: true } ? true : false;\n\ninterface TableBuilderInternalState<\n Name extends string,\n Columns extends Record<string, ColumnBuilderState<string, boolean, string>>,\n PrimaryKey extends readonly string[] | undefined,\n> {\n readonly name: Name;\n readonly columns: Columns;\n readonly primaryKey: PrimaryKey;\n readonly primaryKeyName: string | undefined;\n readonly uniques: readonly UniqueConstraintDef[];\n readonly indexes: readonly IndexDef[];\n readonly foreignKeys: readonly ForeignKeyDef[];\n}\n\n/**\n * Creates a new table builder with the given name.\n * This is the preferred way to create a TableBuilder - it ensures\n * type parameters are inferred correctly without unsafe casts.\n */\nexport function createTable<Name extends string>(name: Name): TableBuilder<Name> {\n return new TableBuilder(name, {}, undefined, undefined, [], [], []);\n}\n\n/**\n * Builder for defining table structure with type-safe chaining.\n * Use `createTable(name)` to create instances.\n */\nexport class TableBuilder<\n Name extends string,\n Columns extends Record<string, ColumnBuilderState<string, boolean, string>> = Record<\n never,\n ColumnBuilderState<string, boolean, string>\n >,\n PrimaryKey extends readonly string[] | undefined = undefined,\n> {\n private readonly _state: TableBuilderInternalState<Name, Columns, PrimaryKey>;\n\n /** @internal Use createTable() instead */\n constructor(\n name: Name,\n columns: Columns,\n primaryKey: PrimaryKey,\n primaryKeyName: string | undefined,\n uniques: readonly UniqueConstraintDef[],\n indexes: readonly IndexDef[],\n foreignKeys: readonly ForeignKeyDef[],\n ) {\n this._state = {\n name,\n columns,\n primaryKey,\n primaryKeyName,\n uniques,\n indexes,\n foreignKeys,\n };\n }\n\n private get _name(): Name {\n return this._state.name;\n }\n\n private get _columns(): Columns {\n return this._state.columns;\n }\n\n private get _primaryKey(): PrimaryKey {\n return this._state.primaryKey;\n }\n\n /** Add a nullable column to the table. */\n column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: NullableColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, true, Descriptor['codecId']>>,\n PrimaryKey\n >;\n\n /**\n * Add a non-nullable column to the table.\n * Non-nullable columns can optionally have a default value.\n */\n column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: NonNullableColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, false, Descriptor['codecId']>>,\n PrimaryKey\n >;\n\n /**\n * Implementation of the column method.\n */\n column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: ColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, boolean, Descriptor['codecId']>>,\n PrimaryKey\n > {\n return this.columnInternal(name, options);\n }\n\n generated<ColName extends string, Descriptor extends ColumnTypeDescriptor>(\n name: ColName,\n options: GeneratedColumnOptions<Descriptor>,\n ): TableBuilder<\n Name,\n Columns & Record<ColName, ColumnBuilderState<ColName, false, Descriptor['codecId']>>,\n PrimaryKey\n > {\n const { generated, ...columnOptions } = options;\n return this.columnInternal(name, columnOptions, generated);\n }\n\n private columnInternal<\n ColName extends string,\n Descriptor extends ColumnTypeDescriptor,\n Options extends ColumnOptions<Descriptor>,\n >(\n name: ColName,\n options: Options,\n executionDefault?: ExecutionMutationDefaultValue,\n ): TableBuilder<\n Name,\n Columns &\n Record<\n ColName,\n ColumnBuilderState<ColName, NullableFromOptions<Options>, Descriptor['codecId']>\n >,\n PrimaryKey\n > {\n const nullable = options.nullable ?? false;\n const { codecId, nativeType, typeParams: descriptorTypeParams, typeRef } = options.type;\n const typeParams = options.typeParams ?? descriptorTypeParams;\n\n const columnState = {\n name,\n nullable,\n type: codecId,\n nativeType,\n ...ifDefined('typeParams', typeParams),\n ...ifDefined('typeRef', typeRef),\n ...ifDefined('default', 'default' in options ? options.default : undefined),\n ...ifDefined('executionDefault', executionDefault),\n } as ColumnBuilderState<ColName, NullableFromOptions<Options>, Descriptor['codecId']>;\n const newColumns = { ...this._columns, [name]: columnState } as Columns &\n Record<\n ColName,\n ColumnBuilderState<ColName, NullableFromOptions<Options>, Descriptor['codecId']>\n >;\n return new TableBuilder(\n this._state.name,\n newColumns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n this._state.uniques,\n this._state.indexes,\n this._state.foreignKeys,\n );\n }\n\n primaryKey<PK extends readonly string[]>(\n columns: PK,\n name?: string,\n ): TableBuilder<Name, Columns, PK> {\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n columns,\n name,\n this._state.uniques,\n this._state.indexes,\n this._state.foreignKeys,\n );\n }\n\n unique(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey> {\n const constraint: UniqueConstraintDef = name ? { columns, name } : { columns };\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n [...this._state.uniques, constraint],\n this._state.indexes,\n this._state.foreignKeys,\n );\n }\n\n index(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey> {\n const indexDef: IndexDef = name ? { columns, name } : { columns };\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n this._state.uniques,\n [...this._state.indexes, indexDef],\n this._state.foreignKeys,\n );\n }\n\n foreignKey(\n columns: readonly string[],\n references: { table: string; columns: readonly string[] },\n opts?: string | (ForeignKeyOptions & { constraint?: boolean; index?: boolean }),\n ): TableBuilder<Name, Columns, PrimaryKey> {\n const resolved = typeof opts === 'string' ? { name: opts } : opts;\n const fkDef: ForeignKeyDef = {\n columns,\n references,\n ...ifDefined('name', resolved?.name),\n ...ifDefined('onDelete', resolved?.onDelete),\n ...ifDefined('onUpdate', resolved?.onUpdate),\n ...ifDefined('constraint', resolved?.constraint),\n ...ifDefined('index', resolved?.index),\n };\n return new TableBuilder(\n this._state.name,\n this._state.columns,\n this._state.primaryKey,\n this._state.primaryKeyName,\n this._state.uniques,\n this._state.indexes,\n [...this._state.foreignKeys, fkDef],\n );\n }\n\n build(): TableBuilderState<Name, Columns, PrimaryKey> {\n return {\n name: this._name,\n columns: this._columns,\n ...(this._primaryKey !== undefined ? { primaryKey: this._primaryKey } : {}),\n ...(this._state.primaryKeyName !== undefined\n ? { primaryKeyName: this._state.primaryKeyName }\n : {}),\n uniques: this._state.uniques,\n indexes: this._state.indexes,\n foreignKeys: this._state.foreignKeys,\n } as TableBuilderState<Name, Columns, PrimaryKey>;\n }\n}\n","import type { TargetPackRef } from '@prisma-next/contract/framework-components';\nimport type {\n ColumnBuilderState,\n ContractBuilderState,\n ForeignKeyDefaultsState,\n ModelBuilderState,\n RelationDefinition,\n TableBuilderState,\n} from './builder-state';\nimport { ModelBuilder } from './model-builder';\nimport { createTable, TableBuilder } from './table-builder';\n\nexport class ContractBuilder<\n Target extends string | undefined = undefined,\n Tables extends Record<\n string,\n TableBuilderState<\n string,\n Record<string, ColumnBuilderState<string, boolean, string>>,\n readonly string[] | undefined\n >\n > = Record<never, never>,\n Models extends Record<\n string,\n ModelBuilderState<string, string, Record<string, string>, Record<string, RelationDefinition>>\n > = Record<never, never>,\n StorageHash extends string | undefined = undefined,\n ExtensionPacks extends Record<string, unknown> | undefined = undefined,\n Capabilities extends Record<string, Record<string, boolean>> | undefined = undefined,\n> {\n protected readonly state: ContractBuilderState<\n Target,\n Tables,\n Models,\n StorageHash,\n ExtensionPacks,\n Capabilities\n >;\n\n constructor(\n state?: ContractBuilderState<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities>,\n ) {\n this.state =\n state ??\n ({\n tables: {},\n models: {},\n } as ContractBuilderState<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities>);\n }\n\n target<T extends string>(\n packRef: TargetPackRef<string, T>,\n ): ContractBuilder<T, Tables, Models, StorageHash, ExtensionPacks, Capabilities> {\n return new ContractBuilder<T, Tables, Models, StorageHash, ExtensionPacks, Capabilities>({\n ...this.state,\n target: packRef.targetId,\n });\n }\n\n capabilities<C extends Record<string, Record<string, boolean>>>(\n capabilities: C,\n ): ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, C> {\n return new ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, C>({\n ...this.state,\n capabilities,\n });\n }\n\n table<\n TableName extends string,\n T extends TableBuilder<\n TableName,\n Record<string, ColumnBuilderState<string, boolean, string>>,\n readonly string[] | undefined\n >,\n >(\n name: TableName,\n callback: (t: TableBuilder<TableName>) => T | undefined,\n ): ContractBuilder<\n Target,\n Tables & Record<TableName, ReturnType<T['build']>>,\n Models,\n StorageHash,\n ExtensionPacks,\n Capabilities\n > {\n const tableBuilder = createTable(name);\n const result = callback(tableBuilder);\n const finalBuilder = result instanceof TableBuilder ? result : tableBuilder;\n const tableState = finalBuilder.build();\n\n return new ContractBuilder<\n Target,\n Tables & Record<TableName, ReturnType<T['build']>>,\n Models,\n StorageHash,\n ExtensionPacks,\n Capabilities\n >({\n ...this.state,\n tables: { ...this.state.tables, [name]: tableState } as Tables &\n Record<TableName, ReturnType<T['build']>>,\n });\n }\n\n model<\n ModelName extends string,\n TableName extends string,\n M extends ModelBuilder<\n ModelName,\n TableName,\n Record<string, string>,\n Record<string, RelationDefinition>\n >,\n >(\n name: ModelName,\n table: TableName,\n callback: (\n m: ModelBuilder<ModelName, TableName, Record<string, string>, Record<never, never>>,\n ) => M | undefined,\n ): ContractBuilder<\n Target,\n Tables,\n Models & Record<ModelName, ReturnType<M['build']>>,\n StorageHash,\n ExtensionPacks,\n Capabilities\n > {\n const modelBuilder = new ModelBuilder<ModelName, TableName>(name, table);\n const result = callback(modelBuilder);\n const finalBuilder = result instanceof ModelBuilder ? result : modelBuilder;\n const modelState = finalBuilder.build();\n\n return new ContractBuilder<\n Target,\n Tables,\n Models & Record<ModelName, ReturnType<M['build']>>,\n StorageHash,\n ExtensionPacks,\n Capabilities\n >({\n ...this.state,\n models: { ...this.state.models, [name]: modelState } as Models &\n Record<ModelName, ReturnType<M['build']>>,\n });\n }\n\n storageHash<H extends string>(\n hash: H,\n ): ContractBuilder<Target, Tables, Models, H, ExtensionPacks, Capabilities> {\n return new ContractBuilder<Target, Tables, Models, H, ExtensionPacks, Capabilities>({\n ...this.state,\n storageHash: hash,\n });\n }\n\n foreignKeyDefaults(\n config: ForeignKeyDefaultsState,\n ): ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities> {\n return new ContractBuilder<Target, Tables, Models, StorageHash, ExtensionPacks, Capabilities>({\n ...this.state,\n foreignKeyDefaults: config,\n });\n }\n}\n\nexport function defineContract(): ContractBuilder {\n return new ContractBuilder();\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma-next/contract-authoring",
|
|
3
|
-
"version": "0.3.0-dev.
|
|
3
|
+
"version": "0.3.0-dev.43",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"description": "Target-agnostic contract authoring builder core for Prisma Next",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"ts-toolbelt": "^9.6.0",
|
|
9
|
-
"@prisma-next/utils": "0.3.0-dev.
|
|
10
|
-
"@prisma-next/contract": "0.3.0-dev.
|
|
9
|
+
"@prisma-next/utils": "0.3.0-dev.43",
|
|
10
|
+
"@prisma-next/contract": "0.3.0-dev.43"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"tsdown": "0.18.4",
|
package/src/builder-state.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { ColumnDefault, ExecutionMutationDefaultValue } from '@prisma-next/contract/types';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Duplicated from sql-contract to avoid cross-layer dependency
|
|
5
|
+
* (framework authoring cannot depend on the SQL domain's contract package).
|
|
6
|
+
*/
|
|
7
|
+
export type ReferentialAction = 'noAction' | 'restrict' | 'cascade' | 'setNull' | 'setDefault';
|
|
8
|
+
|
|
3
9
|
/**
|
|
4
10
|
* Column type descriptor containing both codec ID and native type.
|
|
5
11
|
* Used when defining columns with descriptor objects instead of string IDs.
|
|
@@ -33,19 +39,9 @@ export type StorageTypeInstanceState = {
|
|
|
33
39
|
};
|
|
34
40
|
|
|
35
41
|
/**
|
|
36
|
-
*
|
|
37
|
-
* This string literal appears in TypeScript error messages for better DX.
|
|
38
|
-
*/
|
|
39
|
-
export type NullableColumnCannotHaveDefault =
|
|
40
|
-
"Error: A nullable column cannot have a default value. Remove 'nullable: true' or remove 'default'.";
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Column builder state with enforced nullable/default mutual exclusivity.
|
|
42
|
+
* Column builder state.
|
|
44
43
|
*
|
|
45
|
-
*
|
|
46
|
-
* This is enforced at the type level via conditional types:
|
|
47
|
-
* - Nullable columns (`nullable: true`) cannot have a `default` property
|
|
48
|
-
* - Non-nullable columns (`nullable: false`) can optionally have a `default` property
|
|
44
|
+
* Both nullable and non-nullable columns can define defaults to match database behavior.
|
|
49
45
|
*/
|
|
50
46
|
export type ColumnBuilderState<
|
|
51
47
|
Name extends string,
|
|
@@ -53,7 +49,7 @@ export type ColumnBuilderState<
|
|
|
53
49
|
Type extends string,
|
|
54
50
|
> = ColumnBuilderStateBase<Name, Type> &
|
|
55
51
|
(Nullable extends true
|
|
56
|
-
? { readonly nullable: true; readonly default?:
|
|
52
|
+
? { readonly nullable: true; readonly default?: ColumnDefault }
|
|
57
53
|
: {
|
|
58
54
|
readonly nullable: false;
|
|
59
55
|
readonly default?: ColumnDefault;
|
|
@@ -76,16 +72,24 @@ export interface IndexDef {
|
|
|
76
72
|
readonly name?: string;
|
|
77
73
|
}
|
|
78
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Options for configuring a foreign key's name and referential actions.
|
|
77
|
+
*/
|
|
78
|
+
export type ForeignKeyOptions = {
|
|
79
|
+
readonly name?: string;
|
|
80
|
+
readonly onDelete?: ReferentialAction;
|
|
81
|
+
readonly onUpdate?: ReferentialAction;
|
|
82
|
+
};
|
|
83
|
+
|
|
79
84
|
/**
|
|
80
85
|
* Foreign key definition for table builder.
|
|
81
86
|
*/
|
|
82
|
-
export interface ForeignKeyDef {
|
|
87
|
+
export interface ForeignKeyDef extends ForeignKeyOptions {
|
|
83
88
|
readonly columns: readonly string[];
|
|
84
89
|
readonly references: {
|
|
85
90
|
readonly table: string;
|
|
86
91
|
readonly columns: readonly string[];
|
|
87
92
|
};
|
|
88
|
-
readonly name?: string;
|
|
89
93
|
readonly constraint?: boolean;
|
|
90
94
|
readonly index?: boolean;
|
|
91
95
|
}
|
package/src/index.ts
CHANGED
package/src/table-builder.ts
CHANGED
|
@@ -4,21 +4,20 @@ import type {
|
|
|
4
4
|
ColumnBuilderState,
|
|
5
5
|
ColumnTypeDescriptor,
|
|
6
6
|
ForeignKeyDef,
|
|
7
|
+
ForeignKeyOptions,
|
|
7
8
|
IndexDef,
|
|
8
|
-
NullableColumnCannotHaveDefault,
|
|
9
9
|
TableBuilderState,
|
|
10
10
|
UniqueConstraintDef,
|
|
11
11
|
} from './builder-state';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Column options for nullable columns.
|
|
15
|
-
* Nullable columns cannot have a default value.
|
|
16
15
|
*/
|
|
17
16
|
interface NullableColumnOptions<Descriptor extends ColumnTypeDescriptor> {
|
|
18
17
|
type: Descriptor;
|
|
19
18
|
nullable: true;
|
|
20
19
|
typeParams?: Record<string, unknown>;
|
|
21
|
-
default?:
|
|
20
|
+
default?: ColumnDefault;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
/**
|
|
@@ -44,13 +43,7 @@ type GeneratedColumnOptions<Descriptor extends ColumnTypeDescriptor> = Omit<
|
|
|
44
43
|
generated: ExecutionMutationDefaultValue;
|
|
45
44
|
};
|
|
46
45
|
|
|
47
|
-
/**
|
|
48
|
-
* Column options that enforce nullable/default mutual exclusivity.
|
|
49
|
-
*
|
|
50
|
-
* Invariant: A column with a default value is always NOT NULL.
|
|
51
|
-
* - If `nullable: true`, the `default` property is forbidden
|
|
52
|
-
* - If `nullable` is `false` or omitted, the `default` property is allowed
|
|
53
|
-
*/
|
|
46
|
+
/** Column options for any column nullability. */
|
|
54
47
|
type ColumnOptions<Descriptor extends ColumnTypeDescriptor> =
|
|
55
48
|
| NullableColumnOptions<Descriptor>
|
|
56
49
|
| NonNullableColumnOptions<Descriptor>;
|
|
@@ -127,10 +120,7 @@ export class TableBuilder<
|
|
|
127
120
|
return this._state.primaryKey;
|
|
128
121
|
}
|
|
129
122
|
|
|
130
|
-
/**
|
|
131
|
-
* Add a nullable column to the table.
|
|
132
|
-
* Nullable columns cannot have a default value.
|
|
133
|
-
*/
|
|
123
|
+
/** Add a nullable column to the table. */
|
|
134
124
|
column<ColName extends string, Descriptor extends ColumnTypeDescriptor>(
|
|
135
125
|
name: ColName,
|
|
136
126
|
options: NullableColumnOptions<Descriptor>,
|
|
@@ -200,9 +190,6 @@ export class TableBuilder<
|
|
|
200
190
|
const { codecId, nativeType, typeParams: descriptorTypeParams, typeRef } = options.type;
|
|
201
191
|
const typeParams = options.typeParams ?? descriptorTypeParams;
|
|
202
192
|
|
|
203
|
-
// The type safety is enforced at the call site via overloads:
|
|
204
|
-
// - NullableColumnOptions forbids `default` when `nullable: true`
|
|
205
|
-
// - NonNullableColumnOptions allows `default` when `nullable` is false/omitted
|
|
206
193
|
const columnState = {
|
|
207
194
|
name,
|
|
208
195
|
nullable,
|
|
@@ -273,14 +260,17 @@ export class TableBuilder<
|
|
|
273
260
|
foreignKey(
|
|
274
261
|
columns: readonly string[],
|
|
275
262
|
references: { table: string; columns: readonly string[] },
|
|
276
|
-
opts?:
|
|
263
|
+
opts?: string | (ForeignKeyOptions & { constraint?: boolean; index?: boolean }),
|
|
277
264
|
): TableBuilder<Name, Columns, PrimaryKey> {
|
|
265
|
+
const resolved = typeof opts === 'string' ? { name: opts } : opts;
|
|
278
266
|
const fkDef: ForeignKeyDef = {
|
|
279
267
|
columns,
|
|
280
268
|
references,
|
|
281
|
-
...(
|
|
282
|
-
...(
|
|
283
|
-
...(
|
|
269
|
+
...ifDefined('name', resolved?.name),
|
|
270
|
+
...ifDefined('onDelete', resolved?.onDelete),
|
|
271
|
+
...ifDefined('onUpdate', resolved?.onUpdate),
|
|
272
|
+
...ifDefined('constraint', resolved?.constraint),
|
|
273
|
+
...ifDefined('index', resolved?.index),
|
|
284
274
|
};
|
|
285
275
|
return new TableBuilder(
|
|
286
276
|
this._state.name,
|
package/src/types.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ColumnDefault } from '@prisma-next/contract/types';
|
|
1
2
|
import type {
|
|
2
3
|
ColumnBuilderState,
|
|
3
4
|
ModelBuilderState,
|
|
@@ -11,6 +12,7 @@ export type BuildStorageColumn<Nullable extends boolean, Type extends string> =
|
|
|
11
12
|
readonly nullable: Nullable;
|
|
12
13
|
readonly typeParams?: Record<string, unknown>;
|
|
13
14
|
readonly typeRef?: string;
|
|
15
|
+
readonly default?: ColumnDefault;
|
|
14
16
|
};
|
|
15
17
|
|
|
16
18
|
export type ExtractColumns<
|