@orchestr-sh/orchestr 1.5.10 → 1.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +275 -977
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts +5 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts +20 -0
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.js +57 -0
- package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts +97 -0
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMany.js +189 -0
- package/dist/Database/Ensemble/Relations/MorphMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMap.d.ts +59 -0
- package/dist/Database/Ensemble/Relations/MorphMap.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMap.js +84 -0
- package/dist/Database/Ensemble/Relations/MorphMap.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts +93 -0
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphOne.js +179 -0
- package/dist/Database/Ensemble/Relations/MorphOne.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts +98 -0
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphTo.js +214 -0
- package/dist/Database/Ensemble/Relations/MorphTo.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts +73 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.js +164 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts +29 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.js +58 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/index.d.ts +6 -0
- package/dist/Database/Ensemble/Relations/index.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/index.js +14 -1
- package/dist/Database/Ensemble/Relations/index.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,11 @@ export type BelongsToAccessor<TRelated extends import('../Ensemble').Ensemble, T
|
|
|
41
41
|
export type HasOneAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/HasOne').HasOne<TRelated, TParent>);
|
|
42
42
|
export type HasManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/HasMany').HasMany<TRelated, TParent>);
|
|
43
43
|
export type BelongsToManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/BelongsToMany').BelongsToMany<TRelated, TParent>);
|
|
44
|
+
export type MorphOneAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/MorphOne').MorphOne<TRelated, TParent>);
|
|
45
|
+
export type MorphManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphMany').MorphMany<TRelated, TParent>);
|
|
46
|
+
export type MorphToAccessor<TRelated extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/MorphTo').MorphTo<any>);
|
|
47
|
+
export type MorphToManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphToMany').MorphToMany<TRelated, TParent>);
|
|
48
|
+
export type MorphedByManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphedByMany').MorphedByMany<TRelated, TParent>);
|
|
44
49
|
/**
|
|
45
50
|
* Decorator to convert a relationship method into a dynamic property
|
|
46
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4GH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAwDrE;AAED;;GAEG;AACH,8BAAsB,wBAAwB;IAC5C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;CAGzC;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IAC3H,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,wBAAwB,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9G,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IACxH,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,qBAAqB,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAExG,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IACzH,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,sBAAsB,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvG,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IAC/H,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,4BAA4B,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,OA2ExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,GACxB,IAAI,CA0BN"}
|
|
1
|
+
{"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA4GH,oDAwDC;
|
|
1
|
+
{"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA4GH,oDAwDC;AAuFD,0CA2EC;AAMD,sDA8BC;AAxWD,4CAAwC;AAExC;;GAEG;AACH,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,KAAK,IAAI,KAAK,YAAY,oBAAQ,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,cAAyB;IACxD,0DAA0D;IAC1D,MAAM,EAAE,GAAQ,UAAS,GAAG,IAAW;QACrC,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,yEAAyE;IACzE,EAAE,CAAC,IAAI,GAAG,UAAS,WAAiB,EAAE,UAAgB;QACpD,OAAO,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,EAAE,CAAC,KAAK,GAAG,UAAS,UAAgB;QAClC,OAAO,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,EAAE,CAAC,OAAO,GAAG,UAAS,SAAe;QACnC,OAAO,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;IAC1C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC5C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACxC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG;IACvB,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc;IACjE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe;IAC1D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa;IACnE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa;CAChE,CAAC;AAEF;;GAEG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,0CAA0C;IAC1C,IAAI,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,YAAY;IACZ,UAAU;IACV,WAAW;IACX,QAAQ;IACR,oBAAoB;IACpB,OAAO;IACP,YAAY;IACZ,cAAc;IACd,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,kBAAkB;CACnB,CAAC,CAAC;AAEH,SAAgB,oBAAoB,CAAmB,QAAW;IAChE,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAW,EAAE,QAAyB,EAAE,QAAa;YACvD,gEAAgE;YAChE,8DAA8D;YAC9D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAkB,CAAC,EAAE,CAAC;gBAChF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YAED,mDAAmD;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE/B,2DAA2D;YAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;YAExD,gFAAgF;YAChF,IAAI,CAAC,cAAc,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,uCAAuC;YACvC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,gEAAgE;YAChE,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,8CAA8C;YAC9C,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7D,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,6EAA6E;YAC7E,6EAA6E;YAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAEhC,yEAAyE;YACzE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;gBACrB,sDAAsD;gBACtD,uEAAuE;gBACvE,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;YAED,wDAAwD;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mDAAmD;QACnD,GAAG,CAAC,MAAW,EAAE,QAAyB,EAAE,KAAU,EAAE,QAAa;YACnE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAsB,wBAAwB;IAC5C;;;OAGG;IACO,sBAAsB;QAC9B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AARD,4DAQC;AAoDD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,eAAe,CAAC,KAAU,EAAE,OAAa;IACvD,oEAAoE;IACpE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAChC,MAAM,cAAc,GAAG,KAAK,CAAC;YAE7B,kCAAkC;YAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;gBACtC,GAAG;oBACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE3C,MAAM,EAAE,GAAQ,UAAS,GAAG,IAAW;wBACrC,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC;oBAEF,EAAE,CAAC,IAAI,GAAG,UAAS,OAAa,EAAE,MAAY;wBAC5C,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACrD,CAAC,CAAC;oBAEF,EAAE,CAAC,KAAK,GAAG,UAAS,MAAY;wBAC9B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC,CAAC;oBAEF,EAAE,CAAC,OAAO,GAAG,UAAS,SAAe;wBACnC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAClD,CAAC,CAAC;oBAEF,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAqD;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,WAAW,GAAG,OAAO,CAAC;IAC5B,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAuB,CAAC;IAEtD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;QAC1E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,OAAO,UAAU,CAAC,KAAK,CAAC;QACxB,OAAO,UAAU,CAAC,QAAQ,CAAC;QAE3B,UAAU,CAAC,GAAG,GAAG;YACf,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3C,MAAM,EAAE,GAAQ,UAAS,GAAG,IAAW;gBACrC,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YAEF,EAAE,CAAC,IAAI,GAAG,UAAS,OAAa,EAAE,MAAY;gBAC5C,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC,CAAC;YAEF,EAAE,CAAC,KAAK,GAAG,UAAS,MAAY;gBAC9B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC,CAAC;YAEF,EAAE,CAAC,OAAO,GAAG,UAAS,SAAe;gBACnC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC,CAAC;YAEF,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,MAAS,EACT,YAAoB,EACpB,cAAyB;IAEzB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;QAC1C,GAAG;YACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3C,MAAM,EAAE,GAAQ,UAAS,GAAG,IAAW;gBACrC,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YAEF,EAAE,CAAC,IAAI,GAAG,UAAS,OAAa,EAAE,MAAY;gBAC5C,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC,CAAC;YAEF,EAAE,CAAC,KAAK,GAAG,UAAS,MAAY;gBAC9B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC,CAAC;YAEF,EAAE,CAAC,OAAO,GAAG,UAAS,SAAe;gBACnC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC,CAAC;YAEF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -37,6 +37,26 @@ export declare abstract class HasRelationshipsMixin {
|
|
|
37
37
|
* Define a many-to-many relationship
|
|
38
38
|
*/
|
|
39
39
|
protected belongsToMany<TRelated extends Ensemble>(related: new () => TRelated, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string, relation?: string): BelongsToMany<TRelated, any>;
|
|
40
|
+
/**
|
|
41
|
+
* Define a polymorphic one-to-one relationship
|
|
42
|
+
*/
|
|
43
|
+
protected morphOne<TRelated extends Ensemble>(related: new () => TRelated, name: string, type?: string | null, id?: string | null, localKey?: string): import('../Relations/MorphOne').MorphOne<TRelated, any>;
|
|
44
|
+
/**
|
|
45
|
+
* Define a polymorphic one-to-many relationship
|
|
46
|
+
*/
|
|
47
|
+
protected morphMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, type?: string | null, id?: string | null, localKey?: string): import('../Relations/MorphMany').MorphMany<TRelated, any>;
|
|
48
|
+
/**
|
|
49
|
+
* Define a polymorphic inverse relationship
|
|
50
|
+
*/
|
|
51
|
+
protected morphTo(name: string, type?: string, id?: string, ownerKey?: string): import('../Relations/MorphTo').MorphTo<any>;
|
|
52
|
+
/**
|
|
53
|
+
* Define a polymorphic many-to-many relationship
|
|
54
|
+
*/
|
|
55
|
+
protected morphToMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string, inverse?: boolean): import('../Relations/MorphToMany').MorphToMany<TRelated, any>;
|
|
56
|
+
/**
|
|
57
|
+
* Define the inverse of a polymorphic many-to-many relationship
|
|
58
|
+
*/
|
|
59
|
+
protected morphedByMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string): import('../Relations/MorphedByMany').MorphedByMany<TRelated, any>;
|
|
40
60
|
/**
|
|
41
61
|
* Get the joining table name for a many-to-many relation
|
|
42
62
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasRelationships.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HasRelationships.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,63 @@ class HasRelationshipsMixin {
|
|
|
68
68
|
const finalRelatedKey = relatedKey || instance.getKeyName();
|
|
69
69
|
return new BelongsToMany_1.BelongsToMany(instance.newQuery(), this, table, foreignPivotKey, relatedPivotKey, finalParentKey, finalRelatedKey, relation || '');
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Define a polymorphic one-to-one relationship
|
|
73
|
+
*/
|
|
74
|
+
morphOne(related, name, type, id, localKey) {
|
|
75
|
+
const instance = new related();
|
|
76
|
+
const { MorphOne } = require('../Relations/MorphOne');
|
|
77
|
+
const finalLocalKey = localKey || this.getKeyName();
|
|
78
|
+
return new MorphOne(instance.newQuery(), this, name, type, id, finalLocalKey);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Define a polymorphic one-to-many relationship
|
|
82
|
+
*/
|
|
83
|
+
morphMany(related, name, type, id, localKey) {
|
|
84
|
+
const instance = new related();
|
|
85
|
+
const { MorphMany } = require('../Relations/MorphMany');
|
|
86
|
+
const finalLocalKey = localKey || this.getKeyName();
|
|
87
|
+
return new MorphMany(instance.newQuery(), this, name, type, id, finalLocalKey);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Define a polymorphic inverse relationship
|
|
91
|
+
*/
|
|
92
|
+
morphTo(name, type, id, ownerKey) {
|
|
93
|
+
const { MorphTo } = require('../Relations/MorphTo');
|
|
94
|
+
const finalType = type || `${name}_type`;
|
|
95
|
+
const finalId = id || `${name}_id`;
|
|
96
|
+
const finalOwnerKey = ownerKey || 'id';
|
|
97
|
+
// MorphTo needs special handling - creates query builder dynamically
|
|
98
|
+
return new MorphTo(this.newQuery(), this, finalId, finalType, finalOwnerKey, name);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Define a polymorphic many-to-many relationship
|
|
102
|
+
*/
|
|
103
|
+
morphToMany(related, name, table, foreignPivotKey, relatedPivotKey, parentKey, relatedKey, inverse = false) {
|
|
104
|
+
const instance = new related();
|
|
105
|
+
const { MorphToMany } = require('../Relations/MorphToMany');
|
|
106
|
+
const finalTable = table || `${name}s`;
|
|
107
|
+
const finalForeignPivotKey = foreignPivotKey || `${name}_id`;
|
|
108
|
+
const finalRelatedPivotKey = relatedPivotKey || instance.getForeignKey();
|
|
109
|
+
const morphType = `${name}_type`;
|
|
110
|
+
const finalParentKey = parentKey || this.getKeyName();
|
|
111
|
+
const finalRelatedKey = relatedKey || instance.getKeyName();
|
|
112
|
+
return new MorphToMany(instance.newQuery(), this, name, finalTable, finalForeignPivotKey, finalRelatedPivotKey, morphType, finalParentKey, finalRelatedKey, '', inverse);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Define the inverse of a polymorphic many-to-many relationship
|
|
116
|
+
*/
|
|
117
|
+
morphedByMany(related, name, table, foreignPivotKey, relatedPivotKey, parentKey, relatedKey) {
|
|
118
|
+
const instance = new related();
|
|
119
|
+
const { MorphedByMany } = require('../Relations/MorphedByMany');
|
|
120
|
+
const finalTable = table || `${name}s`;
|
|
121
|
+
const finalForeignPivotKey = foreignPivotKey || `${name}_id`;
|
|
122
|
+
const finalRelatedPivotKey = relatedPivotKey || instance.getForeignKey();
|
|
123
|
+
const morphType = `${name}_type`;
|
|
124
|
+
const finalParentKey = parentKey || this.getKeyName();
|
|
125
|
+
const finalRelatedKey = relatedKey || instance.getKeyName();
|
|
126
|
+
return new MorphedByMany(instance.newQuery(), this, name, finalTable, finalForeignPivotKey, finalRelatedPivotKey, morphType, finalParentKey, finalRelatedKey, '');
|
|
127
|
+
}
|
|
71
128
|
/**
|
|
72
129
|
* Get the joining table name for a many-to-many relation
|
|
73
130
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasRelationships.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HasRelationships.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,oDAAiD;AACjD,gDAA6C;AAC7C,kDAA+C;AAC/C,sDAAmD;AACnD,8DAA2D;AAU3D,MAAsB,qBAAqB;IACzC;;OAEG;IACO,SAAS,GAAwB,EAAE,CAAC;IAE9C;;OAEG;IACO,MAAM,CACd,OAA2B,EAC3B,UAAmB,EACnB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAE/B,MAAM,eAAe,GAAG,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,QAAQ,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAE7D,OAAO,IAAI,eAAM,CACf,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,eAAe,EACf,aAAa,CACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,OAAO,CACf,OAA2B,EAC3B,UAAmB,EACnB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAE/B,MAAM,eAAe,GAAG,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,QAAQ,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAE7D,OAAO,IAAI,iBAAO,CAChB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,eAAe,EACf,aAAa,CACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,SAAS,CACjB,OAA2B,EAC3B,UAAmB,EACnB,QAAiB,EACjB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,wDAAwD;YACxD,mEAAmE;YACnE,wEAAwE;YACxE,UAAU,GAAG,YAAY,GAAG,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAExD,OAAO,IAAI,qBAAS,CAClB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,aAAa,CACrB,OAA2B,EAC3B,KAAc,EACd,eAAwB,EACxB,eAAwB,EACxB,SAAkB,EAClB,UAAmB,EACnB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAE/B,iDAAiD;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,2CAA2C;QAC3C,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAE1D,4CAA4C;QAC5C,eAAe,GAAG,eAAe,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAE9D,qBAAqB;QACrB,MAAM,cAAc,GAAG,SAAS,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAE/D,sBAAsB;QACtB,MAAM,eAAe,GAAG,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE5D,OAAO,IAAI,6BAAa,CACtB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,KAAK,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,QAAQ,CAChB,OAA2B,EAC3B,IAAY,EACZ,IAAoB,EACpB,EAAkB,EAClB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,QAAQ,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAE7D,OAAO,IAAI,QAAQ,CACjB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,aAAa,CACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,SAAS,CACjB,OAA2B,EAC3B,IAAY,EACZ,IAAoB,EACpB,EAAkB,EAClB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,QAAQ,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAE7D,OAAO,IAAI,SAAS,CAClB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,aAAa,CACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,OAAO,CACf,IAAY,EACZ,IAAa,EACb,EAAW,EACX,QAAiB;QAEjB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC;QACzC,MAAM,OAAO,GAAG,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC;QACnC,MAAM,aAAa,GAAG,QAAQ,IAAI,IAAI,CAAC;QAEvC,qEAAqE;QACrE,OAAO,IAAI,OAAO,CACf,IAAY,CAAC,QAAQ,EAAS,EAC/B,IAAW,EACX,OAAO,EACP,SAAS,EACT,aAAa,EACb,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,WAAW,CACnB,OAA2B,EAC3B,IAAY,EACZ,KAAc,EACd,eAAwB,EACxB,eAAwB,EACxB,SAAkB,EAClB,UAAmB,EACnB,UAAmB,KAAK;QAExB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;QACvC,MAAM,oBAAoB,GAAG,eAAe,IAAI,GAAG,IAAI,KAAK,CAAC;QAC7D,MAAM,oBAAoB,GAAG,eAAe,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC;QACjC,MAAM,cAAc,GAAG,SAAS,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAG,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE5D,OAAO,IAAI,WAAW,CACpB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,IAAI,EACJ,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,eAAe,EACf,EAAE,EACF,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,aAAa,CACrB,OAA2B,EAC3B,IAAY,EACZ,KAAc,EACd,eAAwB,EACxB,eAAwB,EACxB,SAAkB,EAClB,UAAmB;QAEnB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAEhE,MAAM,UAAU,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;QACvC,MAAM,oBAAoB,GAAG,eAAe,IAAI,GAAG,IAAI,KAAK,CAAC;QAC7D,MAAM,oBAAoB,GAAG,eAAe,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC;QACjC,MAAM,cAAc,GAAG,SAAS,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAG,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE5D,OAAO,IAAI,aAAa,CACtB,QAAQ,CAAC,QAAQ,EAA+B,EAChD,IAAW,EACX,IAAI,EACJ,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,eAAe,EACf,EAAE,CACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,OAAiB;QACtC,MAAM,MAAM,GAAG;YACb,IAAI,CAAC,KAAK,CAAE,IAAY,CAAC,WAAW,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;SACrC,CAAC;QAEF,sCAAsC;QACtC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEd,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,OAAO,IAAI,CAAC,KAAK,CAAE,IAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,GAAI,IAAY,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;IAED;;OAEG;IACO,yBAAyB,CAAC,MAAc;QAChD,MAAM,QAAQ,GAAI,IAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAEzC,IAAI,CAAC,CAAC,QAAQ,YAAY,mBAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,+DAA+D,MAAM,GAAG,CACzE,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAgB,EAAE,KAAU;QAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACjC,OAAO,IAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,IAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,SAA8B;QAChD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,GAAW;QAC/B,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,SAA4B;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEzE,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5E,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,IAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,SAA4B;QACnD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEjF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,IAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAiBD;;OAEG;IACO,KAAK,CAAC,KAAa;QAC3B,OAAO,KAAK;aACT,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;aAC1B,WAAW,EAAE;aACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;CACF;AA/ZD,sDA+ZC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MorphMany Relationship
|
|
3
|
+
*
|
|
4
|
+
* Represents a polymorphic one-to-many relationship
|
|
5
|
+
* Example: Post has many Comments (where Comment belongs to many types)
|
|
6
|
+
*/
|
|
7
|
+
import { Ensemble } from '../Ensemble';
|
|
8
|
+
import { EnsembleBuilder } from '../EnsembleBuilder';
|
|
9
|
+
import { EnsembleCollection } from '../EnsembleCollection';
|
|
10
|
+
import { Relation } from './Relation';
|
|
11
|
+
export declare class MorphMany<TRelated extends Ensemble, TParent extends Ensemble> extends Relation<TRelated, TParent> {
|
|
12
|
+
/**
|
|
13
|
+
* The foreign key of the parent model (e.g., 'commentable_id')
|
|
14
|
+
*/
|
|
15
|
+
protected foreignKey: string;
|
|
16
|
+
/**
|
|
17
|
+
* The morph type column (e.g., 'commentable_type')
|
|
18
|
+
*/
|
|
19
|
+
protected morphType: string;
|
|
20
|
+
/**
|
|
21
|
+
* The local key of the parent model
|
|
22
|
+
*/
|
|
23
|
+
protected localKey: string;
|
|
24
|
+
/**
|
|
25
|
+
* The morph class name or alias
|
|
26
|
+
*/
|
|
27
|
+
protected morphClass: string;
|
|
28
|
+
/**
|
|
29
|
+
* Create a new morph many relationship instance
|
|
30
|
+
*/
|
|
31
|
+
constructor(query: EnsembleBuilder<TRelated>, parent: TParent, name: string, type: string | null, id: string | null, localKey: string);
|
|
32
|
+
/**
|
|
33
|
+
* Set the base constraints on the relation query
|
|
34
|
+
*/
|
|
35
|
+
addConstraints(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Set the constraints for an eager load of the relation
|
|
38
|
+
*/
|
|
39
|
+
addEagerConstraints(models: TParent[]): void;
|
|
40
|
+
/**
|
|
41
|
+
* Initialize the relation on a set of models
|
|
42
|
+
*/
|
|
43
|
+
initRelation(models: TParent[], relation: string): TParent[];
|
|
44
|
+
/**
|
|
45
|
+
* Match the eagerly loaded results to their parents
|
|
46
|
+
*/
|
|
47
|
+
match(models: TParent[], results: EnsembleCollection<TRelated>, relation: string): TParent[];
|
|
48
|
+
/**
|
|
49
|
+
* Build model dictionary keyed by the relation's foreign key
|
|
50
|
+
*/
|
|
51
|
+
protected buildDictionary(results: EnsembleCollection<TRelated>): Record<any, TRelated[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Get the results of the relationship
|
|
54
|
+
*/
|
|
55
|
+
getResults(): Promise<TRelated[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Get the key value of the parent's local key
|
|
58
|
+
*/
|
|
59
|
+
protected getParentKey(): any;
|
|
60
|
+
/**
|
|
61
|
+
* Get the morph class for the parent
|
|
62
|
+
*/
|
|
63
|
+
protected getMorphClass(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Get the foreign key for the relationship
|
|
66
|
+
*/
|
|
67
|
+
getForeignKeyName(): string;
|
|
68
|
+
/**
|
|
69
|
+
* Get the morph type for the relationship
|
|
70
|
+
*/
|
|
71
|
+
getMorphType(): string;
|
|
72
|
+
/**
|
|
73
|
+
* Get the local key for the relationship
|
|
74
|
+
*/
|
|
75
|
+
getLocalKeyName(): string;
|
|
76
|
+
/**
|
|
77
|
+
* Make a new related instance
|
|
78
|
+
*/
|
|
79
|
+
make(attributes?: Record<string, any>): TRelated;
|
|
80
|
+
/**
|
|
81
|
+
* Create a new instance of the related model
|
|
82
|
+
*/
|
|
83
|
+
create(attributes?: Record<string, any>): Promise<TRelated>;
|
|
84
|
+
/**
|
|
85
|
+
* Create multiple related instances
|
|
86
|
+
*/
|
|
87
|
+
createMany(records: Record<string, any>[]): Promise<TRelated[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Save a model and set the foreign key and morph type
|
|
90
|
+
*/
|
|
91
|
+
save(model: TRelated): Promise<TRelated>;
|
|
92
|
+
/**
|
|
93
|
+
* Update all related models
|
|
94
|
+
*/
|
|
95
|
+
update(attributes: Record<string, any>): Promise<number>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=MorphMany.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MorphMany.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMany.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,qBAAa,SAAS,CAAC,QAAQ,SAAS,QAAQ,EAAE,OAAO,SAAS,QAAQ,CAAE,SAAQ,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC7G;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAE7B;;OAEG;gBAED,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,QAAQ,EAAE,MAAM;IAYlB;;OAEG;IACH,cAAc,IAAI,IAAI;IAatB;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAO5C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAQ5D;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAc5F;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;IAiBzF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IASvC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,GAAG;IAI7B;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,IAAI,CAAC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,QAAQ;IAIpD;;OAEG;IACG,MAAM,CAAC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYrE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUrE;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS9C;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ/D"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MorphMany Relationship
|
|
4
|
+
*
|
|
5
|
+
* Represents a polymorphic one-to-many relationship
|
|
6
|
+
* Example: Post has many Comments (where Comment belongs to many types)
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MorphMany = void 0;
|
|
10
|
+
const Relation_1 = require("./Relation");
|
|
11
|
+
const MorphMap_1 = require("./MorphMap");
|
|
12
|
+
class MorphMany extends Relation_1.Relation {
|
|
13
|
+
/**
|
|
14
|
+
* The foreign key of the parent model (e.g., 'commentable_id')
|
|
15
|
+
*/
|
|
16
|
+
foreignKey;
|
|
17
|
+
/**
|
|
18
|
+
* The morph type column (e.g., 'commentable_type')
|
|
19
|
+
*/
|
|
20
|
+
morphType;
|
|
21
|
+
/**
|
|
22
|
+
* The local key of the parent model
|
|
23
|
+
*/
|
|
24
|
+
localKey;
|
|
25
|
+
/**
|
|
26
|
+
* The morph class name or alias
|
|
27
|
+
*/
|
|
28
|
+
morphClass;
|
|
29
|
+
/**
|
|
30
|
+
* Create a new morph many relationship instance
|
|
31
|
+
*/
|
|
32
|
+
constructor(query, parent, name, type, id, localKey) {
|
|
33
|
+
super(query, parent);
|
|
34
|
+
this.morphType = type || `${name}_type`;
|
|
35
|
+
this.foreignKey = id || `${name}_id`;
|
|
36
|
+
this.localKey = localKey;
|
|
37
|
+
this.morphClass = this.getMorphClass();
|
|
38
|
+
this.initializeRelation();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Set the base constraints on the relation query
|
|
42
|
+
*/
|
|
43
|
+
addConstraints() {
|
|
44
|
+
if (Relation_1.Relation['constraints']) {
|
|
45
|
+
const parentKey = this.getParentKey();
|
|
46
|
+
// Only add constraints if parent key exists
|
|
47
|
+
if (parentKey !== null && parentKey !== undefined) {
|
|
48
|
+
this.query
|
|
49
|
+
.where(this.foreignKey, '=', parentKey)
|
|
50
|
+
.where(this.morphType, '=', this.morphClass);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set the constraints for an eager load of the relation
|
|
56
|
+
*/
|
|
57
|
+
addEagerConstraints(models) {
|
|
58
|
+
const keys = this.getKeys(models, this.localKey);
|
|
59
|
+
this.query
|
|
60
|
+
.whereIn(this.foreignKey, keys)
|
|
61
|
+
.where(this.morphType, '=', this.morphClass);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Initialize the relation on a set of models
|
|
65
|
+
*/
|
|
66
|
+
initRelation(models, relation) {
|
|
67
|
+
for (const model of models) {
|
|
68
|
+
model.setRelation(relation, []);
|
|
69
|
+
}
|
|
70
|
+
return models;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Match the eagerly loaded results to their parents
|
|
74
|
+
*/
|
|
75
|
+
match(models, results, relation) {
|
|
76
|
+
const dictionary = this.buildDictionary(results);
|
|
77
|
+
for (const model of models) {
|
|
78
|
+
const key = model.getAttribute(this.localKey);
|
|
79
|
+
if (key !== null && key !== undefined && dictionary[key]) {
|
|
80
|
+
model.setRelation(relation, dictionary[key]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return models;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build model dictionary keyed by the relation's foreign key
|
|
87
|
+
*/
|
|
88
|
+
buildDictionary(results) {
|
|
89
|
+
const dictionary = {};
|
|
90
|
+
for (const result of results) {
|
|
91
|
+
const key = result.getAttribute(this.foreignKey);
|
|
92
|
+
if (key !== null && key !== undefined) {
|
|
93
|
+
if (!dictionary[key]) {
|
|
94
|
+
dictionary[key] = [];
|
|
95
|
+
}
|
|
96
|
+
dictionary[key].push(result);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return dictionary;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the results of the relationship
|
|
103
|
+
*/
|
|
104
|
+
async getResults() {
|
|
105
|
+
if (!this.getParentKey()) {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
this.ensureConstraints();
|
|
109
|
+
return this.query.get();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the key value of the parent's local key
|
|
113
|
+
*/
|
|
114
|
+
getParentKey() {
|
|
115
|
+
return this.parent.getAttribute(this.localKey);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get the morph class for the parent
|
|
119
|
+
*/
|
|
120
|
+
getMorphClass() {
|
|
121
|
+
return MorphMap_1.MorphMap.getMorphedModel(this.parent);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get the foreign key for the relationship
|
|
125
|
+
*/
|
|
126
|
+
getForeignKeyName() {
|
|
127
|
+
return this.foreignKey;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get the morph type for the relationship
|
|
131
|
+
*/
|
|
132
|
+
getMorphType() {
|
|
133
|
+
return this.morphType;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get the local key for the relationship
|
|
137
|
+
*/
|
|
138
|
+
getLocalKeyName() {
|
|
139
|
+
return this.localKey;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Make a new related instance
|
|
143
|
+
*/
|
|
144
|
+
make(attributes = {}) {
|
|
145
|
+
return this.related.newInstance(attributes);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a new instance of the related model
|
|
149
|
+
*/
|
|
150
|
+
async create(attributes = {}) {
|
|
151
|
+
const instance = this.make(attributes);
|
|
152
|
+
// Set both the foreign key and morph type
|
|
153
|
+
instance.setAttribute(this.foreignKey, this.getParentKey());
|
|
154
|
+
instance.setAttribute(this.morphType, this.morphClass);
|
|
155
|
+
await instance.save();
|
|
156
|
+
return instance;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Create multiple related instances
|
|
160
|
+
*/
|
|
161
|
+
async createMany(records) {
|
|
162
|
+
const instances = [];
|
|
163
|
+
for (const record of records) {
|
|
164
|
+
instances.push(await this.create(record));
|
|
165
|
+
}
|
|
166
|
+
return instances;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Save a model and set the foreign key and morph type
|
|
170
|
+
*/
|
|
171
|
+
async save(model) {
|
|
172
|
+
model.setAttribute(this.foreignKey, this.getParentKey());
|
|
173
|
+
model.setAttribute(this.morphType, this.morphClass);
|
|
174
|
+
await model.save();
|
|
175
|
+
return model;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Update all related models
|
|
179
|
+
*/
|
|
180
|
+
async update(attributes) {
|
|
181
|
+
const updatedAtColumn = this.related.getUpdatedAtColumn();
|
|
182
|
+
if (updatedAtColumn) {
|
|
183
|
+
attributes[updatedAtColumn] = new Date();
|
|
184
|
+
}
|
|
185
|
+
return this.query.update(attributes);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
exports.MorphMany = MorphMany;
|
|
189
|
+
//# sourceMappingURL=MorphMany.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MorphMany.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMany.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MorphMap
|
|
3
|
+
*
|
|
4
|
+
* Global morph map for polymorphic relations
|
|
5
|
+
* Maps aliases to model classes for cleaner database storage
|
|
6
|
+
*/
|
|
7
|
+
import { Ensemble } from '../Ensemble';
|
|
8
|
+
export declare class MorphMap {
|
|
9
|
+
/**
|
|
10
|
+
* Map from alias to model class
|
|
11
|
+
*/
|
|
12
|
+
private static map;
|
|
13
|
+
/**
|
|
14
|
+
* Reverse map from model class to alias
|
|
15
|
+
*/
|
|
16
|
+
private static reverseMap;
|
|
17
|
+
/**
|
|
18
|
+
* Set the morph map
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* MorphMap.set({
|
|
22
|
+
* 'post': Post,
|
|
23
|
+
* 'video': Video,
|
|
24
|
+
* 'comment': Comment
|
|
25
|
+
* });
|
|
26
|
+
*/
|
|
27
|
+
static set(map: Record<string, new () => Ensemble>): void;
|
|
28
|
+
/**
|
|
29
|
+
* Get model class from alias
|
|
30
|
+
*/
|
|
31
|
+
static getClass(alias: string): (new () => Ensemble) | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Get alias from model class
|
|
34
|
+
* Returns the class name if no alias is defined
|
|
35
|
+
*/
|
|
36
|
+
static getAlias(modelClass: new () => Ensemble): string;
|
|
37
|
+
/**
|
|
38
|
+
* Get the morph type for a model instance
|
|
39
|
+
* This is what gets stored in the database {name}_type column
|
|
40
|
+
*/
|
|
41
|
+
static getMorphedModel(instance: Ensemble): string;
|
|
42
|
+
/**
|
|
43
|
+
* Clear the morph map
|
|
44
|
+
*/
|
|
45
|
+
static clear(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Check if an alias exists in the map
|
|
48
|
+
*/
|
|
49
|
+
static has(alias: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Get all registered aliases
|
|
52
|
+
*/
|
|
53
|
+
static aliases(): string[];
|
|
54
|
+
/**
|
|
55
|
+
* Get all registered model classes
|
|
56
|
+
*/
|
|
57
|
+
static classes(): (new () => Ensemble)[];
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=MorphMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MorphMap.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,QAAQ;IACnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,GAAG,CAA8C;IAEhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAA8C;IAEvE;;;;;;;;;OASG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,QAAQ,CAAC,GAAG,IAAI;IAUzD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,UAAU,QAAQ,CAAC,GAAG,SAAS;IAIhE;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,QAAQ,GAAG,MAAM;IAIvD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAIlD;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,CAAC,UAAU,QAAQ,CAAC,EAAE;CAGzC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MorphMap
|
|
4
|
+
*
|
|
5
|
+
* Global morph map for polymorphic relations
|
|
6
|
+
* Maps aliases to model classes for cleaner database storage
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MorphMap = void 0;
|
|
10
|
+
class MorphMap {
|
|
11
|
+
/**
|
|
12
|
+
* Map from alias to model class
|
|
13
|
+
*/
|
|
14
|
+
static map = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* Reverse map from model class to alias
|
|
17
|
+
*/
|
|
18
|
+
static reverseMap = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Set the morph map
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* MorphMap.set({
|
|
24
|
+
* 'post': Post,
|
|
25
|
+
* 'video': Video,
|
|
26
|
+
* 'comment': Comment
|
|
27
|
+
* });
|
|
28
|
+
*/
|
|
29
|
+
static set(map) {
|
|
30
|
+
this.map.clear();
|
|
31
|
+
this.reverseMap.clear();
|
|
32
|
+
for (const [alias, modelClass] of Object.entries(map)) {
|
|
33
|
+
this.map.set(alias, modelClass);
|
|
34
|
+
this.reverseMap.set(modelClass, alias);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get model class from alias
|
|
39
|
+
*/
|
|
40
|
+
static getClass(alias) {
|
|
41
|
+
return this.map.get(alias);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get alias from model class
|
|
45
|
+
* Returns the class name if no alias is defined
|
|
46
|
+
*/
|
|
47
|
+
static getAlias(modelClass) {
|
|
48
|
+
return this.reverseMap.get(modelClass) || modelClass.name;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the morph type for a model instance
|
|
52
|
+
* This is what gets stored in the database {name}_type column
|
|
53
|
+
*/
|
|
54
|
+
static getMorphedModel(instance) {
|
|
55
|
+
return this.getAlias(instance.constructor);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Clear the morph map
|
|
59
|
+
*/
|
|
60
|
+
static clear() {
|
|
61
|
+
this.map.clear();
|
|
62
|
+
this.reverseMap.clear();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Check if an alias exists in the map
|
|
66
|
+
*/
|
|
67
|
+
static has(alias) {
|
|
68
|
+
return this.map.has(alias);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get all registered aliases
|
|
72
|
+
*/
|
|
73
|
+
static aliases() {
|
|
74
|
+
return Array.from(this.map.keys());
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get all registered model classes
|
|
78
|
+
*/
|
|
79
|
+
static classes() {
|
|
80
|
+
return Array.from(this.map.values());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.MorphMap = MorphMap;
|
|
84
|
+
//# sourceMappingURL=MorphMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MorphMap.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMap.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,MAAa,QAAQ;IACnB;;OAEG;IACK,MAAM,CAAC,GAAG,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEhE;;OAEG;IACK,MAAM,CAAC,UAAU,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEvE;;;;;;;;;OASG;IACH,MAAM,CAAC,GAAG,CAAC,GAAuC;QAChD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,UAA8B;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,QAAkB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAiC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;;AAjFH,4BAkFC"}
|