@prisma-next/contract-authoring 0.3.0-dev.71 → 0.3.0-dev.73
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 +16 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/builder-state.ts +9 -0
- package/src/table-builder.ts +33 -2
package/dist/index.d.mts
CHANGED
|
@@ -63,6 +63,15 @@ interface UniqueConstraintDef {
|
|
|
63
63
|
interface IndexDef {
|
|
64
64
|
readonly columns: readonly string[];
|
|
65
65
|
readonly name?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Optional index access method. Extension-specific methods are represented
|
|
68
|
+
* as strings and interpreted by the owning extension package.
|
|
69
|
+
*/
|
|
70
|
+
readonly using?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Optional extension-owned index configuration payload.
|
|
73
|
+
*/
|
|
74
|
+
readonly config?: Record<string, unknown>;
|
|
66
75
|
}
|
|
67
76
|
/**
|
|
68
77
|
* Options for configuring a foreign key's name and referential actions.
|
|
@@ -206,6 +215,11 @@ type GeneratedColumnOptions<Descriptor extends ColumnTypeDescriptor> = Omit<NonN
|
|
|
206
215
|
nullable?: false;
|
|
207
216
|
generated: ExecutionMutationDefaultValue;
|
|
208
217
|
};
|
|
218
|
+
type IndexOptions = {
|
|
219
|
+
readonly name?: string;
|
|
220
|
+
readonly using?: string;
|
|
221
|
+
readonly config?: Record<string, unknown>;
|
|
222
|
+
};
|
|
209
223
|
/**
|
|
210
224
|
* Creates a new table builder with the given name.
|
|
211
225
|
* This is the preferred way to create a TableBuilder - it ensures
|
|
@@ -235,6 +249,8 @@ declare class TableBuilder<Name extends string, Columns extends Record<string, C
|
|
|
235
249
|
primaryKey<PK extends readonly string[]>(columns: PK, name?: string): TableBuilder<Name, Columns, PK>;
|
|
236
250
|
unique(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey>;
|
|
237
251
|
index(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey>;
|
|
252
|
+
index(columns: readonly string[], options?: IndexOptions): TableBuilder<Name, Columns, PrimaryKey>;
|
|
253
|
+
index(indexDef: IndexDef): TableBuilder<Name, Columns, PrimaryKey>;
|
|
238
254
|
foreignKey(columns: readonly string[], references: {
|
|
239
255
|
table: string;
|
|
240
256
|
columns: readonly string[];
|
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":";;;;;;;;AAMA;AAUY,KAVA,iBAAA,GAUoB,UAGR,GAAA,UAAM,GAAA,SAAA,GAAA,SAAA,GAAA,YAAA;AAE5B;;;;;AAaF;AAWA;;AAIiC,KAjCrB,oBAAA,GAiCqB;EAA7B,SAAA,OAAA,EAAA,MAAA;EACD,SAAA,UAAA,EAAA,MAAA;EACiD,SAAA,UAAA,CAAA,EAhC5B,MAgC4B,CAAA,MAAA,EAAA,OAAA,CAAA;EAGzB,SAAA,OAAA,CAAA,EAAA,MAAA;CACS;;AAMpC;AAQA;AAQA,KAnDK,sBAmDwB,CAAA,aAEP,MAAA,EAAA,aACA,MAAA,CAAA,GAAA;EAML,SAAA,IAAA,EA3DA,IA2Dc;EAUd,SAAA,IAAA,EApEA,IAoEA;EAEgB,SAAA,UAAA,EAAA,MAAA;EAAf,SAAA,UAAA,CAAA,EApEM,MAoEN,CAAA,MAAA,EAAA,OAAA,CAAA;EAGD,SAAA,OAAA,CAAA,EAAA,MAAA;CACG;AACI,KArEZ,wBAAA,GAqEY;EAEK,SAAA,OAAA,EAAA,MAAA;EACA,SAAA,UAAA,EAAA,MAAA;EACI,SAAA,UAAA,EAtEV,MAsEU,CAAA,MAAA,EAAA,OAAA,CAAA;CAAa;AAG9C;AAcA;;;;AAMiB,KArFL,kBAqFK,CAAA,aAAA,MAAA,EAAA,iBAAA,OAAA,EAAA,aAAA,MAAA,CAAA,GAjFb,sBAiFa,CAjFU,IAiFV,EAjFgB,IAiFhB,CAAA,GAAA,CAhFd,QAgFc,SAAA,IAAA,GAAA;EACC,SAAA,QAAA,EAAA,IAAA;EACC,SAAA,OAAA,CAAA,EAjFiC,aAiFjC;CACG,GAAA;EAAS,SAAA,QAAA,EAAA,KAAA;EAGd,SAAA,OAAA,CAAA,EAlFU,aAkFa;EAKvB,SAAA,gBAAoB,CAAA,EAtFD,6BAsFC;CAMhB,CAAA;;;;AAOA,UA7FJ,mBAAA,CA6FI;EAAf,SAAA,OAAA,EAAA,SAAA,MAAA,EAAA;EAFF,SAAA,IAAA,CAAA,EAAA,MAAA;;;;;AAQA,UA3Fa,QAAA,CA2Fb;EAFa,SAAA,OAAA,EAAA,SAAA,MAAA,EAAA;EAKqB,SAAA,IAAA,CAAA,EAAA,MAAA;;;;;AAGb,KAzFb,iBAAA,GAyFa;EACa,SAAA,IAAA,CAAA,EAAA,MAAA;EAAf,SAAA,QAAA,CAAA,EAxFD,iBAwFC;EAEH,SAAA,QAAA,CAAA,EAzFE,iBAyFF;CACD;;;;AAIO,UAxFT,aAAA,SAAsB,iBAwFb,CAAA;EACe,SAAA,OAAA,EAAA,SAAA,MAAA,EAAA;EAAf,SAAA,UAAA,EAAA;IACM,SAAA,KAAA,EAAA,MAAA;IAAuB,SAAA,OAAA,EAAA,SAAA,MAAA,EAAA;EAWtC,CAAA;EACyB,SAAA,UAAA,CAAA,EAAA,OAAA;EAAsB,SAAA,KAAA,CAAA,EAAA,OAAA;;AAAa,UA5F5D,iBA4F4D,CAAA,aAAA,MAAA,EAAA,gBA1F3D,MA0F2D,CAAA,MAAA,EA1F5C,kBA0F4C,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,mBAAA,SAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA;EAA3B,SAAA,IAAA,EAvFjC,IAuFiC;EACpB,SAAA,OAAA,EAvFV,OAuFU;EAAmB,SAAA,UAAA,CAAA,EAtFzB,UAsFyB;EAAM,SAAA,cAAA,CAAA,EAAA,MAAA;EAAU,SAAA,OAAA,EAAA,SApFpC,mBAoFoC,EAAA;EAA9B,SAAA,OAAA,EAAA,SAnFN,QAmFM,EAAA;EACL,SAAA,WAAA,EAAA,SAnFG,aAmFH,EAAA;;AAAgB,KAhFlC,kBAAA,GAgFkC;EAAnC,SAAA,EAAA,EAAA,MAAA;EAAkB,SAAA,WAAA,EAAA,KAAA,GAAA,KAAA,GAAA,KAAA,GAAA,KAAA;;;;EC5LhB,CAAA;EAGI,SAAA,OAAA,CAAA,EAAA;IAAyB,SAAA,KAAA,EAAA,MAAA;IACP,SAAA,UAAA,EAAA,SAAA,MAAA,EAAA;IAAf,SAAA,SAAA,EAAA,SAAA,MAAA,EAAA;EAAqC,CAAA;CAQ/C;AACC,UD6GM,iBC7GN,CAAA,aAAA,MAAA,EAAA,cAAA,MAAA,EAAA,eDgHM,MChHN,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,kBDiHS,MCjHT,CAAA,MAAA,EDiHwB,kBCjHxB,CAAA,CAAA,CAAA;EACC,SAAA,IAAA,EDkHK,IClHL;EACG,SAAA,KAAA,EDkHG,KClHH;EASA,SAAA,MAAA,ED0GI,MC1GJ;EACC,SAAA,SAAA,ED0GM,SC1GN;;AACQ,UD4GP,uBAAA,CC5GO;EAAO,SAAA,UAAA,EAAA,OAAA;EAAgB,SAAA,KAAA,EAAA,OAAA;;AAAP,UDiHvB,oBCjHuB,CAAA,eAAA,MAAA,GAAA,SAAA,GAAA,MAAA,GAAA,SAAA,EAAA,eDmHvB,MCnHuB,CAAA,MAAA,EDqHpC,iBCrHoC,CAAA,MAAA,EDuHlC,MCvHkC,CAAA,MAAA,EDuHnB,kBCvHmB,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,GD0HlC,MC1HkC,CAAA,KAAA,ED4HpC,iBC5HoC,CAAA,MAAA,ED8HlC,MC9HkC,CAAA,MAAA,ED8HnB,kBC9HmB,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,EAAA,eDkIvB,MClIuB,CAAA,MAAA,EDoIpC,iBCpIoC,CAAA,MAAA,EAAA,MAAA,EDoIF,MCpIE,CAAA,MAAA,EAAA,MAAA,CAAA,EDoIsB,MCpItB,CAAA,MAAA,EDoIqC,kBCpIrC,CAAA,CAAA,CAAA,GDqIlC,MCrIkC,CAAA,KAAA,EDuIpC,iBCvIoC,CAAA,MAAA,EAAA,MAAA,EDuIF,MCvIE,CAAA,MAAA,EAAA,MAAA,CAAA,EDuIsB,MCvItB,CAAA,MAAA,EDuIqC,kBCvIrC,CAAA,CAAA,CAAA,EAAA,oBAAA,MAAA,GAAA,SAAA,GAAA,MAAA,GAAA,SAAA,EAAA,uBD0If,MC1Ie,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,qBD2IjB,MC3IiB,CAAA,MAAA,ED2IF,MC3IE,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAA+B,SAAA,MAAA,CAAA,ED6InD,MC7ImD;EAAlE,SAAA,MAAA,ED8Ic,MC9Id;EAaK,SAAA,MAAA,EDkIS,MClIT;EAEK,SAAA,WAAA,CAAA,EDiIU,WCjIV;EACA,SAAA,cAAA,CAAA,EDiIa,cCjIb;EAGM,SAAA,YAAA,CAAA,ED+HK,YC/HL;EAED,SAAA,YAAA,CAAA,ED8HM,MC9HN,CAAA,MAAA,ED8HqB,wBC9HrB,CAAA;EAIF,SAAA,kBAAA,CAAA,ED2Hc,uBC3Hd;EAAM;;;;;;;EAOd,SAAA,mBAAA,CAAA,EAAA,SAAA,MAAA,EAAA;;AAGK,UD4HE,aC5HF,CAAA,aAAA,MAAA,EAAA,iBAAA,OAAA,EAAA,aAAA,MAAA,CAAA,CAAA;EAGA,QAAA,CAAA,cAAA,OAAA,CAAA,CAAA,KAAA,CAAA,ED0H2B,KC1H3B,CAAA,ED0HmC,aC1HnC,CD0HiD,IC1HjD,ED0HuD,KC1HvD,ED0H8D,IC1H9D,CAAA;EAKM,IAAA,CAAA,WAAA,MAAA,CAAA,CAAA,EAAA,EDsHS,ECtHT,CAAA,EDsHc,aCtHd,CDsH4B,ICtH5B,EDsHkC,QCtHlC,EDsH4C,ECtH5C,CAAA;EAED,KAAA,EAAA,EDqHT,kBCrHS,CDqHU,ICrHV,EDqHgB,QCrHhB,EDqH0B,ICrH1B,CAAA;;;;cAvEP,uEAGI,yBAAyB,wCACtB,eAAe,sBAAsB;;;EDA7C,iBAAA,OAAiB;EAUjB,iBAAA,UAAoB;EAU3B,WAAA,CAAA,IAAA,ECZK,IDYL,EAAA,KAAsB,ECXhB,KDWgB,EAAA,MAAA,CAAA,ECVf,MDUe,EAAA,SAAA,CAAA,ECTZ,SDSY;EACV,KAAA,CAAA,kBAAA,MAAA,EAAA,mBAAA,MAAA,CAAA,CAAA,SAAA,ECDF,SDCE,EAAA,UAAA,ECAD,UDAC,CAAA,ECCZ,YDDY,CCCC,IDDD,ECCO,KDDP,ECCc,MDDd,GCCuB,MDDvB,CCC8B,SDD9B,ECCyC,UDDzC,CAAA,ECCsD,SDDtD,CAAA;EACA,QAAA,CAAA,qBAAA,MAAA,EAAA,gBAAA,MAAA,EAAA,gBAAA,MAAA,CAAA,CAAA,IAAA,ECaP,YDbO,EAAA,OAAA,EAAA;IAEO,OAAA,ECaT,ODbS;IAAM,OAAA,ECcf,ODde;IAIlB,WAAA,EAAA,KAAA,GAAA,KAAwB,GAAA,KAAA;IAWxB,EAAA,EAAA;MAIe,WAAA,ECFN,KDEM;MAAM,aAAA,EAAA,SAAA,MAAA,EAAA;MAA7B,UAAA,ECAgB,ODAhB;MACD,YAAA,EAAA,SAAA,MAAA,EAAA;IACiD,CAAA;EAGzB,CAAA,CAAA,ECDtB,YDCsB,CCDT,IDCS,ECDH,KDCG,ECDI,MDCJ,ECDY,SDCZ,GCDwB,MDCxB,CCD+B,YDC/B,ECD6C,kBDC7C,CAAA,CAAA;EACS,QAAA,CAAA,qBAAA,MAAA,EAAA,gBAAA,MAAA,EAAA,gBAAA,MAAA,EAAA,sBAAA,MAAA,CAAA,CAAA,IAAA,ECK1B,YDL0B,EAAA,OAAA,EAAA;IAA6B,OAAA,ECOlD,ODPkD;IAMhD,OAAA,ECEF,ODFE;IAQA,WAAQ,EAAA,KAAA;IAQb,OAAA,EAAA;MASK,KAAA,ECpBF,aDoBwB;MAUtB,aAAiB,EAAA,SAAA,MAAA,EAAA;MAED,YAAA,EAAA,SAAA,MAAA,EAAA;IAAf,CAAA;IAGD,EAAA,EAAA;MACG,WAAA,EC/BC,KD+BD;MACI,aAAA,EAAA,SAAA,MAAA,EAAA;MAEK,UAAA,EChCT,aDgCS;MACA,YAAA,EAAA,SAAA,MAAA,EAAA;IACI,CAAA;EAAa,CAAA,CAAA,EC9BzC,YD8ByC,CC9B5B,ID8B4B,EC9BtB,KD8BsB,EC9Bf,MD8Be,EC9BP,SD8BO,GC9BK,MD8BL,CC9BY,YD8BZ,EC9B0B,kBD8B1B,CAAA,CAAA;EAGlC,KAAA,CAAA,CAAA,ECyCD,iBDzCmB,CCyCD,IDzCC,ECyCK,KDzCL,ECyCY,MDzCZ,ECyCoB,SDzCpB,CAAA;AAc9B;;;;;AAtHA;AAUA,UEDU,qBFCsB,CAAA,mBEDmB,oBFIrB,CAAA,CAAA;EAOzB,IAAA,EEVG,UFUH;EACY,QAAA,EAAA,IAAA;EACA,UAAA,CAAA,EEVF,MFUE,CAAA,MAAA,EAAA,OAAA,CAAA;EAEO,OAAA,CAAA,EEXZ,aFWY;;AAIxB;AAWA;;;UEnBU,wBFuBN,CAAA,mBEvBkD,oBFuBlD,CAAA,CAAA;EACD,IAAA,EEvBK,UFuBL;EACiD,QAAA,CAAA,EAAA,KAAA;EAGzB,UAAA,CAAA,EEzBZ,MFyBY,CAAA,MAAA,EAAA,OAAA,CAAA;EACS,OAAA,CAAA,EEzBxB,aFyBwB;;AAMpC,KE5BK,sBF4B+B,CAAA,mBE5BW,oBF4BX,CAAA,GE5BmC,IF4BnC,CE3BlC,wBF2BkC,CE3BT,UF2BS,CAAA,EAAA,SAAA,GAAA,UAAA,CAAA,GAAA;EAQnB;AAQjB;AASA;AAUA;EAEiC,QAAA,CAAA,EAAA,KAAA;EAAf,SAAA,EExDL,6BFwDK;CAGD;;;;;;AAM6B,iBEpC9B,WFoC8B,CAAA,aAAA,MAAA,CAAA,CAAA,IAAA,EEpCS,IFoCT,CAAA,EEpCgB,YFoChB,CEpC6B,IFoC7B,CAAA;AAG9C;AAcA;;;AAIoB,cEjDP,YFiDO,CAAA,aAAA,MAAA,EAAA,gBE/CF,MF+CE,CAAA,MAAA,EE/Ca,kBF+Cb,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,GE/C4D,MF+C5D,CAAA,KAAA,EE7ChB,kBF6CgB,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,mBAAA,SAAA,MAAA,EAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAEH,iBAAA,MAAA;EACC;EACC,WAAA,CAAA,IAAA,EEzCT,IFyCS,EAAA,OAAA,EExCN,OFwCM,EAAA,UAAA,EEvCH,UFuCG,EAAA,cAAA,EAAA,MAAA,GAAA,SAAA,EAAA,OAAA,EAAA,SErCG,mBFqCH,EAAA,EAAA,OAAA,EAAA,SEpCG,QFoCH,EAAA,EAAA,WAAA,EAAA,SEnCO,aFmCP,EAAA;EACG,YAAA,KAAA,CAAA;EAAS,YAAA,QAAA,CAAA;EAGd,YAAA,WAAA,CAAA;EAKA;EAMI,MAAA,CAAA,gBAAA,MAAA,EAAA,mBExB+B,oBFwB/B,CAAA,CAAA,IAAA,EEvBX,OFuBW,EAAA,OAAA,EEtBR,qBFsBQ,CEtBc,UFsBd,CAAA,CAAA,EErBhB,YFqBgB,CEpBjB,IFoBiB,EEnBjB,OFmBiB,GEnBP,MFmBO,CEnBA,OFmBA,EEnBS,kBFmBT,CEnB4B,OFmB5B,EAAA,IAAA,EEnB2C,UFmB3C,CAAA,SAAA,CAAA,CAAA,CAAA,EElBjB,UFkBiB,CAAA;EAAf;;;;EAOA,MAAA,CAAA,gBAAA,MAAA,EAAA,mBElB8C,oBFkB9C,CAAA,CAAA,IAAA,EEjBI,OFiBJ,EAAA,OAAA,EEhBO,wBFgBP,CEhBgC,UFgBhC,CAAA,CAAA,EEfD,YFeC,CEdF,IFcE,EEbF,OFaE,GEbQ,MFaR,CEbe,OFaf,EEbwB,kBFaxB,CEb2C,OFa3C,EAAA,KAAA,EEb2D,UFa3D,CAAA,SAAA,CAAA,CAAA,CAAA,EEZF,UFYE,CAAA;EAFF,SAAA,CAAA,gBAAA,MAAA,EAAA,mBEOmD,oBFPnD,CAAA,CAAA,IAAA,EEQM,OFRN,EAAA,OAAA,EESS,sBFTT,CESgC,UFThC,CAAA,CAAA,EEUC,YFVD,CEWA,IFXA,EEYA,OFZA,GEYU,MFZV,CEYiB,OFZjB,EEY0B,kBFZ1B,CEY6C,OFZ7C,EAAA,KAAA,EEY6D,UFZ7D,CAAA,SAAA,CAAA,CAAA,CAAA,EEaA,UFbA,CAAA;EAFE,QAAA,cAAA;EAUgC,UAAA,CAAA,WAAA,SAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EE2DzB,EF3DyB,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EE6DjC,YF7DiC,CE6DpB,IF7DoB,EE6Dd,OF7Dc,EE6DL,EF7DK,CAAA;EAAuC,MAAA,CAAA,OAAA,EAAA,SAAA,MAAA,EAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EEyExB,YFzEwB,CEyEX,IFzEW,EEyEL,OFzEK,EEyEI,UFzEJ,CAAA;EAAf,KAAA,CAAA,OAAA,EAAA,SAAA,MAAA,EAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EEsFV,YFtFU,CEsFG,IFtFH,EEsFS,OFtFT,EEsFkB,UFtFlB,CAAA;EAA1D,UAAA,CAAA,OAAA,EAAA,SAAA,MAAA,EAAA,EAAA,UAAA,EAAA;IAFa,KAAA,EAAA,MAAA;IAKqB,OAAA,EAAA,SAAA,MAAA,EAAA;EAAuC,CAAA,EAAA,IAFvE,CAEuE,EAAA,MAAA,GAAA,CEmGxD,iBFnGwD,GAAA;IAAf,UAAA,CAAA,EAAA,OAAA;IAA1D,KAAA,CAAA,EAAA,OAAA;EAFE,CAAA,CAAA,CAAA,EEsGD,YFtGC,CEsGY,IFtGZ,EEsGkB,OFtGlB,EEsG2B,UFtG3B,CAAA;EAKmB,KAAA,CAAA,CAAA,EEuHd,iBFvHc,CEuHI,IFvHJ,EEuHU,OFvHV,EEuHmB,UFvHnB,CAAA;;;;AAhKb,cGMC,eHNgB,CAAA,eAAA,MAAA,GAAA,SAAA,GAAA,SAAA,EAAA,eGQZ,MHRY,CAAA,MAAA,EGUzB,iBHVyB,CAAA,MAAA,EGYvB,MHZuB,CAAA,MAAA,EGYR,kBHZQ,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,GGevB,MHfuB,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,eGgBZ,MHhBY,CAAA,MAAA,EGkBzB,iBHlByB,CAAA,MAAA,EAAA,MAAA,EGkBS,MHlBT,CAAA,MAAA,EAAA,MAAA,CAAA,EGkBiC,MHlBjC,CAAA,MAAA,EGkBgD,kBHlBhD,CAAA,CAAA,CAAA,GGmBvB,MHnBuB,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,oBAAA,MAAA,GAAA,SAAA,GAAA,SAAA,EAAA,uBGqBJ,MHrBI,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,qBGsBN,MHtBM,CAAA,MAAA,EGsBS,MHtBT,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAUjB,mBAAA,KAAoB,EGcJ,oBHXE,CGY1B,MHZ0B,EGa1B,MHb0B,EGc1B,MHd0B,EGe1B,WHf0B,EGgB1B,cHhB0B,EGiB1B,YHjB0B,CAAA;EAOzB,WAAA,CAAA,KAAsB,CAAtB,EGcO,oBHde,CGcM,MHdN,EGcc,MHdd,EGcsB,MHdtB,EGc8B,WHd9B,EGc2C,cHd3C,EGc2D,YHd3D,CAAA;EACV,MAAA,CAAA,UAAA,MAAA,CAAA,CAAA,OAAA,EGwBJ,aHxBI,CAAA,MAAA,EGwBkB,CHxBlB,CAAA,CAAA,EGyBZ,eHzBY,CGyBI,CHzBJ,EGyBO,MHzBP,EGyBe,MHzBf,EGyBuB,WHzBvB,EGyBoC,cHzBpC,EGyBoD,YHzBpD,CAAA;EACA,YAAA,CAAA,UG+BQ,MH/BR,CAAA,MAAA,EG+BuB,MH/BvB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,YAAA,EGgCC,CHhCD,CAAA,EGiCZ,eHjCY,CGiCI,MHjCJ,EGiCY,MHjCZ,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,KAAA,EAAA,KAAA,CAAA,EGwFoC,MHxFpC,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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"}
|
|
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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XE,CGY1B,MHZ0B,EGa1B,MHb0B,EGc1B,MHd0B,EGe1B,WHf0B,EGgB1B,cHhB0B,EGiB1B,YHjB0B,CAAA;EAOzB,WAAA,CAAA,KAAsB,CAAtB,EGcO,oBHde,CGcM,MHdN,EGcc,MHdd,EGcsB,MHdtB,EGc8B,WHd9B,EGc2C,cHd3C,EGc2D,YHd3D,CAAA;EACV,MAAA,CAAA,UAAA,MAAA,CAAA,CAAA,OAAA,EGwBJ,aHxBI,CAAA,MAAA,EGwBkB,CHxBlB,CAAA,CAAA,EGyBZ,eHzBY,CGyBI,CHzBJ,EGyBO,MHzBP,EGyBe,MHzBf,EGyBuB,WHzBvB,EGyBoC,cHzBpC,EGyBoD,YHzBpD,CAAA;EACA,YAAA,CAAA,UG+BQ,MH/BR,CAAA,MAAA,EG+BuB,MH/BvB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,YAAA,EGgCC,CHhCD,CAAA,EGiCZ,eHjCY,CGiCI,MHjCJ,EGiCY,MHjCZ,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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"}
|
package/dist/index.mjs
CHANGED
|
@@ -54,6 +54,9 @@ var ModelBuilder = class ModelBuilder {
|
|
|
54
54
|
|
|
55
55
|
//#endregion
|
|
56
56
|
//#region src/table-builder.ts
|
|
57
|
+
function isIndexDef(value) {
|
|
58
|
+
return !Array.isArray(value);
|
|
59
|
+
}
|
|
57
60
|
/**
|
|
58
61
|
* Creates a new table builder with the given name.
|
|
59
62
|
* This is the preferred way to create a TableBuilder - it ensures
|
|
@@ -128,11 +131,16 @@ var TableBuilder = class TableBuilder {
|
|
|
128
131
|
} : { columns };
|
|
129
132
|
return new TableBuilder(this._state.name, this._state.columns, this._state.primaryKey, this._state.primaryKeyName, [...this._state.uniques, constraint], this._state.indexes, this._state.foreignKeys);
|
|
130
133
|
}
|
|
131
|
-
index(
|
|
132
|
-
const indexDef =
|
|
133
|
-
columns,
|
|
134
|
-
name
|
|
135
|
-
|
|
134
|
+
index(columnsOrIndexDef, nameOrOptions) {
|
|
135
|
+
const indexDef = isIndexDef(columnsOrIndexDef) ? columnsOrIndexDef : {
|
|
136
|
+
columns: columnsOrIndexDef,
|
|
137
|
+
...typeof nameOrOptions === "string" ? { name: nameOrOptions } : {},
|
|
138
|
+
...typeof nameOrOptions === "object" && nameOrOptions !== null ? {
|
|
139
|
+
...nameOrOptions.name !== void 0 ? { name: nameOrOptions.name } : {},
|
|
140
|
+
...nameOrOptions.using !== void 0 ? { using: nameOrOptions.using } : {},
|
|
141
|
+
...nameOrOptions.config !== void 0 ? { config: nameOrOptions.config } : {}
|
|
142
|
+
} : {}
|
|
143
|
+
};
|
|
136
144
|
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
145
|
}
|
|
138
146
|
foreignKey(columns, references, opts) {
|
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 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<never, never>, 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;\ntype IndexOptions = {\n readonly name?: string;\n readonly using?: string;\n readonly config?: Record<string, unknown>;\n};\n\nfunction isIndexDef(value: readonly string[] | IndexDef): value is IndexDef {\n return !Array.isArray(value);\n}\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 index(\n columns: readonly string[],\n options?: IndexOptions,\n ): TableBuilder<Name, Columns, PrimaryKey>;\n index(indexDef: IndexDef): TableBuilder<Name, Columns, PrimaryKey>;\n index(\n columnsOrIndexDef: readonly string[] | IndexDef,\n nameOrOptions?: string | IndexOptions,\n ): TableBuilder<Name, Columns, PrimaryKey> {\n const indexDef: IndexDef = isIndexDef(columnsOrIndexDef)\n ? columnsOrIndexDef\n : {\n columns: columnsOrIndexDef,\n ...(typeof nameOrOptions === 'string' ? { name: nameOrOptions } : {}),\n ...(typeof nameOrOptions === 'object' && nameOrOptions !== null\n ? {\n ...(nameOrOptions.name !== undefined ? { name: nameOrOptions.name } : {}),\n ...(nameOrOptions.using !== undefined ? { using: nameOrOptions.using } : {}),\n ...(nameOrOptions.config !== undefined ? { config: nameOrOptions.config } : {}),\n }\n : {}),\n };\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, 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<never, never>, 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.73",
|
|
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/contract": "0.3.0-dev.
|
|
10
|
-
"@prisma-next/utils": "0.3.0-dev.
|
|
9
|
+
"@prisma-next/contract": "0.3.0-dev.73",
|
|
10
|
+
"@prisma-next/utils": "0.3.0-dev.73"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"tsdown": "0.18.4",
|
package/src/builder-state.ts
CHANGED
|
@@ -70,6 +70,15 @@ export interface UniqueConstraintDef {
|
|
|
70
70
|
export interface IndexDef {
|
|
71
71
|
readonly columns: readonly string[];
|
|
72
72
|
readonly name?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Optional index access method. Extension-specific methods are represented
|
|
75
|
+
* as strings and interpreted by the owning extension package.
|
|
76
|
+
*/
|
|
77
|
+
readonly using?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Optional extension-owned index configuration payload.
|
|
80
|
+
*/
|
|
81
|
+
readonly config?: Record<string, unknown>;
|
|
73
82
|
}
|
|
74
83
|
|
|
75
84
|
/**
|
package/src/table-builder.ts
CHANGED
|
@@ -49,6 +49,15 @@ type ColumnOptions<Descriptor extends ColumnTypeDescriptor> =
|
|
|
49
49
|
| NonNullableColumnOptions<Descriptor>;
|
|
50
50
|
|
|
51
51
|
type NullableFromOptions<TOptions> = TOptions extends { nullable: true } ? true : false;
|
|
52
|
+
type IndexOptions = {
|
|
53
|
+
readonly name?: string;
|
|
54
|
+
readonly using?: string;
|
|
55
|
+
readonly config?: Record<string, unknown>;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
function isIndexDef(value: readonly string[] | IndexDef): value is IndexDef {
|
|
59
|
+
return !Array.isArray(value);
|
|
60
|
+
}
|
|
52
61
|
|
|
53
62
|
interface TableBuilderInternalState<
|
|
54
63
|
Name extends string,
|
|
@@ -244,8 +253,30 @@ export class TableBuilder<
|
|
|
244
253
|
);
|
|
245
254
|
}
|
|
246
255
|
|
|
247
|
-
index(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey
|
|
248
|
-
|
|
256
|
+
index(columns: readonly string[], name?: string): TableBuilder<Name, Columns, PrimaryKey>;
|
|
257
|
+
index(
|
|
258
|
+
columns: readonly string[],
|
|
259
|
+
options?: IndexOptions,
|
|
260
|
+
): TableBuilder<Name, Columns, PrimaryKey>;
|
|
261
|
+
index(indexDef: IndexDef): TableBuilder<Name, Columns, PrimaryKey>;
|
|
262
|
+
index(
|
|
263
|
+
columnsOrIndexDef: readonly string[] | IndexDef,
|
|
264
|
+
nameOrOptions?: string | IndexOptions,
|
|
265
|
+
): TableBuilder<Name, Columns, PrimaryKey> {
|
|
266
|
+
const indexDef: IndexDef = isIndexDef(columnsOrIndexDef)
|
|
267
|
+
? columnsOrIndexDef
|
|
268
|
+
: {
|
|
269
|
+
columns: columnsOrIndexDef,
|
|
270
|
+
...(typeof nameOrOptions === 'string' ? { name: nameOrOptions } : {}),
|
|
271
|
+
...(typeof nameOrOptions === 'object' && nameOrOptions !== null
|
|
272
|
+
? {
|
|
273
|
+
...(nameOrOptions.name !== undefined ? { name: nameOrOptions.name } : {}),
|
|
274
|
+
...(nameOrOptions.using !== undefined ? { using: nameOrOptions.using } : {}),
|
|
275
|
+
...(nameOrOptions.config !== undefined ? { config: nameOrOptions.config } : {}),
|
|
276
|
+
}
|
|
277
|
+
: {}),
|
|
278
|
+
};
|
|
279
|
+
|
|
249
280
|
return new TableBuilder(
|
|
250
281
|
this._state.name,
|
|
251
282
|
this._state.columns,
|