joist-core 2.4.0-next.39 → 2.4.0-next.40
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/build/EntityManager.cjs +15 -3
- package/build/EntityManager.cjs.map +1 -1
- package/build/EntityManager.d.cts +18 -12
- package/build/EntityManager.d.cts.map +1 -1
- package/build/EntityManager.d.mts +18 -12
- package/build/EntityManager.d.mts.map +1 -1
- package/build/EntityManager.js +15 -3
- package/build/EntityManager.js.map +1 -1
- package/build/index.d.cts +2 -2
- package/build/index.d.mts +2 -2
- package/package.json +2 -2
|
@@ -96,6 +96,12 @@ export type IdOf<T> = T extends {
|
|
|
96
96
|
export type TaggedId = string;
|
|
97
97
|
/** Creation options for any registered entity type, since deep clones can include more than the root type. */
|
|
98
98
|
export type CloneOverrides = Partial<TypeMap[keyof TypeMap]["optsType"]>;
|
|
99
|
+
/** Skips entities using either a shared predicate or predicates for specific entity types. */
|
|
100
|
+
export type CloneSkipIf<E extends Entity = Entity> = ((original: E) => boolean) | { [K in keyof TypeMap]?: (original: TypeMap[K]["entityType"]) => boolean; };
|
|
101
|
+
/** Supplies creation options using either a shared callback or callbacks with type-specific options. */
|
|
102
|
+
export type CloneOverridesCallback<E extends Entity = Entity> = ((original: E) => CloneOverrides) | { [K in keyof TypeMap]?: (original: TypeMap[K]["entityType"]) => Partial<TypeMap[K]["optsType"]>; };
|
|
103
|
+
/** Customizes clones using either a shared callback or callbacks for specific entity types. */
|
|
104
|
+
export type ClonePostClone<E extends Entity = Entity> = ((original: E, clone: E) => void) | { [K in keyof TypeMap]?: (original: TypeMap[K]["entityType"], clone: TypeMap[K]["entityType"]) => void; };
|
|
99
105
|
export declare function isId(value: any): value is IdOf<unknown>;
|
|
100
106
|
export type EntityManagerHook = "beforeBegin" | "afterBegin" | "beforeCommit" | "afterCommit";
|
|
101
107
|
/** Options for EntityManager transaction hooks. */
|
|
@@ -379,9 +385,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
379
385
|
* @param opts - Options to control the clone behaviour
|
|
380
386
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
381
387
|
* @param skip - Keys that will be skipped in the clone
|
|
382
|
-
* @param skipIf -
|
|
383
|
-
* @param overrides -
|
|
384
|
-
* @param postClone -
|
|
388
|
+
* @param skipIf - Shared or per-type predicates that skip entities and their children
|
|
389
|
+
* @param overrides - Shared or per-type callbacks that supply creation options before defaults run
|
|
390
|
+
* @param postClone - Shared or per-type callbacks for any original/clone post-processing needed
|
|
385
391
|
* @returns The `Loaded` cloned entity or fails if the clone could not be made
|
|
386
392
|
*
|
|
387
393
|
* @example
|
|
@@ -407,9 +413,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
407
413
|
clone<T extends Entity$1, H extends LoadHint<T>, const K = ReactiveHint<T>>(entity: T, opts?: {
|
|
408
414
|
deep?: H;
|
|
409
415
|
skip?: K;
|
|
410
|
-
skipIf?:
|
|
411
|
-
overrides?:
|
|
412
|
-
postClone?:
|
|
416
|
+
skipIf?: CloneSkipIf<Entity$1>;
|
|
417
|
+
overrides?: CloneOverridesCallback<Entity$1>;
|
|
418
|
+
postClone?: ClonePostClone<Entity$1>;
|
|
413
419
|
}): Promise<Loaded<T, H>>;
|
|
414
420
|
/**
|
|
415
421
|
* Utility to clone an entity and its nested relations, as determined by a populate hint.
|
|
@@ -418,9 +424,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
418
424
|
* @param opts - Options to control the clone behaviour
|
|
419
425
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
420
426
|
* @param skip - Keys that will be skipped in the clone
|
|
421
|
-
* @param skipIf -
|
|
422
|
-
* @param overrides -
|
|
423
|
-
* @param postClone -
|
|
427
|
+
* @param skipIf - Shared or per-type predicates that skip entities and their children
|
|
428
|
+
* @param overrides - Shared or per-type callbacks that supply creation options before defaults run
|
|
429
|
+
* @param postClone - Shared or per-type callbacks for any original/clone post-processing needed
|
|
424
430
|
* @returns Array of `Loaded` cloned entities from the provided list or empty array if all are skipped
|
|
425
431
|
*
|
|
426
432
|
* @example
|
|
@@ -442,9 +448,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
442
448
|
clone<T extends Entity$1, H extends LoadHint<T>, const K = ReactiveHint<T>>(entities: readonly T[], opts?: {
|
|
443
449
|
deep?: H;
|
|
444
450
|
skip?: K;
|
|
445
|
-
skipIf?:
|
|
446
|
-
overrides?:
|
|
447
|
-
postClone?:
|
|
451
|
+
skipIf?: CloneSkipIf<Entity$1>;
|
|
452
|
+
overrides?: CloneOverridesCallback<Entity$1>;
|
|
453
|
+
postClone?: ClonePostClone<Entity$1>;
|
|
448
454
|
}): Promise<Loaded<T, H>[]>;
|
|
449
455
|
/**
|
|
450
456
|
* Merges multiple source entities into a target entity by updating all references that point
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityManager.d.cts","names":["EntityW","Entity"],"sources":["../src/EntityManager.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqKiB,kBAAkB;;OAE5B,IAAI,+BAA+B;EAKxC;EACA,UAAU;;EAGV,gBAAgB,QAAQ,SAAS;;;iBAIlB,kBAAkB,UAAU;EAC3C,aAAa;EACb,UAAU,QAAQ,KAAK,QAAQ;EAC/B;EACA;EACA;EACA;EACA;;iBAGe,qBAAqB,UAAU,gBAAgB,KAAK,kBAAkB;EACrF;EACA;;;iBAIe,uBAAuB,UAAU;EAChD,aAAa;EACb;EACA;EACA;;;;;;;YAQU,+BAA+B,mBAAmB,IAAI,8BAA8B,cAAc;;YAGlG,KAAK,KAAK;EAAY,UAAU;IAAM;YAEtC;;YAGA,iBAAiB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"file":"EntityManager.d.cts","names":["EntityW","Entity"],"sources":["../src/EntityManager.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqKiB,kBAAkB;;OAE5B,IAAI,+BAA+B;EAKxC;EACA,UAAU;;EAGV,gBAAgB,QAAQ,SAAS;;;iBAIlB,kBAAkB,UAAU;EAC3C,aAAa;EACb,UAAU,QAAQ,KAAK,QAAQ;EAC/B;EACA;EACA;EACA;EACA;;iBAGe,qBAAqB,UAAU,gBAAgB,KAAK,kBAAkB;EACrF;EACA;;;iBAIe,uBAAuB,UAAU;EAChD,aAAa;EACb;EACA;EACA;;;;;;;YAQU,+BAA+B,mBAAmB,IAAI,8BAA8B,cAAc;;YAGlG,KAAK,KAAK;EAAY,UAAU;IAAM;YAEtC;;YAGA,iBAAiB,QAAQ,cAAc;;YAGvC,YAAY,UAAUA,SAAUA,YACtC,UAAU,oBACT,WAAW,YAAY,UAAU,QAAQ;;YAGpC,uBAAuB,UAAUA,SAAUA,YACjD,UAAU,MAAM,qBACf,WAAW,YAAY,UAAU,QAAQ,qBAAqB,QAAQ,QAAQ;;YAGzE,eAAe,UAAUA,SAAUA,YACzC,UAAU,GAAG,OAAO,iBACnB,WAAW,YAAY,UAAU,QAAQ,kBAAkB,OAAO,QAAQ;wBAEjE,KAAK,aAAa,SAAS;YAI/B;;iBAGK;;;;;;;EAOf;;KAGG,OAAO,OAAO,IAAI,eAAe,KAAK,OAAO;YAEtC,cAAc,eAAe;iBAExB;EACf;EACA;EACA;;YAGU,kBAAkB;EACxB,QAAQ,OAAO;EAAK;;EACpB;EAAoB,IAAI;;EACxB,gBAAgB;;iBAEL;;EAEf;;;;;;;;;YAUU;YAEA,uBACD,uBACA,+BACA,4BACA,0BACA,uBACA,uBACA,iCACA,iCACA,qCACA,gCACA,gCACA,+BACA,2BACA,oCACA,+BACA,mCACA;;;;;;;;;;;;;;;;;;;;;qBAsBE,cAAc,aAAa,iBAAeA,SAAUA,QAAS;;WACxD,KAAK;EACd,QAAQ,OAAO;;EAEf,KAAK;EACL;UAgDC;EAER,MAAM;EAEN,YAAY,KAAK,GAAG,MAAM,kBAAkB;EAC5C,YAAY,KAAK,GAAG,QAAQ,OAAO;;MA0G/B,YAAY,cAAcC;;MAK1B,kBAAkB;;EAkCtB,YAAY,UAAUA,UAAQ,MAAM,+BAA+B,KAAK,cAAc;;EAQtF,UAAU,UAAUA;IAAW;KAAc,IAAI,KAAK,KAAK;EAC3D,UAAU,IAAI,WAAWA;;;;;;;;;;;;EAkBZ,KAAK,UAAUD,QAAS,MAAM,+BAA+B,IAAI,OAAO,WAAW,KAAK,QAAQ;EAChG,KAAK,UAAUA,cAAe,UAAU,SAAS,IAC5D,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,UAAU,kBAAkB;IAAO,WAAW;MAC7C,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDd,MAAM,GAAG,GAAG,WAAW,UAAU,QAAQ;EACzC,MAAM,UAAUC,UAAQ,GAAG,YAAY,KAAK,QAAQ;EACpD,MAAM,UAAUA,gBAAc,UAAU,SAAS,IACtD,GAAG,YAAY,IACf;IAAW,UAAU;MACpB,QAAQ,OAAO,GAAG;EACd,YAAY,UAAU,kBAAkB,eAAe,GAAG,IAAI,cAAc,KAAK,QAAQ,YAAY;EACrG,MAAM,UAAU,mBAAmB,UAAU,qBAAqB,UAAU,qBACjF,GAAG,SAAS,GAAG,GAAG,YACjB,QAAQ,SAAS,GAAG,cAAc,GAAG;EACjC,MACL,UAAU,mBACJ,UAAU,mBACV,UAAU,SAAS,QAAQ,SAAS,GAAG,cAAc,GAAG,KAAKD,UACnE,UAAU,qBAEV,GAAG,SAAS,GAAG,GAAG,WAClB,SAAS,SAAS,GAAG,cAAc,GAAG,YAAYA;IAAY,UAAU;cACvE,QAAQ,OAAO,QAAQ,SAAS,GAAG,cAAc,GAAG,KAAKA,SAAU;;;;;EAwB/D,cAAc,UAAU,eAC7B,WAAW,IAAI,cAAc,KAC5B,QAAQ,cAAc,YAAY;EAC9B,QAAQ,GAAG,WAAW,WAAW,UAAU,QAAQ,cAAc;EACjE,QAAQ,UAAUC,UAAQ,WAAW,YAAY,KAAK,QAAQ,cAAc;EAC5E,cAAc,UAAU,kBAAkB,eAC/C,WAAW,IAAI,cAAc,KAC5B,QAAQ,cAAc,YAAY;EAC9B,QAAQ,UAAU,mBAAmB,UAAU,qBAAqB,UAAU,qBACnF,WAAW,SAAS,GAAG,GAAG,YACzB,QAAQ,cAAc,SAAS,GAAG,cAAc,GAAG;;UA+BxC;;UAmBA;;UAmBA;;;;;;UAgCA;;;;;;;;;;;;UA0CN;;;;;;EA2BK,QAAQ,UAAUD,QAC7B,MAAM,+BAA+B,IACrC,OAAO,uBAAuB,KAC7B,QAAQ;EACE,QAAQ,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,OAAO,uBAAuB,IAC9B,UAAU,qBAAqB;IAAO,WAAW;MAChD,QAAQ,OAAO,GAAG;EAeR,QAAQ,UAAUA,QAC7B,MAAM,+BAA+B,IACrC,OAAO,WAAW,KACjB,QAAQ;EACE,QAAQ,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,UAAU,kBAAkB;IAAO,WAAW;MAC7C,QAAQ,OAAO,GAAG;;EAiBR,cAAc,UAAUA,QACnC,MAAM,+BAA+B,IACrC,OAAO,WAAW,KACjB,QAAQ;EACE,cAAc,UAAUA,cAAe,UAAU,SAAS,IACrE,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,SAAS,kBAAkB;IAAO,WAAW;MAC5C,QAAQ,OAAO,GAAG;EAeR,aAAa,UAAUA,QAClC,MAAM,+BAA+B,IACrC,OAAO,aAAa,KACnB,QAAQ;EACE,aAAa,UAAUA,cAAe,UAAU,SAAS,IACpE,MAAM,+BAA+B,IACrC,OAAO,aAAa,IACpB;IAAY,WAAW;IAAG;MACzB,QAAQ,OAAO,GAAG;;;;;;;;;EAyCf,UAAU,UAAUA,QACxB,MAAM,+BAA+B,IACrC,OAAO,WAAW,KAAK,uBAAuB,IAC9C,UAAS,uBAAuB,KAC/B;;;;;;;EAmCG,QAAQ,UAAUA,QACtB,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,UAAS,uBAAuB,KAC/B;;;;;;;;;;;;;;;;EAwBG,qBAAqB,UAAUC,UAAQ,UAAU,QAAQ,OAAO,KACpE,MAAM,kBAAkB,IACxB,OAAO,IACN,QAAQ;EACL,qBAAqB,UAAUA,UAAQ,UAAU,QAAQ,OAAO,WAAW,UAAU,SAAS,IAClG,MAAM,kBAAkB,IACxB,OAAO,GACP;IAAY,WAAW;IAAG;MACzB,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;EAyCf,aACJ,UAAUD,QACV,UAAU,QAAQ,OAAO,KACzB,UAAU,QAAQ,OAAO,UACzB,UAAU,KAAK,OAAO,UAAU,UAAU,IAC1C,MAAM,kBAAkB,IAAI,OAAO,GAAG,OAAO,GAAG,SAAS,IAAI,QAAQ;EACjE,aACJ,UAAUA,QACV,UAAU,QAAQ,OAAO,KACzB,UAAU,QAAQ,OAAO,UACzB,UAAU,KAAK,OAAO,UAAU,UAAU,UACpC,UAAU,SAAS,IAEzB,MAAM,kBAAkB,IACxB,OAAO,GACP,OAAO,GACP,SAAS,GACT;IAAY,WAAW;IAAG;MACzB,QAAQ,OAAO,GAAG;;EA2Bd,OAAO,UAAUA,QAAS,UAAU,OAAO,IAAI,MAAM,kBAAkB,IAAI,MAAM,IAAI,IAAI,GAAG;;;;;;;;;;;;;EAgB5F,cAAc,UAAUA,QAAS,MAAM,kBAAkB,IAAI,MAAM,cAAc,OAAO,MAAM;;;;;;;;;;;EAc9F,OAAO,UAAUA,QAAS,MAAM,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCtF,MAAM,UAAUC,UAAQ,UAAU,SAAS,UAAU,IAAI,aAAa,IACjF,QAAQ,GACR;IACE,OAAO;IACP,OAAO;IACP,SAAS,YAAYA;IACrB,YAAY,uBAAuBA;IACnC,YAAY,eAAeA;MAE5B,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BR,MAAM,UAAUA,UAAQ,UAAU,SAAS,UAAU,IAAI,aAAa,IACjF,mBAAmB,KACnB;IACE,OAAO;IACP,OAAO;IACP,SAAS,YAAYA;IACrB,YAAY,uBAAuBA;IACnC,YAAY,eAAeA;MAE5B,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuKR,MAAM,UAAUA,UAAQ,QAAQ,GAAG,SAAS,KAAK;IAAS;MAAyB,QAAQA;;EA+E3F,KAAK,UAAUD;IAAY;KAAc,IAAI,KAAK,KAAK,QAAQ;EAC/D,KAAK,IAAI,WAAW,QAAQC;EAC5B,KAAK,UAAUD,QAAS,MAAM,+BAA+B,IAAI,IAAI,KAAK,KAAK,WAAW,QAAQ;EAClG,KAAK,UAAUA,cAAe,UAAU,SAAS,IAC5D,MAAM,+BAA+B,IACrC,IAAI,KAAK,KAAK,UACd,UAAU,IACT,QAAQ,OAAO,GAAG;;EAwCR,QAAQ,UAAUA,QAC7B,MAAM,+BAA+B,IACrC,yBACC,QAAQ;EACE,QAAQ,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,wBACA,UAAU,IACT,QAAQ,OAAO,GAAG;;;;;EA0DR,gBAAgB,UAAUA,QAAS,MAAM,kBAAkB,IAAI,yBAAyB,QAAQ;EAChG,gBAAgB,UAAUA,cAAe,UAAU,SAAS,IACvE,MAAM,kBAAkB,IACxB,wBACA,UAAU,IACT,QAAQ,OAAO,GAAG;;;;;;;EAwDR,SAAS,UAAUA,QAAS,GAAG,GAC1C,mBAAmB,KACnB,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG,KAC9B,QAAQ;EACE,SAAS,UAAUA,QAAS,UAAUA,QAAS,SAAS,UAAU,SAAS,IACtF,mBAAmB,KACnB,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG,IAC/B,UAAU,IACT,QAAQ,OAAO,GAAG;;;;;;EAkBd,cAAc,UAAUA,QAAS,MAAM,+BAA+B,IAAI,2BAA2B;;;;;;EAMrG,cAAc,UAAUA,QAC7B,MAAM,+BAA+B,IACrC,MAAM,kCACL,QAAQ;;;;EAIJ,cAAc,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,0BACA,UAAU,IACT,QAAQ,OAAO,GAAG;;;;EAId,cAAc,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,MAAM,iCACN,UAAU,IACT,QAAQ,OAAO,GAAG;;EAoBR,aAAa,UAAUA,QAAS,MAAM,+BAA+B,IAAI,kBAAkB,QAAQ;EACnG,aAAa,UAAUA,cAAe,UAAU,SAAS,IACpE,MAAM,+BAA+B,IACrC,iBACA,UAAU,IACT,QAAQ,OAAO,GAAG;;EAcR,SAAS,UAAUA,cAAe,UAAU,SAAS,IAAI,IAAI,OAAO,GAAG,IAClF,QAAQ,GACR,MAAM,GACN,MAAM,QAAQ,OAAO,GAAG,OAAO,IAC9B,QAAQ;EACE,SAAS,UAAUA,cAAe,UAAU,SAAS,IAAI,IAAI,OAAO,GAAG,IAClF,QAAQ,GACR;IAAQ,MAAM;IAAG;KACjB,MAAM,QAAQ,OAAO,GAAG,OAAO,IAC9B,QAAQ;EACE,SAAS,UAAUA,cAAe,UAAU,SAAS,IAChE,UAAU,cAAc,IACxB,MAAM,IACL,QAAQ,OAAO,GAAG;EACR,SAAS,UAAUA,cAAe,UAAU,SAAS,IAChE,UAAU,cAAc,IACxB;IAAQ,MAAM;IAAG;MAChB,QAAQ,OAAO,GAAG;;;;;;;;EAqER,YAAY,GAAG,KAAK,KAAK,OAAO,QAAQ,KAAK,QAAQ;;;;;;;;;;;;EAsBlE,OAAO,QAAQC;;;;;;;;;;;;EAYf,OAAO,UAAUA;EAiBX,gBAAY;;;;;;;;;;EAuBZ,YAAY,UAAUA,aAAW;;;;;;;;;;;;;;EAwBjC,MAAM,eAAc,eAAoB,QAAQA;;;;;;;;EA+Y/C;;;;;;;;;;;;;EAgBD,QAAQ;IAAS;MAAuB;EACxC,QAAQ,QAAQD,SAAU;EAC1B,QAAQ,UAAU,cAAcA,UAAW;MAmFtC;EAMJ,qBAAqB,UAAUA,QAAS,aAAa;;;;;;;;;;EAarD,QAAQ,UAAUA,QACvB,MAAM,+BAA+B,IACrC,sBACA;IAAY;MACX;;;;;;;;;;UAaK;;;;;;;;;;EAuBD,mBAAmB,UAAUA,QAClC,MAAM,+BAA+B,IACrC,SAAS,SACT;IAAY;MACX;;;;;;;;;EAqEI,MAAM,QAAQA;EACd,MAAM,UAAUA;;;;;;;;;;;;;;;EAqBhB,OAAO,QAAQA,SAAU;EACzB,OAAO,UAAUA,WAAY;EAC7B,OAAO,QAAQA,QAAS,uBAAuB;EAC/C,OAAO,UAAUA,UAAW,uBAAuB;;EAoEnD,YAAY,IAAI,OAAO,KAAK,OAAM;;EAMlC,WAAW,IAAI,OAAO,KAAK,OAAM;;EAMjC,aAAa,IAAI,OAAO,KAAK,OAAM;;EAMnC,YAAY,IAAI,OAAO,KAAK,OAAM;;;;;;;;;;;EAclC,UAAU,GAAG,GAClB,mBACA,kBACA,IAAI,YAAY,GAAG,IACnB,OAAO,QAAQ,GAAG,KACjB,WAAW,GAAG;;;;;;;EAcV,eAAe,GAAG,mBAAmB,kBAAkB,KAAK,MAAM,QAAQ,gBAAgB,YAAY;EAKtG;;UAKO;EA8Bd,mBAAmB,QAAQ;EAC3B,mBAAmB;;EAMnB,gBAAgB;;EAEhB,gBAAgB;;EAEhB,gBAAgB,QAAQ;;EAExB,gBAAgB;GAiCT,OAAO,iBAAiB;;EAO/B,eAAe,UAAUC,UAAQ,MAAM,kBAAkB,IAAI,OAAO,QAAQ,OAAO,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDzF,KAAK;IAAQ;MAAuC,cAAc,GAAGA,UAAQ;;;;;;;;;;;;;;;;;;;;;EA0I7E,aAAa,UAAUA,UAAQ,UAAU,IAAI;EAC7C,aAAa,UAAUA,UAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,IAAI,UAAU,GAAG,MAAM,IAAI;EAuDrG,UAAU,QAAQ;EAIlB,uBAAuB;MAInB;MAIA;;;iBA4FW;EACf,WAAW,KAAK,mBAAmB;;EAGnC,kBAAkB,YAAY;IAAc,MAAM;IAAU,SAAS;;;EAGrE,oBAAoB,IAAI;;EAGxB,cAAc,IAAI;;EAGlB,qBAAqB,GAAG,kBAAkB,oBAAoB;EAC9D,qBAAqB,GAAG,kBAAkB,mBAAmB,UAAU;EAEvE,OAAO,OAAO,mBAAmB;EACjC,IAAI;EACJ,cAAc;EACd,WAAW;EACX;EACA;EACA,YAAY,QAAQ;MAChB,eAAe;MACf,iBAAiB;EACrB,eAAe;EACf;EACA;EACA,iBAAiB,QAAQD;EACzB,mBAAmB,QAAQA;EAC3B;EACA,iBAAiB,MAAM,+BAA+B,mBAAmB;EACzE,gBAAgB;;wBAGF,iBAAiB,IAAI,gBAAgB;wBAMrC;wBAIA,sBAAsB;wBAItB;wBAIA,MAAM,SAAS;;wBAKf,WAAW,GAAG,sCAAsC,GAAG;;wBAmBvD,cAAc,UAAU,QAAQ,GAAG,eAAe,SAAS,GAAG,eAAe;;qBAKhF,sBAAsB;;qBAGtB,qBAAqB;EAChC,YAAY;;;wBA0IQ,WACpB,QAAQ,QACR,KAAK,gBAAgB,aAAa,wBACjC,QAAQ;wBAIK,kBAAkB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBAIpE,iBAAiB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBAInE,mBAAmB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBAIrE,kBAAkB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBA+OpE,UAAU,eAAe,OAAO,uBAAuB,SAAS;wBAoChE,WAAW,KAAK;;qBAyFnB,yBAAyB;EACpC,YAAY;;;qBAMD,sBAAsB;EACjC;;;;;;;;wBA0Bc,YAAY,cAAc,OAAO;wBAsBjC,wBAAwB,GAAG,QAAQ;EAAQ;IAAmC"}
|
|
@@ -96,6 +96,12 @@ export type IdOf<T> = T extends {
|
|
|
96
96
|
export type TaggedId = string;
|
|
97
97
|
/** Creation options for any registered entity type, since deep clones can include more than the root type. */
|
|
98
98
|
export type CloneOverrides = Partial<TypeMap[keyof TypeMap]["optsType"]>;
|
|
99
|
+
/** Skips entities using either a shared predicate or predicates for specific entity types. */
|
|
100
|
+
export type CloneSkipIf<E extends Entity = Entity> = ((original: E) => boolean) | { [K in keyof TypeMap]?: (original: TypeMap[K]["entityType"]) => boolean; };
|
|
101
|
+
/** Supplies creation options using either a shared callback or callbacks with type-specific options. */
|
|
102
|
+
export type CloneOverridesCallback<E extends Entity = Entity> = ((original: E) => CloneOverrides) | { [K in keyof TypeMap]?: (original: TypeMap[K]["entityType"]) => Partial<TypeMap[K]["optsType"]>; };
|
|
103
|
+
/** Customizes clones using either a shared callback or callbacks for specific entity types. */
|
|
104
|
+
export type ClonePostClone<E extends Entity = Entity> = ((original: E, clone: E) => void) | { [K in keyof TypeMap]?: (original: TypeMap[K]["entityType"], clone: TypeMap[K]["entityType"]) => void; };
|
|
99
105
|
export declare function isId(value: any): value is IdOf<unknown>;
|
|
100
106
|
export type EntityManagerHook = "beforeBegin" | "afterBegin" | "beforeCommit" | "afterCommit";
|
|
101
107
|
/** Options for EntityManager transaction hooks. */
|
|
@@ -379,9 +385,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
379
385
|
* @param opts - Options to control the clone behaviour
|
|
380
386
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
381
387
|
* @param skip - Keys that will be skipped in the clone
|
|
382
|
-
* @param skipIf -
|
|
383
|
-
* @param overrides -
|
|
384
|
-
* @param postClone -
|
|
388
|
+
* @param skipIf - Shared or per-type predicates that skip entities and their children
|
|
389
|
+
* @param overrides - Shared or per-type callbacks that supply creation options before defaults run
|
|
390
|
+
* @param postClone - Shared or per-type callbacks for any original/clone post-processing needed
|
|
385
391
|
* @returns The `Loaded` cloned entity or fails if the clone could not be made
|
|
386
392
|
*
|
|
387
393
|
* @example
|
|
@@ -407,9 +413,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
407
413
|
clone<T extends Entity$1, H extends LoadHint<T>, const K = ReactiveHint<T>>(entity: T, opts?: {
|
|
408
414
|
deep?: H;
|
|
409
415
|
skip?: K;
|
|
410
|
-
skipIf?:
|
|
411
|
-
overrides?:
|
|
412
|
-
postClone?:
|
|
416
|
+
skipIf?: CloneSkipIf<Entity$1>;
|
|
417
|
+
overrides?: CloneOverridesCallback<Entity$1>;
|
|
418
|
+
postClone?: ClonePostClone<Entity$1>;
|
|
413
419
|
}): Promise<Loaded<T, H>>;
|
|
414
420
|
/**
|
|
415
421
|
* Utility to clone an entity and its nested relations, as determined by a populate hint.
|
|
@@ -418,9 +424,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
418
424
|
* @param opts - Options to control the clone behaviour
|
|
419
425
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
420
426
|
* @param skip - Keys that will be skipped in the clone
|
|
421
|
-
* @param skipIf -
|
|
422
|
-
* @param overrides -
|
|
423
|
-
* @param postClone -
|
|
427
|
+
* @param skipIf - Shared or per-type predicates that skip entities and their children
|
|
428
|
+
* @param overrides - Shared or per-type callbacks that supply creation options before defaults run
|
|
429
|
+
* @param postClone - Shared or per-type callbacks for any original/clone post-processing needed
|
|
424
430
|
* @returns Array of `Loaded` cloned entities from the provided list or empty array if all are skipped
|
|
425
431
|
*
|
|
426
432
|
* @example
|
|
@@ -442,9 +448,9 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
442
448
|
clone<T extends Entity$1, H extends LoadHint<T>, const K = ReactiveHint<T>>(entities: readonly T[], opts?: {
|
|
443
449
|
deep?: H;
|
|
444
450
|
skip?: K;
|
|
445
|
-
skipIf?:
|
|
446
|
-
overrides?:
|
|
447
|
-
postClone?:
|
|
451
|
+
skipIf?: CloneSkipIf<Entity$1>;
|
|
452
|
+
overrides?: CloneOverridesCallback<Entity$1>;
|
|
453
|
+
postClone?: ClonePostClone<Entity$1>;
|
|
448
454
|
}): Promise<Loaded<T, H>[]>;
|
|
449
455
|
/**
|
|
450
456
|
* Merges multiple source entities into a target entity by updating all references that point
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityManager.d.mts","names":["EntityW","Entity"],"sources":["../src/EntityManager.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqKiB,kBAAkB;;OAE5B,IAAI,+BAA+B;EAKxC;EACA,UAAU;;EAGV,gBAAgB,QAAQ,SAAS;;;iBAIlB,kBAAkB,UAAU;EAC3C,aAAa;EACb,UAAU,QAAQ,KAAK,QAAQ;EAC/B;EACA;EACA;EACA;EACA;;iBAGe,qBAAqB,UAAU,gBAAgB,KAAK,kBAAkB;EACrF;EACA;;;iBAIe,uBAAuB,UAAU;EAChD,aAAa;EACb;EACA;EACA;;;;;;;YAQU,+BAA+B,mBAAmB,IAAI,8BAA8B,cAAc;;YAGlG,KAAK,KAAK;EAAY,UAAU;IAAM;YAEtC;;YAGA,iBAAiB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"file":"EntityManager.d.mts","names":["EntityW","Entity"],"sources":["../src/EntityManager.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqKiB,kBAAkB;;OAE5B,IAAI,+BAA+B;EAKxC;EACA,UAAU;;EAGV,gBAAgB,QAAQ,SAAS;;;iBAIlB,kBAAkB,UAAU;EAC3C,aAAa;EACb,UAAU,QAAQ,KAAK,QAAQ;EAC/B;EACA;EACA;EACA;EACA;;iBAGe,qBAAqB,UAAU,gBAAgB,KAAK,kBAAkB;EACrF;EACA;;;iBAIe,uBAAuB,UAAU;EAChD,aAAa;EACb;EACA;EACA;;;;;;;YAQU,+BAA+B,mBAAmB,IAAI,8BAA8B,cAAc;;YAGlG,KAAK,KAAK;EAAY,UAAU;IAAM;YAEtC;;YAGA,iBAAiB,QAAQ,cAAc;;YAGvC,YAAY,UAAUA,SAAUA,YACtC,UAAU,oBACT,WAAW,YAAY,UAAU,QAAQ;;YAGpC,uBAAuB,UAAUA,SAAUA,YACjD,UAAU,MAAM,qBACf,WAAW,YAAY,UAAU,QAAQ,qBAAqB,QAAQ,QAAQ;;YAGzE,eAAe,UAAUA,SAAUA,YACzC,UAAU,GAAG,OAAO,iBACnB,WAAW,YAAY,UAAU,QAAQ,kBAAkB,OAAO,QAAQ;wBAEjE,KAAK,aAAa,SAAS;YAI/B;;iBAGK;;;;;;;EAOf;;KAGG,OAAO,OAAO,IAAI,eAAe,KAAK,OAAO;YAEtC,cAAc,eAAe;iBAExB;EACf;EACA;EACA;;YAGU,kBAAkB;EACxB,QAAQ,OAAO;EAAK;;EACpB;EAAoB,IAAI;;EACxB,gBAAgB;;iBAEL;;EAEf;;;;;;;;;YAUU;YAEA,uBACD,uBACA,+BACA,4BACA,0BACA,uBACA,uBACA,iCACA,iCACA,qCACA,gCACA,gCACA,+BACA,2BACA,oCACA,+BACA,mCACA;;;;;;;;;;;;;;;;;;;;;qBAsBE,cAAc,aAAa,iBAAeA,SAAUA,QAAS;;WACxD,KAAK;EACd,QAAQ,OAAO;;EAEf,KAAK;EACL;UAgDC;EAER,MAAM;EAEN,YAAY,KAAK,GAAG,MAAM,kBAAkB;EAC5C,YAAY,KAAK,GAAG,QAAQ,OAAO;;MA0G/B,YAAY,cAAcC;;MAK1B,kBAAkB;;EAkCtB,YAAY,UAAUA,UAAQ,MAAM,+BAA+B,KAAK,cAAc;;EAQtF,UAAU,UAAUA;IAAW;KAAc,IAAI,KAAK,KAAK;EAC3D,UAAU,IAAI,WAAWA;;;;;;;;;;;;EAkBZ,KAAK,UAAUD,QAAS,MAAM,+BAA+B,IAAI,OAAO,WAAW,KAAK,QAAQ;EAChG,KAAK,UAAUA,cAAe,UAAU,SAAS,IAC5D,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,UAAU,kBAAkB;IAAO,WAAW;MAC7C,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDd,MAAM,GAAG,GAAG,WAAW,UAAU,QAAQ;EACzC,MAAM,UAAUC,UAAQ,GAAG,YAAY,KAAK,QAAQ;EACpD,MAAM,UAAUA,gBAAc,UAAU,SAAS,IACtD,GAAG,YAAY,IACf;IAAW,UAAU;MACpB,QAAQ,OAAO,GAAG;EACd,YAAY,UAAU,kBAAkB,eAAe,GAAG,IAAI,cAAc,KAAK,QAAQ,YAAY;EACrG,MAAM,UAAU,mBAAmB,UAAU,qBAAqB,UAAU,qBACjF,GAAG,SAAS,GAAG,GAAG,YACjB,QAAQ,SAAS,GAAG,cAAc,GAAG;EACjC,MACL,UAAU,mBACJ,UAAU,mBACV,UAAU,SAAS,QAAQ,SAAS,GAAG,cAAc,GAAG,KAAKD,UACnE,UAAU,qBAEV,GAAG,SAAS,GAAG,GAAG,WAClB,SAAS,SAAS,GAAG,cAAc,GAAG,YAAYA;IAAY,UAAU;cACvE,QAAQ,OAAO,QAAQ,SAAS,GAAG,cAAc,GAAG,KAAKA,SAAU;;;;;EAwB/D,cAAc,UAAU,eAC7B,WAAW,IAAI,cAAc,KAC5B,QAAQ,cAAc,YAAY;EAC9B,QAAQ,GAAG,WAAW,WAAW,UAAU,QAAQ,cAAc;EACjE,QAAQ,UAAUC,UAAQ,WAAW,YAAY,KAAK,QAAQ,cAAc;EAC5E,cAAc,UAAU,kBAAkB,eAC/C,WAAW,IAAI,cAAc,KAC5B,QAAQ,cAAc,YAAY;EAC9B,QAAQ,UAAU,mBAAmB,UAAU,qBAAqB,UAAU,qBACnF,WAAW,SAAS,GAAG,GAAG,YACzB,QAAQ,cAAc,SAAS,GAAG,cAAc,GAAG;;UA+BxC;;UAmBA;;UAmBA;;;;;;UAgCA;;;;;;;;;;;;UA0CN;;;;;;EA2BK,QAAQ,UAAUD,QAC7B,MAAM,+BAA+B,IACrC,OAAO,uBAAuB,KAC7B,QAAQ;EACE,QAAQ,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,OAAO,uBAAuB,IAC9B,UAAU,qBAAqB;IAAO,WAAW;MAChD,QAAQ,OAAO,GAAG;EAeR,QAAQ,UAAUA,QAC7B,MAAM,+BAA+B,IACrC,OAAO,WAAW,KACjB,QAAQ;EACE,QAAQ,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,UAAU,kBAAkB;IAAO,WAAW;MAC7C,QAAQ,OAAO,GAAG;;EAiBR,cAAc,UAAUA,QACnC,MAAM,+BAA+B,IACrC,OAAO,WAAW,KACjB,QAAQ;EACE,cAAc,UAAUA,cAAe,UAAU,SAAS,IACrE,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,SAAS,kBAAkB;IAAO,WAAW;MAC5C,QAAQ,OAAO,GAAG;EAeR,aAAa,UAAUA,QAClC,MAAM,+BAA+B,IACrC,OAAO,aAAa,KACnB,QAAQ;EACE,aAAa,UAAUA,cAAe,UAAU,SAAS,IACpE,MAAM,+BAA+B,IACrC,OAAO,aAAa,IACpB;IAAY,WAAW;IAAG;MACzB,QAAQ,OAAO,GAAG;;;;;;;;;EAyCf,UAAU,UAAUA,QACxB,MAAM,+BAA+B,IACrC,OAAO,WAAW,KAAK,uBAAuB,IAC9C,UAAS,uBAAuB,KAC/B;;;;;;;EAmCG,QAAQ,UAAUA,QACtB,MAAM,+BAA+B,IACrC,OAAO,WAAW,IAClB,UAAS,uBAAuB,KAC/B;;;;;;;;;;;;;;;;EAwBG,qBAAqB,UAAUC,UAAQ,UAAU,QAAQ,OAAO,KACpE,MAAM,kBAAkB,IACxB,OAAO,IACN,QAAQ;EACL,qBAAqB,UAAUA,UAAQ,UAAU,QAAQ,OAAO,WAAW,UAAU,SAAS,IAClG,MAAM,kBAAkB,IACxB,OAAO,GACP;IAAY,WAAW;IAAG;MACzB,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;EAyCf,aACJ,UAAUD,QACV,UAAU,QAAQ,OAAO,KACzB,UAAU,QAAQ,OAAO,UACzB,UAAU,KAAK,OAAO,UAAU,UAAU,IAC1C,MAAM,kBAAkB,IAAI,OAAO,GAAG,OAAO,GAAG,SAAS,IAAI,QAAQ;EACjE,aACJ,UAAUA,QACV,UAAU,QAAQ,OAAO,KACzB,UAAU,QAAQ,OAAO,UACzB,UAAU,KAAK,OAAO,UAAU,UAAU,UACpC,UAAU,SAAS,IAEzB,MAAM,kBAAkB,IACxB,OAAO,GACP,OAAO,GACP,SAAS,GACT;IAAY,WAAW;IAAG;MACzB,QAAQ,OAAO,GAAG;;EA2Bd,OAAO,UAAUA,QAAS,UAAU,OAAO,IAAI,MAAM,kBAAkB,IAAI,MAAM,IAAI,IAAI,GAAG;;;;;;;;;;;;;EAgB5F,cAAc,UAAUA,QAAS,MAAM,kBAAkB,IAAI,MAAM,cAAc,OAAO,MAAM;;;;;;;;;;;EAc9F,OAAO,UAAUA,QAAS,MAAM,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCtF,MAAM,UAAUC,UAAQ,UAAU,SAAS,UAAU,IAAI,aAAa,IACjF,QAAQ,GACR;IACE,OAAO;IACP,OAAO;IACP,SAAS,YAAYA;IACrB,YAAY,uBAAuBA;IACnC,YAAY,eAAeA;MAE5B,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BR,MAAM,UAAUA,UAAQ,UAAU,SAAS,UAAU,IAAI,aAAa,IACjF,mBAAmB,KACnB;IACE,OAAO;IACP,OAAO;IACP,SAAS,YAAYA;IACrB,YAAY,uBAAuBA;IACnC,YAAY,eAAeA;MAE5B,QAAQ,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuKR,MAAM,UAAUA,UAAQ,QAAQ,GAAG,SAAS,KAAK;IAAS;MAAyB,QAAQA;;EA+E3F,KAAK,UAAUD;IAAY;KAAc,IAAI,KAAK,KAAK,QAAQ;EAC/D,KAAK,IAAI,WAAW,QAAQC;EAC5B,KAAK,UAAUD,QAAS,MAAM,+BAA+B,IAAI,IAAI,KAAK,KAAK,WAAW,QAAQ;EAClG,KAAK,UAAUA,cAAe,UAAU,SAAS,IAC5D,MAAM,+BAA+B,IACrC,IAAI,KAAK,KAAK,UACd,UAAU,IACT,QAAQ,OAAO,GAAG;;EAwCR,QAAQ,UAAUA,QAC7B,MAAM,+BAA+B,IACrC,yBACC,QAAQ;EACE,QAAQ,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,wBACA,UAAU,IACT,QAAQ,OAAO,GAAG;;;;;EA0DR,gBAAgB,UAAUA,QAAS,MAAM,kBAAkB,IAAI,yBAAyB,QAAQ;EAChG,gBAAgB,UAAUA,cAAe,UAAU,SAAS,IACvE,MAAM,kBAAkB,IACxB,wBACA,UAAU,IACT,QAAQ,OAAO,GAAG;;;;;;;EAwDR,SAAS,UAAUA,QAAS,GAAG,GAC1C,mBAAmB,KACnB,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG,KAC9B,QAAQ;EACE,SAAS,UAAUA,QAAS,UAAUA,QAAS,SAAS,UAAU,SAAS,IACtF,mBAAmB,KACnB,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG,IAC/B,UAAU,IACT,QAAQ,OAAO,GAAG;;;;;;EAkBd,cAAc,UAAUA,QAAS,MAAM,+BAA+B,IAAI,2BAA2B;;;;;;EAMrG,cAAc,UAAUA,QAC7B,MAAM,+BAA+B,IACrC,MAAM,kCACL,QAAQ;;;;EAIJ,cAAc,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,0BACA,UAAU,IACT,QAAQ,OAAO,GAAG;;;;EAId,cAAc,UAAUA,cAAe,UAAU,SAAS,IAC/D,MAAM,+BAA+B,IACrC,MAAM,iCACN,UAAU,IACT,QAAQ,OAAO,GAAG;;EAoBR,aAAa,UAAUA,QAAS,MAAM,+BAA+B,IAAI,kBAAkB,QAAQ;EACnG,aAAa,UAAUA,cAAe,UAAU,SAAS,IACpE,MAAM,+BAA+B,IACrC,iBACA,UAAU,IACT,QAAQ,OAAO,GAAG;;EAcR,SAAS,UAAUA,cAAe,UAAU,SAAS,IAAI,IAAI,OAAO,GAAG,IAClF,QAAQ,GACR,MAAM,GACN,MAAM,QAAQ,OAAO,GAAG,OAAO,IAC9B,QAAQ;EACE,SAAS,UAAUA,cAAe,UAAU,SAAS,IAAI,IAAI,OAAO,GAAG,IAClF,QAAQ,GACR;IAAQ,MAAM;IAAG;KACjB,MAAM,QAAQ,OAAO,GAAG,OAAO,IAC9B,QAAQ;EACE,SAAS,UAAUA,cAAe,UAAU,SAAS,IAChE,UAAU,cAAc,IACxB,MAAM,IACL,QAAQ,OAAO,GAAG;EACR,SAAS,UAAUA,cAAe,UAAU,SAAS,IAChE,UAAU,cAAc,IACxB;IAAQ,MAAM;IAAG;MAChB,QAAQ,OAAO,GAAG;;;;;;;;EAqER,YAAY,GAAG,KAAK,KAAK,OAAO,QAAQ,KAAK,QAAQ;;;;;;;;;;;;EAsBlE,OAAO,QAAQC;;;;;;;;;;;;EAYf,OAAO,UAAUA;EAiBX,gBAAY;;;;;;;;;;EAuBZ,YAAY,UAAUA,aAAW;;;;;;;;;;;;;;EAwBjC,MAAM,eAAc,eAAoB,QAAQA;;;;;;;;EA+Y/C;;;;;;;;;;;;;EAgBD,QAAQ;IAAS;MAAuB;EACxC,QAAQ,QAAQD,SAAU;EAC1B,QAAQ,UAAU,cAAcA,UAAW;MAmFtC;EAMJ,qBAAqB,UAAUA,QAAS,aAAa;;;;;;;;;;EAarD,QAAQ,UAAUA,QACvB,MAAM,+BAA+B,IACrC,sBACA;IAAY;MACX;;;;;;;;;;UAaK;;;;;;;;;;EAuBD,mBAAmB,UAAUA,QAClC,MAAM,+BAA+B,IACrC,SAAS,SACT;IAAY;MACX;;;;;;;;;EAqEI,MAAM,QAAQA;EACd,MAAM,UAAUA;;;;;;;;;;;;;;;EAqBhB,OAAO,QAAQA,SAAU;EACzB,OAAO,UAAUA,WAAY;EAC7B,OAAO,QAAQA,QAAS,uBAAuB;EAC/C,OAAO,UAAUA,UAAW,uBAAuB;;EAoEnD,YAAY,IAAI,OAAO,KAAK,OAAM;;EAMlC,WAAW,IAAI,OAAO,KAAK,OAAM;;EAMjC,aAAa,IAAI,OAAO,KAAK,OAAM;;EAMnC,YAAY,IAAI,OAAO,KAAK,OAAM;;;;;;;;;;;EAclC,UAAU,GAAG,GAClB,mBACA,kBACA,IAAI,YAAY,GAAG,IACnB,OAAO,QAAQ,GAAG,KACjB,WAAW,GAAG;;;;;;;EAcV,eAAe,GAAG,mBAAmB,kBAAkB,KAAK,MAAM,QAAQ,gBAAgB,YAAY;EAKtG;;UAKO;EA8Bd,mBAAmB,QAAQ;EAC3B,mBAAmB;;EAMnB,gBAAgB;;EAEhB,gBAAgB;;EAEhB,gBAAgB,QAAQ;;EAExB,gBAAgB;GAiCT,OAAO,iBAAiB;;EAO/B,eAAe,UAAUC,UAAQ,MAAM,kBAAkB,IAAI,OAAO,QAAQ,OAAO,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDzF,KAAK;IAAQ;MAAuC,cAAc,GAAGA,UAAQ;;;;;;;;;;;;;;;;;;;;;EA0I7E,aAAa,UAAUA,UAAQ,UAAU,IAAI;EAC7C,aAAa,UAAUA,UAAQ,UAAU,SAAS,IAAI,UAAU,OAAO,GAAG,IAAI,UAAU,GAAG,MAAM,IAAI;EAuDrG,UAAU,QAAQ;EAIlB,uBAAuB;MAInB;MAIA;;;iBA4FW;EACf,WAAW,KAAK,mBAAmB;;EAGnC,kBAAkB,YAAY;IAAc,MAAM;IAAU,SAAS;;;EAGrE,oBAAoB,IAAI;;EAGxB,cAAc,IAAI;;EAGlB,qBAAqB,GAAG,kBAAkB,oBAAoB;EAC9D,qBAAqB,GAAG,kBAAkB,mBAAmB,UAAU;EAEvE,OAAO,OAAO,mBAAmB;EACjC,IAAI;EACJ,cAAc;EACd,WAAW;EACX;EACA;EACA,YAAY,QAAQ;MAChB,eAAe;MACf,iBAAiB;EACrB,eAAe;EACf;EACA;EACA,iBAAiB,QAAQD;EACzB,mBAAmB,QAAQA;EAC3B;EACA,iBAAiB,MAAM,+BAA+B,mBAAmB;EACzE,gBAAgB;;wBAGF,iBAAiB,IAAI,gBAAgB;wBAMrC;wBAIA,sBAAsB;wBAItB;wBAIA,MAAM,SAAS;;wBAKf,WAAW,GAAG,sCAAsC,GAAG;;wBAmBvD,cAAc,UAAU,QAAQ,GAAG,eAAe,SAAS,GAAG,eAAe;;qBAKhF,sBAAsB;;qBAGtB,qBAAqB;EAChC,YAAY;;;wBA0IQ,WACpB,QAAQ,QACR,KAAK,gBAAgB,aAAa,wBACjC,QAAQ;wBAIK,kBAAkB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBAIpE,iBAAiB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBAInE,mBAAmB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBAIrE,kBAAkB,KAAK,IAAI,wBAAwB,MAAM,KAAK,MAAM;wBA+OpE,UAAU,eAAe,OAAO,uBAAuB,SAAS;wBAoChE,WAAW,KAAK;;qBAyFnB,yBAAyB;EACpC,YAAY;;;qBAMD,sBAAsB;EACjC;;;;;;;;wBA0Bc,YAAY,cAAc,OAAO;wBAsBjC,wBAAwB,GAAG,QAAQ;EAAQ;IAAmC"}
|
package/build/EntityManager.js
CHANGED
|
@@ -524,14 +524,14 @@ var EntityManager = class EntityManager {
|
|
|
524
524
|
const todo = /* @__PURE__ */ new Set();
|
|
525
525
|
const skipMap = /* @__PURE__ */ new WeakMap();
|
|
526
526
|
await crawl(todo, skipMap, Array.isArray(entityOrArray) ? entityOrArray : [entityOrArray], deep, {
|
|
527
|
-
skipIf,
|
|
527
|
+
skipIf: (entity) => invokeCloneCallback(skipIf, entity) ?? false,
|
|
528
528
|
skip
|
|
529
529
|
});
|
|
530
530
|
const deferredRelations = [];
|
|
531
531
|
const overrideMap = /* @__PURE__ */ new WeakMap();
|
|
532
532
|
const clones = [...todo].map((entity) => {
|
|
533
533
|
const skip = skipMap.get(entity) ?? [];
|
|
534
|
-
const override = overrides
|
|
534
|
+
const override = invokeCloneCallback(overrides, entity) ?? {};
|
|
535
535
|
overrideMap.set(entity, override);
|
|
536
536
|
const meta = getMetadata(entity);
|
|
537
537
|
const copy = Object.fromEntries(Object.values(meta.allFields).map((f) => {
|
|
@@ -584,7 +584,7 @@ var EntityManager = class EntityManager {
|
|
|
584
584
|
deferredRelations.forEach(([source, fieldName, target]) => {
|
|
585
585
|
entityToClone.get(source)[fieldName].set(entityToClone.get(target));
|
|
586
586
|
});
|
|
587
|
-
if (postClone) await Promise.all(clones.map((
|
|
587
|
+
if (postClone) await Promise.all(clones.map((pair) => invokeCloneCallback(postClone, ...pair)));
|
|
588
588
|
return Array.isArray(entityOrArray) ? entityOrArray.filter((original) => entityToClone.has(original)).map((original) => entityToClone.get(original)) : clones[0] ? clones[0][1] : fail("no entities were cloned given the provided options");
|
|
589
589
|
}
|
|
590
590
|
/**
|
|
@@ -1772,6 +1772,18 @@ function recalcSynchronousDerivedFields(todos) {
|
|
|
1772
1772
|
}
|
|
1773
1773
|
}
|
|
1774
1774
|
}
|
|
1775
|
+
/** Invokes only the most specific handler, falling back to a base type when no concrete-type handler exists. */
|
|
1776
|
+
function invokeCloneCallback(callback, ...args) {
|
|
1777
|
+
if (typeof callback === "function") return callback(...args);
|
|
1778
|
+
if (!callback) return void 0;
|
|
1779
|
+
const handlers = callback;
|
|
1780
|
+
let meta = getMetadata(args[0]);
|
|
1781
|
+
while (meta) {
|
|
1782
|
+
const handler = Object.hasOwn(handlers, meta.type) ? handlers[meta.type] : void 0;
|
|
1783
|
+
if (handler) return handler(...args);
|
|
1784
|
+
meta = meta.baseType ? getMetadataForType(meta.baseType) : void 0;
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1775
1787
|
/** Recursively crawls through `entity`, with the given populate `deep` hint, and adds anything found to `found`. */
|
|
1776
1788
|
async function crawl(found, skipMap, entities, deep, opts = {}) {
|
|
1777
1789
|
const { skipIf = () => false } = opts ?? {};
|