joist-core 2.4.0-next.38 → 2.4.0-next.39
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 +11 -3
- package/build/EntityManager.cjs.map +1 -1
- package/build/EntityManager.d.cts +8 -2
- package/build/EntityManager.d.cts.map +1 -1
- package/build/EntityManager.d.mts +8 -2
- package/build/EntityManager.d.mts.map +1 -1
- package/build/EntityManager.js +11 -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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BatchLoader } from "./batchloaders/BatchLoader.cjs";
|
|
2
|
-
import { OptsOf, OrderOf } from "./typeMap.cjs";
|
|
2
|
+
import { OptsOf, OrderOf, TypeMap } from "./typeMap.cjs";
|
|
3
3
|
import { Collection } from "./relations/Collection.cjs";
|
|
4
4
|
import { lazyColumnLoadOperation } from "./relations/LazyField.cjs";
|
|
5
5
|
import { Reference } from "./relations/Reference.cjs";
|
|
@@ -94,6 +94,8 @@ export type IdOf<T> = T extends {
|
|
|
94
94
|
id: infer I;
|
|
95
95
|
} ? I : never;
|
|
96
96
|
export type TaggedId = string;
|
|
97
|
+
/** Creation options for any registered entity type, since deep clones can include more than the root type. */
|
|
98
|
+
export type CloneOverrides = Partial<TypeMap[keyof TypeMap]["optsType"]>;
|
|
97
99
|
export declare function isId(value: any): value is IdOf<unknown>;
|
|
98
100
|
export type EntityManagerHook = "beforeBegin" | "afterBegin" | "beforeCommit" | "afterCommit";
|
|
99
101
|
/** Options for EntityManager transaction hooks. */
|
|
@@ -378,6 +380,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
378
380
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
379
381
|
* @param skip - Keys that will be skipped in the clone
|
|
380
382
|
* @param skipIf - Predicate for determining if a specific entity should be skipped (and any entities beneath it
|
|
383
|
+
* @param overrides - Creation options for each entity, applied before defaults and instead of copied values
|
|
381
384
|
* @param postClone - Function to be called for each original/clone entity for any post-processing needed
|
|
382
385
|
* @returns The `Loaded` cloned entity or fails if the clone could not be made
|
|
383
386
|
*
|
|
@@ -405,6 +408,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
405
408
|
deep?: H;
|
|
406
409
|
skip?: K;
|
|
407
410
|
skipIf?: (entity: Entity$1) => boolean;
|
|
411
|
+
overrides?: (original: Entity$1) => CloneOverrides;
|
|
408
412
|
postClone?: (original: Entity$1, clone: Entity$1) => void;
|
|
409
413
|
}): Promise<Loaded<T, H>>;
|
|
410
414
|
/**
|
|
@@ -415,6 +419,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
415
419
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
416
420
|
* @param skip - Keys that will be skipped in the clone
|
|
417
421
|
* @param skipIf - Predicate for determining if a specific entity should be skipped (and any entities beneath it
|
|
422
|
+
* @param overrides - Creation options for each entity, applied before defaults and instead of copied values
|
|
418
423
|
* @param postClone - Function to be called for each original/clone entity for any post-processing needed
|
|
419
424
|
* @returns Array of `Loaded` cloned entities from the provided list or empty array if all are skipped
|
|
420
425
|
*
|
|
@@ -428,7 +433,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
428
433
|
*
|
|
429
434
|
* @example
|
|
430
435
|
* // This will duplicate the author's books, and assign them to a different author
|
|
431
|
-
* const duplicatedBooks = await em.clone(author.books.get, {
|
|
436
|
+
* const duplicatedBooks = await em.clone(author.books.get, { overrides: () => ({ author: author2 }) })
|
|
432
437
|
*
|
|
433
438
|
* @example
|
|
434
439
|
* // This will duplicate the author's books, but skip any book where the title includes `sea`
|
|
@@ -438,6 +443,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
438
443
|
deep?: H;
|
|
439
444
|
skip?: K;
|
|
440
445
|
skipIf?: (entity: Entity$1) => boolean;
|
|
446
|
+
overrides?: (original: Entity$1) => CloneOverrides;
|
|
441
447
|
postClone?: (original: Entity$1, clone: Entity$1) => void;
|
|
442
448
|
}): Promise<Loaded<T, H>[]>;
|
|
443
449
|
/**
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"EntityManager.d.cts","names":["EntityW","Entity"],"sources":["../src/EntityManager.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BatchLoader } from "./batchloaders/BatchLoader.mjs";
|
|
2
|
-
import { OptsOf, OrderOf } from "./typeMap.mjs";
|
|
2
|
+
import { OptsOf, OrderOf, TypeMap } from "./typeMap.mjs";
|
|
3
3
|
import { Collection } from "./relations/Collection.mjs";
|
|
4
4
|
import { lazyColumnLoadOperation } from "./relations/LazyField.mjs";
|
|
5
5
|
import { Reference } from "./relations/Reference.mjs";
|
|
@@ -94,6 +94,8 @@ export type IdOf<T> = T extends {
|
|
|
94
94
|
id: infer I;
|
|
95
95
|
} ? I : never;
|
|
96
96
|
export type TaggedId = string;
|
|
97
|
+
/** Creation options for any registered entity type, since deep clones can include more than the root type. */
|
|
98
|
+
export type CloneOverrides = Partial<TypeMap[keyof TypeMap]["optsType"]>;
|
|
97
99
|
export declare function isId(value: any): value is IdOf<unknown>;
|
|
98
100
|
export type EntityManagerHook = "beforeBegin" | "afterBegin" | "beforeCommit" | "afterCommit";
|
|
99
101
|
/** Options for EntityManager transaction hooks. */
|
|
@@ -378,6 +380,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
378
380
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
379
381
|
* @param skip - Keys that will be skipped in the clone
|
|
380
382
|
* @param skipIf - Predicate for determining if a specific entity should be skipped (and any entities beneath it
|
|
383
|
+
* @param overrides - Creation options for each entity, applied before defaults and instead of copied values
|
|
381
384
|
* @param postClone - Function to be called for each original/clone entity for any post-processing needed
|
|
382
385
|
* @returns The `Loaded` cloned entity or fails if the clone could not be made
|
|
383
386
|
*
|
|
@@ -405,6 +408,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
405
408
|
deep?: H;
|
|
406
409
|
skip?: K;
|
|
407
410
|
skipIf?: (entity: Entity$1) => boolean;
|
|
411
|
+
overrides?: (original: Entity$1) => CloneOverrides;
|
|
408
412
|
postClone?: (original: Entity$1, clone: Entity$1) => void;
|
|
409
413
|
}): Promise<Loaded<T, H>>;
|
|
410
414
|
/**
|
|
@@ -415,6 +419,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
415
419
|
* @param deep - Populate hint of the nested tree of objects to clone
|
|
416
420
|
* @param skip - Keys that will be skipped in the clone
|
|
417
421
|
* @param skipIf - Predicate for determining if a specific entity should be skipped (and any entities beneath it
|
|
422
|
+
* @param overrides - Creation options for each entity, applied before defaults and instead of copied values
|
|
418
423
|
* @param postClone - Function to be called for each original/clone entity for any post-processing needed
|
|
419
424
|
* @returns Array of `Loaded` cloned entities from the provided list or empty array if all are skipped
|
|
420
425
|
*
|
|
@@ -428,7 +433,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
428
433
|
*
|
|
429
434
|
* @example
|
|
430
435
|
* // This will duplicate the author's books, and assign them to a different author
|
|
431
|
-
* const duplicatedBooks = await em.clone(author.books.get, {
|
|
436
|
+
* const duplicatedBooks = await em.clone(author.books.get, { overrides: () => ({ author: author2 }) })
|
|
432
437
|
*
|
|
433
438
|
* @example
|
|
434
439
|
* // This will duplicate the author's books, but skip any book where the title includes `sea`
|
|
@@ -438,6 +443,7 @@ export declare class EntityManager<C = unknown, Entity$1 extends Entity = Entity
|
|
|
438
443
|
deep?: H;
|
|
439
444
|
skip?: K;
|
|
440
445
|
skipIf?: (entity: Entity$1) => boolean;
|
|
446
|
+
overrides?: (original: Entity$1) => CloneOverrides;
|
|
441
447
|
postClone?: (original: Entity$1, clone: Entity$1) => void;
|
|
442
448
|
}): Promise<Loaded<T, H>[]>;
|
|
443
449
|
/**
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"EntityManager.d.mts","names":["EntityW","Entity"],"sources":["../src/EntityManager.ts"],"mappings":"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"}
|
package/build/EntityManager.js
CHANGED
|
@@ -520,7 +520,7 @@ var EntityManager = class EntityManager {
|
|
|
520
520
|
return upsert(this, type, input);
|
|
521
521
|
}
|
|
522
522
|
async clone(entityOrArray, opts) {
|
|
523
|
-
const { deep = {}, skipIf, skip = {}, postClone } = opts ?? {};
|
|
523
|
+
const { deep = {}, skipIf, skip = {}, overrides, postClone } = opts ?? {};
|
|
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, {
|
|
@@ -528,10 +528,14 @@ var EntityManager = class EntityManager {
|
|
|
528
528
|
skip
|
|
529
529
|
});
|
|
530
530
|
const deferredRelations = [];
|
|
531
|
+
const overrideMap = /* @__PURE__ */ new WeakMap();
|
|
531
532
|
const clones = [...todo].map((entity) => {
|
|
532
533
|
const skip = skipMap.get(entity) ?? [];
|
|
534
|
+
const override = overrides?.(entity) ?? {};
|
|
535
|
+
overrideMap.set(entity, override);
|
|
533
536
|
const meta = getMetadata(entity);
|
|
534
537
|
const copy = Object.fromEntries(Object.values(meta.allFields).map((f) => {
|
|
538
|
+
if (Object.hasOwn(override, f.fieldName)) return [f.fieldName, override[f.fieldName]];
|
|
535
539
|
if (skip.includes(f.fieldName)) return void 0;
|
|
536
540
|
switch (f.kind) {
|
|
537
541
|
case "primitive": if (!f.derived && !f.protected) return [f.fieldName, getField(entity, f.fieldName)];
|
|
@@ -561,11 +565,15 @@ var EntityManager = class EntityManager {
|
|
|
561
565
|
default: assertNever(f);
|
|
562
566
|
}
|
|
563
567
|
}).filter(isDefined));
|
|
564
|
-
return [entity, this.create(asConcreteCstr(meta.cstr),
|
|
568
|
+
return [entity, this.create(asConcreteCstr(meta.cstr), {
|
|
569
|
+
...copy,
|
|
570
|
+
...override
|
|
571
|
+
})];
|
|
565
572
|
});
|
|
566
573
|
const entityToClone = new Map(clones);
|
|
567
|
-
clones.forEach(([, clone]) => {
|
|
574
|
+
clones.forEach(([original, clone]) => {
|
|
568
575
|
getRelationEntries(clone).forEach(([fieldName, value]) => {
|
|
576
|
+
if (Object.hasOwn(overrideMap.get(original), fieldName)) return;
|
|
569
577
|
if (value instanceof ManyToOneReferenceImpl || value instanceof PolymorphicReferenceImpl || value instanceof ReactiveReferenceImpl) {
|
|
570
578
|
const existingIdOrEntity = getField(clone, fieldName);
|
|
571
579
|
const existing = isEntity(existingIdOrEntity) ? existingIdOrEntity : this.getEntity(existingIdOrEntity);
|