joist-orm 1.37.8 → 1.37.10
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/src/BaseEntity.js +9 -2
- package/build/src/BaseEntity.js.map +1 -1
- package/build/src/Entity.d.ts +1 -1
- package/build/src/dataloaders/oneToManyDataLoader.js +0 -1
- package/build/src/dataloaders/oneToManyDataLoader.js.map +1 -1
- package/build/src/getProperties.js +2 -1
- package/build/src/getProperties.js.map +1 -1
- package/build/src/relations/CustomCollection.d.ts +1 -1
- package/build/src/relations/CustomCollection.js +26 -14
- package/build/src/relations/CustomCollection.js.map +1 -1
- package/build/src/relations/CustomReference.d.ts +1 -1
- package/build/src/relations/CustomReference.js +25 -13
- package/build/src/relations/CustomReference.js.map +1 -1
- package/build/src/relations/ManyToManyCollection.d.ts +3 -2
- package/build/src/relations/ManyToManyCollection.js +52 -33
- package/build/src/relations/ManyToManyCollection.js.map +1 -1
- package/build/src/relations/ManyToOneReference.d.ts +2 -2
- package/build/src/relations/ManyToOneReference.js +44 -28
- package/build/src/relations/ManyToOneReference.js.map +1 -1
- package/build/src/relations/OneToManyCollection.d.ts +3 -4
- package/build/src/relations/OneToManyCollection.js +56 -36
- package/build/src/relations/OneToManyCollection.js.map +1 -1
- package/build/src/relations/OneToOneReference.d.ts +3 -2
- package/build/src/relations/OneToOneReference.js +35 -16
- package/build/src/relations/OneToOneReference.js.map +1 -1
- package/build/src/relations/hasAsyncProperty.d.ts +1 -1
- package/build/src/relations/hasAsyncProperty.js +18 -5
- package/build/src/relations/hasAsyncProperty.js.map +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.d.ts +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.js +25 -11
- package/build/src/relations/hasPersistedAsyncProperty.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToManyCollection.js","sourceRoot":"","sources":["../../../src/relations/ManyToManyCollection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ManyToManyCollection.js","sourceRoot":"","sources":["../../../src/relations/ManyToManyCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,8 +31,7 @@ export interface ManyToOneReference<T extends Entity, U extends Entity, N extend
|
|
|
31
31
|
* side, and the other side, i.e. `Author.image` will use a `OneToOneReference` to point back to us.
|
|
32
32
|
*/
|
|
33
33
|
export declare class ManyToOneReferenceImpl<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<U> implements ManyToOneReference<T, U, N> {
|
|
34
|
-
private
|
|
35
|
-
otherMeta: EntityMetadata<U>;
|
|
34
|
+
#private;
|
|
36
35
|
private fieldName;
|
|
37
36
|
otherFieldName: keyof U & string;
|
|
38
37
|
private loaded;
|
|
@@ -64,6 +63,7 @@ export declare class ManyToOneReferenceImpl<T extends Entity, U extends Entity,
|
|
|
64
63
|
current(opts?: {
|
|
65
64
|
withDeleted?: boolean;
|
|
66
65
|
}): U | string | N;
|
|
66
|
+
get otherMeta(): EntityMetadata<U>;
|
|
67
67
|
toString(): string;
|
|
68
68
|
private filterDeleted;
|
|
69
69
|
/** Returns the other relation that points back at us, i.e. we're `book.author_id` and this is `Author.books`. */
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _ManyToOneReferenceImpl_entity, _ManyToOneReferenceImpl_otherMeta, _a, _b, _c;
|
|
3
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
15
|
exports.ManyToOneReferenceImpl = exports.isManyToOneReference = exports.hasOne = void 0;
|
|
5
16
|
const Entity_1 = require("../Entity");
|
|
@@ -34,26 +45,28 @@ exports.isManyToOneReference = isManyToOneReference;
|
|
|
34
45
|
class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
35
46
|
constructor(entity, otherMeta, fieldName, otherFieldName) {
|
|
36
47
|
super();
|
|
37
|
-
this.entity = entity;
|
|
38
|
-
this.otherMeta = otherMeta;
|
|
39
48
|
this.fieldName = fieldName;
|
|
40
49
|
this.otherFieldName = otherFieldName;
|
|
50
|
+
_ManyToOneReferenceImpl_entity.set(this, void 0);
|
|
41
51
|
// We need a separate boolean to b/c loaded == undefined can still mean "_isLoaded" for nullable fks.
|
|
42
52
|
this._isLoaded = false;
|
|
53
|
+
_ManyToOneReferenceImpl_otherMeta.set(this, void 0);
|
|
43
54
|
this[_a] = null;
|
|
44
55
|
this[_b] = null;
|
|
45
56
|
this[_c] = null;
|
|
57
|
+
__classPrivateFieldSet(this, _ManyToOneReferenceImpl_entity, entity, "f");
|
|
58
|
+
__classPrivateFieldSet(this, _ManyToOneReferenceImpl_otherMeta, otherMeta, "f");
|
|
46
59
|
this.isCascadeDelete = otherMeta?.config.__data.cascadeDeleteFields.includes(fieldName);
|
|
47
60
|
}
|
|
48
61
|
async load(opts = {}) {
|
|
49
|
-
(0, index_1.ensureNotDeleted)(this
|
|
62
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { ignore: "pending" });
|
|
50
63
|
if (this._isLoaded && this.loaded && !opts.forceReload) {
|
|
51
64
|
return this.loaded;
|
|
52
65
|
}
|
|
53
66
|
const current = this.current();
|
|
54
67
|
// Resolve the id to an entity
|
|
55
68
|
if (!(0, Entity_1.isEntity)(current) && current !== undefined) {
|
|
56
|
-
this.loaded = (await this.
|
|
69
|
+
this.loaded = (await __classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f").em.load(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_otherMeta, "f").cstr, current));
|
|
57
70
|
}
|
|
58
71
|
else {
|
|
59
72
|
this.loaded = current;
|
|
@@ -71,13 +84,13 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
71
84
|
return this._isLoaded;
|
|
72
85
|
}
|
|
73
86
|
doGet(opts) {
|
|
74
|
-
(0, index_1.ensureNotDeleted)(this
|
|
87
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { ignore: "pending" });
|
|
75
88
|
// This should only be callable in the type system if we've already resolved this to an instance,
|
|
76
89
|
// but, just in case we somehow got here in an unloaded state, check to see if we're already in the UoW
|
|
77
90
|
if (!this._isLoaded) {
|
|
78
91
|
const existing = this.maybeFindEntity();
|
|
79
92
|
if (existing === undefined) {
|
|
80
|
-
throw new Error(`${this
|
|
93
|
+
throw new Error(`${__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f")}.${this.fieldName} was not loaded`);
|
|
81
94
|
}
|
|
82
95
|
this.loaded = existing;
|
|
83
96
|
this._isLoaded = true;
|
|
@@ -91,30 +104,30 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
91
104
|
return this.doGet({ withDeleted: false });
|
|
92
105
|
}
|
|
93
106
|
get id() {
|
|
94
|
-
(0, index_1.ensureNotDeleted)(this
|
|
107
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { ignore: "pending" });
|
|
95
108
|
return (0, index_1.maybeResolveReferenceToId)(this.current());
|
|
96
109
|
}
|
|
97
110
|
set id(id) {
|
|
98
|
-
(0, index_1.ensureNotDeleted)(this
|
|
111
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { ignore: "pending" });
|
|
99
112
|
const previous = this.maybeFindEntity();
|
|
100
|
-
const changed = (0, index_1.setField)(this
|
|
113
|
+
const changed = (0, index_1.setField)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), this.fieldName, id);
|
|
101
114
|
if (!changed) {
|
|
102
115
|
return;
|
|
103
116
|
}
|
|
104
|
-
this.loaded = id ? this.
|
|
117
|
+
this.loaded = id ? __classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f").em.getEntity(id) : undefined;
|
|
105
118
|
this._isLoaded = !!this.loaded;
|
|
106
119
|
this.maybeRemove(previous);
|
|
107
120
|
this.maybeAdd(this.maybeFindEntity());
|
|
108
121
|
}
|
|
109
122
|
// Internal method used by OneToManyCollection
|
|
110
123
|
setImpl(other) {
|
|
111
|
-
(0, index_1.ensureNotDeleted)(this
|
|
124
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { ignore: "pending" });
|
|
112
125
|
if ((0, EntityManager_1.sameEntity)(other, this.current({ withDeleted: true }))) {
|
|
113
126
|
return;
|
|
114
127
|
}
|
|
115
128
|
const previous = this.maybeFindEntity();
|
|
116
129
|
// Prefer to keep the id in our data hash, but if this is a new entity w/o an id, use the entity itself
|
|
117
|
-
(0, index_1.setField)(this
|
|
130
|
+
(0, index_1.setField)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), this.fieldName, (0, Entity_1.isEntity)(other) ? other?.id ?? other : other);
|
|
118
131
|
if (typeof other === "string") {
|
|
119
132
|
this.loaded = undefined;
|
|
120
133
|
this._isLoaded = false;
|
|
@@ -127,11 +140,11 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
127
140
|
this.maybeAdd(this.maybeFindEntity());
|
|
128
141
|
}
|
|
129
142
|
get idOrFail() {
|
|
130
|
-
(0, index_1.ensureNotDeleted)(this
|
|
143
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { ignore: "pending" });
|
|
131
144
|
return this.id || (0, index_1.fail)("Reference is unset or assigned to a new entity");
|
|
132
145
|
}
|
|
133
146
|
get idUntagged() {
|
|
134
|
-
return this.id && (0, index_1.deTagIds)(this
|
|
147
|
+
return this.id && (0, index_1.deTagIds)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_otherMeta, "f"), [this.id])[0];
|
|
135
148
|
}
|
|
136
149
|
get idUntaggedOrFail() {
|
|
137
150
|
return this.idUntagged || (0, index_1.fail)("Reference is unset or assigned to a new entity");
|
|
@@ -151,7 +164,7 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
151
164
|
if (this.isCascadeDelete) {
|
|
152
165
|
const current = this.current({ withDeleted: true });
|
|
153
166
|
if (current !== undefined && typeof current !== "string") {
|
|
154
|
-
this.
|
|
167
|
+
__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f").em.delete(current);
|
|
155
168
|
}
|
|
156
169
|
}
|
|
157
170
|
}
|
|
@@ -160,10 +173,10 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
160
173
|
if (current !== undefined) {
|
|
161
174
|
const o2m = this.getOtherRelation(current);
|
|
162
175
|
if (o2m instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
163
|
-
o2m.remove(this
|
|
176
|
+
o2m.remove(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { requireLoaded: false });
|
|
164
177
|
}
|
|
165
178
|
else if (o2m instanceof index_1.OneToManyLargeCollection) {
|
|
166
|
-
o2m.remove(this
|
|
179
|
+
o2m.remove(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"));
|
|
167
180
|
}
|
|
168
181
|
else if (o2m instanceof index_1.OneToOneReferenceImpl) {
|
|
169
182
|
o2m.set(undefined);
|
|
@@ -172,7 +185,7 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
172
185
|
throw new Error(`Unhandled ${o2m}`);
|
|
173
186
|
}
|
|
174
187
|
}
|
|
175
|
-
(0, index_1.setField)(this
|
|
188
|
+
(0, index_1.setField)(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), this.fieldName, undefined);
|
|
176
189
|
this.loaded = undefined;
|
|
177
190
|
this._isLoaded = true;
|
|
178
191
|
}
|
|
@@ -180,10 +193,10 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
180
193
|
if (other) {
|
|
181
194
|
const prevRelation = this.getOtherRelation(other);
|
|
182
195
|
if (prevRelation instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
183
|
-
prevRelation.removeIfLoaded(this
|
|
196
|
+
prevRelation.removeIfLoaded(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"));
|
|
184
197
|
}
|
|
185
198
|
else if (prevRelation instanceof index_1.OneToManyLargeCollection) {
|
|
186
|
-
prevRelation.remove(this
|
|
199
|
+
prevRelation.remove(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"));
|
|
187
200
|
}
|
|
188
201
|
else {
|
|
189
202
|
prevRelation.set(undefined, { percolating: true });
|
|
@@ -194,26 +207,29 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
194
207
|
if (other) {
|
|
195
208
|
const newRelation = this.getOtherRelation(other);
|
|
196
209
|
if (newRelation instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
197
|
-
newRelation.add(this
|
|
210
|
+
newRelation.add(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"));
|
|
198
211
|
}
|
|
199
212
|
else if (newRelation instanceof index_1.OneToManyLargeCollection) {
|
|
200
|
-
newRelation.add(this
|
|
213
|
+
newRelation.add(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"));
|
|
201
214
|
}
|
|
202
215
|
else {
|
|
203
|
-
newRelation.set(this
|
|
216
|
+
newRelation.set(__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f"), { percolating: true });
|
|
204
217
|
}
|
|
205
218
|
}
|
|
206
219
|
}
|
|
207
220
|
// We need to keep U in data[fieldName] to handle entities without an id assigned yet.
|
|
208
221
|
current(opts) {
|
|
209
|
-
const current = this.
|
|
222
|
+
const current = __classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f").__orm.data[this.fieldName];
|
|
210
223
|
if (current !== undefined && (0, Entity_1.isEntity)(current)) {
|
|
211
224
|
return this.filterDeleted(current, opts);
|
|
212
225
|
}
|
|
213
226
|
return current;
|
|
214
227
|
}
|
|
228
|
+
get otherMeta() {
|
|
229
|
+
return __classPrivateFieldGet(this, _ManyToOneReferenceImpl_otherMeta, "f");
|
|
230
|
+
}
|
|
215
231
|
toString() {
|
|
216
|
-
return `ManyToOneReference(entity: ${this
|
|
232
|
+
return `ManyToOneReference(entity: ${__classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f")}, fieldName: ${this.fieldName}, otherType: ${__classPrivateFieldGet(this, _ManyToOneReferenceImpl_otherMeta, "f").type}, otherFieldName: ${this.otherFieldName}, id: ${this.id})`;
|
|
217
233
|
}
|
|
218
234
|
filterDeleted(entity, opts) {
|
|
219
235
|
return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
|
|
@@ -228,9 +244,9 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
228
244
|
*/
|
|
229
245
|
maybeFindEntity() {
|
|
230
246
|
// Check this.loaded first b/c a new entity won't have an id yet
|
|
231
|
-
return this.loaded ?? (this.id !== undefined ? this.
|
|
247
|
+
return this.loaded ?? (this.id !== undefined ? __classPrivateFieldGet(this, _ManyToOneReferenceImpl_entity, "f").em.getEntity(this.id) : undefined);
|
|
232
248
|
}
|
|
233
249
|
}
|
|
234
250
|
exports.ManyToOneReferenceImpl = ManyToOneReferenceImpl;
|
|
235
|
-
_a = Relation_1.RelationT, _b = Relation_1.RelationU, _c = Reference_1.ReferenceN;
|
|
251
|
+
_ManyToOneReferenceImpl_entity = new WeakMap(), _ManyToOneReferenceImpl_otherMeta = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU, _c = Reference_1.ReferenceN;
|
|
236
252
|
//# sourceMappingURL=ManyToOneReference.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToOneReference.js","sourceRoot":"","sources":["../../../src/relations/ManyToOneReference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ManyToOneReference.js","sourceRoot":"","sources":["../../../src/relations/ManyToOneReference.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,11 @@ import { RelationT, RelationU } from "./Relation";
|
|
|
4
4
|
/** An alias for creating `OneToManyCollection`s. */
|
|
5
5
|
export declare function hasMany<T extends Entity, U extends Entity>(otherMeta: EntityMetadata<U>, fieldName: keyof T & string, otherFieldName: keyof U & string, otherColumnName: string): Collection<T, U>;
|
|
6
6
|
export declare class OneToManyCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<U[]> implements Collection<T, U> {
|
|
7
|
-
|
|
8
|
-
otherMeta: EntityMetadata<U>;
|
|
7
|
+
#private;
|
|
9
8
|
fieldName: keyof T & string;
|
|
10
9
|
otherFieldName: keyof U & string;
|
|
11
10
|
otherColumnName: string;
|
|
12
11
|
private loaded;
|
|
13
|
-
private addedBeforeLoaded;
|
|
14
|
-
private isCascadeDelete;
|
|
15
12
|
constructor(entity: T, otherMeta: EntityMetadata<U>, fieldName: keyof T & string, otherFieldName: keyof U & string, otherColumnName: string);
|
|
16
13
|
load(opts?: {
|
|
17
14
|
withDeleted?: boolean;
|
|
@@ -39,6 +36,8 @@ export declare class OneToManyCollection<T extends Entity, U extends Entity> ext
|
|
|
39
36
|
withDeleted?: boolean;
|
|
40
37
|
}): U[];
|
|
41
38
|
get meta(): EntityMetadata<T>;
|
|
39
|
+
get entity(): T;
|
|
40
|
+
get otherMeta(): EntityMetadata<U>;
|
|
42
41
|
toString(): string;
|
|
43
42
|
private filterDeleted;
|
|
44
43
|
/** Returns the other relation that points back at us, i.e. we're `Author.image` and this is `Image.author_id`. */
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _OneToManyCollection_entity, _OneToManyCollection_addedBeforeLoaded, _OneToManyCollection_isCascadeDelete, _OneToManyCollection_otherMeta, _a, _b;
|
|
3
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
15
|
exports.OneToManyCollection = exports.hasMany = void 0;
|
|
5
16
|
const oneToManyDataLoader_1 = require("../dataloaders/oneToManyDataLoader");
|
|
@@ -19,51 +30,54 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
19
30
|
// These are public to our internal implementation but not exposed in the Collection API
|
|
20
31
|
entity, otherMeta, fieldName, otherFieldName, otherColumnName) {
|
|
21
32
|
super();
|
|
22
|
-
this.entity = entity;
|
|
23
|
-
this.otherMeta = otherMeta;
|
|
24
33
|
this.fieldName = fieldName;
|
|
25
34
|
this.otherFieldName = otherFieldName;
|
|
26
35
|
this.otherColumnName = otherColumnName;
|
|
36
|
+
_OneToManyCollection_entity.set(this, void 0);
|
|
27
37
|
// We don't need to track removedBeforeLoaded, because if a child is removed in our unloaded state,
|
|
28
38
|
// when we load and get back the `child X has parent_id = our id` rows from the db, `loaderForCollection`
|
|
29
39
|
// groups the hydrated rows by their _current parent m2o field value_, which for a removed child will no
|
|
30
40
|
// longer be us, so it will effectively not show up in our post-load `loaded` array.
|
|
31
|
-
this
|
|
41
|
+
_OneToManyCollection_addedBeforeLoaded.set(this, []);
|
|
42
|
+
_OneToManyCollection_isCascadeDelete.set(this, void 0);
|
|
43
|
+
_OneToManyCollection_otherMeta.set(this, void 0);
|
|
32
44
|
this[_a] = null;
|
|
33
45
|
this[_b] = null;
|
|
34
|
-
this
|
|
46
|
+
__classPrivateFieldSet(this, _OneToManyCollection_entity, entity, "f");
|
|
47
|
+
__classPrivateFieldSet(this, _OneToManyCollection_otherMeta, otherMeta, "f");
|
|
48
|
+
__classPrivateFieldSet(this, _OneToManyCollection_isCascadeDelete, (0, index_1.getMetadata)(entity).config.__data.cascadeDeleteFields.includes(fieldName), "f");
|
|
35
49
|
}
|
|
36
50
|
// opts is an internal parameter
|
|
37
51
|
async load(opts = {}) {
|
|
38
|
-
(0, index_1.ensureNotDeleted)(this
|
|
52
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"), { ignore: "pending" });
|
|
39
53
|
if (this.loaded === undefined || opts.forceReload) {
|
|
40
|
-
if (this.
|
|
54
|
+
if (__classPrivateFieldGet(this, _OneToManyCollection_entity, "f").idTagged === undefined) {
|
|
41
55
|
this.loaded = [];
|
|
42
56
|
}
|
|
43
57
|
else {
|
|
44
|
-
this.loaded = await (0, oneToManyDataLoader_1.oneToManyDataLoader)(this.
|
|
58
|
+
this.loaded = await (0, oneToManyDataLoader_1.oneToManyDataLoader)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f").em, this).load(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f").idTagged);
|
|
45
59
|
}
|
|
46
60
|
this.maybeAppendAddedBeforeLoaded();
|
|
47
61
|
}
|
|
48
62
|
return this.filterDeleted(this.loaded, opts);
|
|
49
63
|
}
|
|
50
64
|
async find(id) {
|
|
51
|
-
(0, index_1.ensureNotDeleted)(this
|
|
65
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"), { ignore: "pending" });
|
|
52
66
|
if (this.loaded !== undefined) {
|
|
53
67
|
return this.loaded.find((other) => other.id === id);
|
|
54
68
|
}
|
|
55
69
|
else {
|
|
56
|
-
const added = this.
|
|
70
|
+
const added = __classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f").find((u) => u.id === id);
|
|
57
71
|
if (added) {
|
|
58
72
|
return added;
|
|
59
73
|
}
|
|
60
74
|
// Make a cacheable tuple to look up this specific o2m row
|
|
61
|
-
const key = `id=${id},${this.otherColumnName}=${this.
|
|
62
|
-
return (0, oneToManyFindDataLoader_1.oneToManyFindDataLoader)(this.
|
|
75
|
+
const key = `id=${id},${this.otherColumnName}=${__classPrivateFieldGet(this, _OneToManyCollection_entity, "f").idOrFail}`;
|
|
76
|
+
return (0, oneToManyFindDataLoader_1.oneToManyFindDataLoader)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f").em, this).load(key);
|
|
63
77
|
}
|
|
64
78
|
}
|
|
65
79
|
async includes(other) {
|
|
66
|
-
return (0, index_1.sameEntity)(this
|
|
80
|
+
return (0, index_1.sameEntity)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"), this.getOtherRelation(other).current());
|
|
67
81
|
}
|
|
68
82
|
get isLoaded() {
|
|
69
83
|
return this.loaded !== undefined;
|
|
@@ -75,7 +89,7 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
75
89
|
return this.filterDeleted(this.doGet(), { withDeleted: true });
|
|
76
90
|
}
|
|
77
91
|
doGet() {
|
|
78
|
-
(0, index_1.ensureNotDeleted)(this
|
|
92
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"), { ignore: "pending" });
|
|
79
93
|
if (this.loaded === undefined) {
|
|
80
94
|
// This should only be callable in the type system if we've already resolved this to an instance
|
|
81
95
|
throw new Error("get was called when not preloaded");
|
|
@@ -83,15 +97,15 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
83
97
|
return this.loaded;
|
|
84
98
|
}
|
|
85
99
|
set(values) {
|
|
86
|
-
(0, index_1.ensureNotDeleted)(this
|
|
100
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"));
|
|
87
101
|
if (this.loaded === undefined) {
|
|
88
102
|
throw new Error("set was called when not loaded");
|
|
89
103
|
}
|
|
90
104
|
// If we're changing `a1.books = [b1, b2]` to `a1.books = [b2]`, then implicitly delete the old book
|
|
91
|
-
const otherCannotChange = this.
|
|
92
|
-
if (this
|
|
105
|
+
const otherCannotChange = __classPrivateFieldGet(this, _OneToManyCollection_otherMeta, "f").fields[this.otherFieldName].immutable;
|
|
106
|
+
if (__classPrivateFieldGet(this, _OneToManyCollection_isCascadeDelete, "f") && otherCannotChange) {
|
|
93
107
|
const implicitlyDeleted = this.loaded.filter((e) => !values.includes(e));
|
|
94
|
-
implicitlyDeleted.forEach((e) => this.
|
|
108
|
+
implicitlyDeleted.forEach((e) => __classPrivateFieldGet(this, _OneToManyCollection_entity, "f").em.delete(e));
|
|
95
109
|
// Keep the implicitlyDeleted values for `getWithDeleted` to return
|
|
96
110
|
values.push(...implicitlyDeleted);
|
|
97
111
|
}
|
|
@@ -110,10 +124,10 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
110
124
|
}
|
|
111
125
|
}
|
|
112
126
|
add(other) {
|
|
113
|
-
(0, index_1.ensureNotDeleted)(this
|
|
127
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"));
|
|
114
128
|
if (this.loaded === undefined) {
|
|
115
|
-
if (!this.
|
|
116
|
-
this.
|
|
129
|
+
if (!__classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f").includes(other)) {
|
|
130
|
+
__classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f").push(other);
|
|
117
131
|
}
|
|
118
132
|
}
|
|
119
133
|
else {
|
|
@@ -122,21 +136,21 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
122
136
|
}
|
|
123
137
|
}
|
|
124
138
|
// This will no-op and mark other dirty if necessary
|
|
125
|
-
this.getOtherRelation(other).set(this
|
|
139
|
+
this.getOtherRelation(other).set(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"));
|
|
126
140
|
}
|
|
127
141
|
// We're not supported remove(other) because that might leave other.otherFieldName as undefined,
|
|
128
142
|
// which we don't know if that's valid or not, i.e. depending on whether the field is nullable.
|
|
129
143
|
remove(other, opts = { requireLoaded: true }) {
|
|
130
|
-
(0, index_1.ensureNotDeleted)(this
|
|
144
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"), { ignore: "pending" });
|
|
131
145
|
if (this.loaded === undefined && opts.requireLoaded) {
|
|
132
146
|
throw new Error("remove was called when not loaded");
|
|
133
147
|
}
|
|
134
|
-
(0, utils_1.remove)(this.loaded || this
|
|
148
|
+
(0, utils_1.remove)(this.loaded || __classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f"), other);
|
|
135
149
|
// This will no-op and mark other dirty if necessary
|
|
136
150
|
this.getOtherRelation(other).set(undefined);
|
|
137
151
|
}
|
|
138
152
|
removeAll() {
|
|
139
|
-
(0, index_1.ensureNotDeleted)(this
|
|
153
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"));
|
|
140
154
|
if (this.loaded === undefined) {
|
|
141
155
|
throw new Error("removeAll was called when not loaded");
|
|
142
156
|
}
|
|
@@ -160,12 +174,12 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
160
174
|
(0, utils_1.remove)(this.loaded, other);
|
|
161
175
|
}
|
|
162
176
|
else {
|
|
163
|
-
(0, utils_1.remove)(this
|
|
177
|
+
(0, utils_1.remove)(__classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f"), other);
|
|
164
178
|
}
|
|
165
179
|
}
|
|
166
180
|
maybeCascadeDelete() {
|
|
167
|
-
if (this
|
|
168
|
-
this.current({ withDeleted: true }).forEach((e) => this.
|
|
181
|
+
if (__classPrivateFieldGet(this, _OneToManyCollection_isCascadeDelete, "f")) {
|
|
182
|
+
this.current({ withDeleted: true }).forEach((e) => __classPrivateFieldGet(this, _OneToManyCollection_entity, "f").em.delete(e));
|
|
169
183
|
}
|
|
170
184
|
}
|
|
171
185
|
// We already unhooked all children in our addedBeforeLoaded list; now load the full list if necessary.
|
|
@@ -173,32 +187,38 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
173
187
|
const current = await this.load({ withDeleted: true });
|
|
174
188
|
current.forEach((other) => {
|
|
175
189
|
const m2o = this.getOtherRelation(other);
|
|
176
|
-
if ((0, index_1.maybeResolveReferenceToId)(m2o.current({ withDeleted: true })) === this.
|
|
190
|
+
if ((0, index_1.maybeResolveReferenceToId)(m2o.current({ withDeleted: true })) === __classPrivateFieldGet(this, _OneToManyCollection_entity, "f").id) {
|
|
177
191
|
// TODO What if other.otherFieldName is required/not-null?
|
|
178
192
|
m2o.set(undefined);
|
|
179
193
|
}
|
|
180
194
|
});
|
|
181
195
|
this.loaded = [];
|
|
182
|
-
this
|
|
196
|
+
__classPrivateFieldSet(this, _OneToManyCollection_addedBeforeLoaded, [], "f");
|
|
183
197
|
}
|
|
184
198
|
maybeAppendAddedBeforeLoaded() {
|
|
185
199
|
if (this.loaded) {
|
|
186
|
-
const newEntities = this.
|
|
200
|
+
const newEntities = __classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f").filter((e) => !this.loaded?.includes(e));
|
|
187
201
|
// Push on the end to better match the db order of "newer things come last"
|
|
188
202
|
for (const e of newEntities) {
|
|
189
203
|
this.loaded.push(e);
|
|
190
204
|
}
|
|
191
|
-
this
|
|
205
|
+
__classPrivateFieldSet(this, _OneToManyCollection_addedBeforeLoaded, [], "f");
|
|
192
206
|
}
|
|
193
207
|
}
|
|
194
208
|
current(opts) {
|
|
195
|
-
return this.filterDeleted(this.loaded || this
|
|
209
|
+
return this.filterDeleted(this.loaded || __classPrivateFieldGet(this, _OneToManyCollection_addedBeforeLoaded, "f"), opts);
|
|
196
210
|
}
|
|
197
211
|
get meta() {
|
|
198
|
-
return (0, index_1.getMetadata)(this
|
|
212
|
+
return (0, index_1.getMetadata)(__classPrivateFieldGet(this, _OneToManyCollection_entity, "f"));
|
|
213
|
+
}
|
|
214
|
+
get entity() {
|
|
215
|
+
return __classPrivateFieldGet(this, _OneToManyCollection_entity, "f");
|
|
216
|
+
}
|
|
217
|
+
get otherMeta() {
|
|
218
|
+
return __classPrivateFieldGet(this, _OneToManyCollection_otherMeta, "f");
|
|
199
219
|
}
|
|
200
220
|
toString() {
|
|
201
|
-
return `OneToManyCollection(entity: ${this
|
|
221
|
+
return `OneToManyCollection(entity: ${__classPrivateFieldGet(this, _OneToManyCollection_entity, "f")}, fieldName: ${this.fieldName}, otherType: ${__classPrivateFieldGet(this, _OneToManyCollection_otherMeta, "f").type}, otherFieldName: ${this.otherFieldName})`;
|
|
202
222
|
}
|
|
203
223
|
filterDeleted(entities, opts) {
|
|
204
224
|
return opts?.withDeleted === true ? [...entities] : entities.filter((e) => !e.isDeletedEntity);
|
|
@@ -209,5 +229,5 @@ class OneToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
209
229
|
}
|
|
210
230
|
}
|
|
211
231
|
exports.OneToManyCollection = OneToManyCollection;
|
|
212
|
-
_a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
232
|
+
_OneToManyCollection_entity = new WeakMap(), _OneToManyCollection_addedBeforeLoaded = new WeakMap(), _OneToManyCollection_isCascadeDelete = new WeakMap(), _OneToManyCollection_otherMeta = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
213
233
|
//# sourceMappingURL=OneToManyCollection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OneToManyCollection.js","sourceRoot":"","sources":["../../../src/relations/OneToManyCollection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OneToManyCollection.js","sourceRoot":"","sources":["../../../src/relations/OneToManyCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,8 +44,7 @@ export declare function hasOneToOne<T extends Entity, U extends Entity>(otherMet
|
|
|
44
44
|
* `Reference` seemed worth the downside of a un-type-safe `.id` property.
|
|
45
45
|
*/
|
|
46
46
|
export declare class OneToOneReferenceImpl<T extends Entity, U extends Entity> extends AbstractRelationImpl<U> implements OneToOneReference<T, U> {
|
|
47
|
-
|
|
48
|
-
otherMeta: EntityMetadata<U>;
|
|
47
|
+
#private;
|
|
49
48
|
fieldName: keyof T & string;
|
|
50
49
|
otherFieldName: keyof U & string;
|
|
51
50
|
otherColumnName: string;
|
|
@@ -67,7 +66,9 @@ export declare class OneToOneReferenceImpl<T extends Entity, U extends Entity> e
|
|
|
67
66
|
}): void;
|
|
68
67
|
get isLoaded(): boolean;
|
|
69
68
|
get getWithDeleted(): U | undefined;
|
|
69
|
+
get entity(): T;
|
|
70
70
|
get get(): U | undefined;
|
|
71
|
+
get otherMeta(): EntityMetadata<U>;
|
|
71
72
|
private doGet;
|
|
72
73
|
setFromOpts(other: U): void;
|
|
73
74
|
initializeForNewEntity(): void;
|