joist-orm 1.47.2 → 1.48.0
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 +5 -0
- package/build/src/BaseEntity.js.map +1 -1
- package/build/src/EntityManager.js +22 -19
- package/build/src/EntityManager.js.map +1 -1
- package/build/src/Todo.js +7 -7
- package/build/src/Todo.js.map +1 -1
- package/build/src/config.js +17 -21
- package/build/src/config.js.map +1 -1
- package/build/src/drivers/IdAssigner.js +2 -4
- package/build/src/drivers/IdAssigner.js.map +1 -1
- package/build/src/drivers/InMemoryDriver.js +15 -6
- package/build/src/drivers/InMemoryDriver.js.map +1 -1
- package/build/src/drivers/PostgresDriver.js +2 -0
- package/build/src/drivers/PostgresDriver.js.map +1 -1
- package/build/src/getProperties.js +2 -3
- package/build/src/getProperties.js.map +1 -1
- package/build/src/loadHints.d.ts +3 -2
- package/build/src/loadHints.js.map +1 -1
- package/build/src/loadLens.js +1 -1
- package/build/src/loadLens.js.map +1 -1
- package/build/src/newTestInstance.js +3 -1
- package/build/src/newTestInstance.js.map +1 -1
- package/build/src/relations/CustomCollection.js +20 -29
- package/build/src/relations/CustomCollection.js.map +1 -1
- package/build/src/relations/CustomReference.js +20 -29
- package/build/src/relations/CustomReference.js.map +1 -1
- package/build/src/relations/ManyToManyCollection.js +46 -52
- package/build/src/relations/ManyToManyCollection.js.map +1 -1
- package/build/src/relations/ManyToManyLargeCollection.js +14 -9
- package/build/src/relations/ManyToManyLargeCollection.js.map +1 -1
- package/build/src/relations/ManyToOneReference.js +39 -47
- package/build/src/relations/ManyToOneReference.js.map +1 -1
- package/build/src/relations/OneToManyCollection.js +49 -58
- package/build/src/relations/OneToManyCollection.js.map +1 -1
- package/build/src/relations/OneToManyLargeCollection.js +12 -9
- package/build/src/relations/OneToManyLargeCollection.js.map +1 -1
- package/build/src/relations/OneToOneReference.js +28 -36
- package/build/src/relations/OneToOneReference.js.map +1 -1
- package/build/src/relations/PolymorphicReference.js +9 -7
- package/build/src/relations/PolymorphicReference.js.map +1 -1
- package/build/src/relations/hasAsyncProperty.js +9 -19
- package/build/src/relations/hasAsyncProperty.js.map +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.js +17 -25
- package/build/src/relations/hasPersistedAsyncProperty.js.map +1 -1
- package/build/src/rules.js +1 -0
- package/build/src/rules.js.map +1 -1
- package/build/src/serde.js +40 -21
- package/build/src/serde.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
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 _ManyToManyCollection_entity, _ManyToManyCollection_otherMeta, _a, _b;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.ManyToManyCollection = exports.hasManyToMany = void 0;
|
|
16
4
|
const __1 = require("../");
|
|
@@ -26,6 +14,17 @@ function hasManyToMany(joinTableName, fieldName, columnName, otherMeta, otherFie
|
|
|
26
14
|
}
|
|
27
15
|
exports.hasManyToMany = hasManyToMany;
|
|
28
16
|
class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
17
|
+
joinTableName;
|
|
18
|
+
fieldName;
|
|
19
|
+
columnName;
|
|
20
|
+
otherFieldName;
|
|
21
|
+
otherColumnName;
|
|
22
|
+
#entity;
|
|
23
|
+
loaded;
|
|
24
|
+
addedBeforeLoaded = [];
|
|
25
|
+
removedBeforeLoaded = [];
|
|
26
|
+
isCascadeDelete;
|
|
27
|
+
#otherMeta;
|
|
29
28
|
constructor(joinTableName,
|
|
30
29
|
// I.e. when entity = Book:
|
|
31
30
|
// fieldName == tags, because it's our collection to tags
|
|
@@ -39,14 +38,8 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
39
38
|
this.columnName = columnName;
|
|
40
39
|
this.otherFieldName = otherFieldName;
|
|
41
40
|
this.otherColumnName = otherColumnName;
|
|
42
|
-
|
|
43
|
-
this
|
|
44
|
-
this.removedBeforeLoaded = [];
|
|
45
|
-
_ManyToManyCollection_otherMeta.set(this, void 0);
|
|
46
|
-
this[_a] = null;
|
|
47
|
-
this[_b] = null;
|
|
48
|
-
__classPrivateFieldSet(this, _ManyToManyCollection_entity, entity, "f");
|
|
49
|
-
__classPrivateFieldSet(this, _ManyToManyCollection_otherMeta, otherMeta, "f");
|
|
41
|
+
this.#entity = entity;
|
|
42
|
+
this.#otherMeta = otherMeta;
|
|
50
43
|
this.isCascadeDelete = otherMeta?.config.__data.cascadeDeleteFields.includes(fieldName);
|
|
51
44
|
}
|
|
52
45
|
/** Removes pending-hard-delete or soft-deleted entities, unless explicitly asked for. */
|
|
@@ -56,16 +49,16 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
56
49
|
: entities.filter((e) => !e.isDeletedEntity && !e.isSoftDeletedEntity);
|
|
57
50
|
}
|
|
58
51
|
async load(opts = {}) {
|
|
59
|
-
(0, __1.ensureNotDeleted)(
|
|
52
|
+
(0, __1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
60
53
|
if (this.loaded === undefined || opts.forceReload) {
|
|
61
|
-
const key = `${this.columnName}=${
|
|
62
|
-
this.loaded = await (0, manyToManyDataLoader_1.manyToManyDataLoader)(
|
|
54
|
+
const key = `${this.columnName}=${this.#entity.id}`;
|
|
55
|
+
this.loaded = await (0, manyToManyDataLoader_1.manyToManyDataLoader)(this.#entity.em, this).load(key);
|
|
63
56
|
this.maybeApplyAddedAndRemovedBeforeLoaded();
|
|
64
57
|
}
|
|
65
58
|
return this.filterDeleted(this.loaded, opts);
|
|
66
59
|
}
|
|
67
60
|
async find(id) {
|
|
68
|
-
(0, __1.ensureNotDeleted)(
|
|
61
|
+
(0, __1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
69
62
|
if (this.loaded !== undefined) {
|
|
70
63
|
return this.loaded.find((u) => u.id === id);
|
|
71
64
|
}
|
|
@@ -75,13 +68,13 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
75
68
|
return added;
|
|
76
69
|
}
|
|
77
70
|
// Make a cacheable tuple to look up this specific m2m row
|
|
78
|
-
const key = `${this.columnName}=${
|
|
79
|
-
const includes = await (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(
|
|
80
|
-
return includes ?
|
|
71
|
+
const key = `${this.columnName}=${this.#entity.id},${this.otherColumnName}=${id}`;
|
|
72
|
+
const includes = await (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.#entity.em, this).load(key);
|
|
73
|
+
return includes ? this.#entity.em.load(id) : undefined;
|
|
81
74
|
}
|
|
82
75
|
}
|
|
83
76
|
async includes(other) {
|
|
84
|
-
(0, __1.ensureNotDeleted)(
|
|
77
|
+
(0, __1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
85
78
|
if (this.loaded !== undefined) {
|
|
86
79
|
return this.loaded.includes(other);
|
|
87
80
|
}
|
|
@@ -93,12 +86,12 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
93
86
|
return false;
|
|
94
87
|
}
|
|
95
88
|
// Make a cacheable tuple to look up this specific m2m row
|
|
96
|
-
const key = `${this.columnName}=${
|
|
97
|
-
return (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(
|
|
89
|
+
const key = `${this.columnName}=${this.#entity.idOrFail},${this.otherColumnName}=${other.idOrFail}`;
|
|
90
|
+
return (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.#entity.em, this).load(key);
|
|
98
91
|
}
|
|
99
92
|
}
|
|
100
93
|
add(other, percolated = false) {
|
|
101
|
-
(0, __1.ensureNotDeleted)(
|
|
94
|
+
(0, __1.ensureNotDeleted)(this.#entity);
|
|
102
95
|
if (this.loaded !== undefined) {
|
|
103
96
|
if (this.loaded.includes(other)) {
|
|
104
97
|
return;
|
|
@@ -115,18 +108,18 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
115
108
|
const joinRow = {
|
|
116
109
|
id: undefined,
|
|
117
110
|
m2m: this,
|
|
118
|
-
[this.columnName]:
|
|
111
|
+
[this.columnName]: this.#entity,
|
|
119
112
|
[this.otherColumnName]: other,
|
|
120
113
|
};
|
|
121
|
-
(0, utils_1.getOrSet)(
|
|
122
|
-
other[this.otherFieldName].add(
|
|
114
|
+
(0, utils_1.getOrSet)(this.#entity.em.__data.joinRows, this.joinTableName, []).push(joinRow);
|
|
115
|
+
other[this.otherFieldName].add(this.#entity, true);
|
|
123
116
|
}
|
|
124
117
|
}
|
|
125
118
|
remove(other, percolated = false) {
|
|
126
|
-
(0, __1.ensureNotDeleted)(
|
|
119
|
+
(0, __1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
127
120
|
if (!percolated) {
|
|
128
|
-
const joinRows = (0, utils_1.getOrSet)(
|
|
129
|
-
const row = joinRows.find((r) => r[this.columnName] ===
|
|
121
|
+
const joinRows = (0, utils_1.getOrSet)(this.#entity.em.__data.joinRows, this.joinTableName, []);
|
|
122
|
+
const row = joinRows.find((r) => r[this.columnName] === this.#entity && r[this.otherColumnName] === other);
|
|
130
123
|
if (row) {
|
|
131
124
|
row.deleted = true;
|
|
132
125
|
}
|
|
@@ -135,13 +128,13 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
135
128
|
// Use -1 to force the sortJoinRows to notice us as dirty ("delete: true but id is set")
|
|
136
129
|
id: -1,
|
|
137
130
|
m2m: this,
|
|
138
|
-
[this.columnName]:
|
|
131
|
+
[this.columnName]: this.#entity,
|
|
139
132
|
[this.otherColumnName]: other,
|
|
140
133
|
deleted: true,
|
|
141
134
|
};
|
|
142
|
-
(0, utils_1.getOrSet)(
|
|
135
|
+
(0, utils_1.getOrSet)(this.#entity.em.__data.joinRows, this.joinTableName, []).push(joinRow);
|
|
143
136
|
}
|
|
144
|
-
other[this.otherFieldName].remove(
|
|
137
|
+
other[this.otherFieldName].remove(this.#entity, true);
|
|
145
138
|
}
|
|
146
139
|
if (this.loaded !== undefined) {
|
|
147
140
|
(0, utils_1.remove)(this.loaded, other);
|
|
@@ -157,7 +150,7 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
157
150
|
return this.loaded !== undefined;
|
|
158
151
|
}
|
|
159
152
|
doGet() {
|
|
160
|
-
(0, __1.ensureNotDeleted)(
|
|
153
|
+
(0, __1.ensureNotDeleted)(this.#entity);
|
|
161
154
|
if (this.loaded === undefined) {
|
|
162
155
|
// This should only be callable in the type system if we've already resolved this to an instance
|
|
163
156
|
throw new Error("get was called when not loaded");
|
|
@@ -171,7 +164,7 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
171
164
|
return this.filterDeleted(this.doGet(), { withDeleted: false });
|
|
172
165
|
}
|
|
173
166
|
set(values) {
|
|
174
|
-
(0, __1.ensureNotDeleted)(
|
|
167
|
+
(0, __1.ensureNotDeleted)(this.#entity);
|
|
175
168
|
if (this.loaded === undefined) {
|
|
176
169
|
throw new Error("set was called when not loaded");
|
|
177
170
|
}
|
|
@@ -190,7 +183,7 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
190
183
|
}
|
|
191
184
|
}
|
|
192
185
|
removeAll() {
|
|
193
|
-
(0, __1.ensureNotDeleted)(
|
|
186
|
+
(0, __1.ensureNotDeleted)(this.#entity);
|
|
194
187
|
if (this.loaded === undefined) {
|
|
195
188
|
throw new Error("removeAll was called when not loaded");
|
|
196
189
|
}
|
|
@@ -211,14 +204,14 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
211
204
|
}
|
|
212
205
|
maybeCascadeDelete() {
|
|
213
206
|
if (this.isCascadeDelete) {
|
|
214
|
-
this.current({ withDeleted: true }).forEach((e) =>
|
|
207
|
+
this.current({ withDeleted: true }).forEach((e) => this.#entity.em.delete(e));
|
|
215
208
|
}
|
|
216
209
|
}
|
|
217
210
|
async cleanupOnEntityDeleted() {
|
|
218
211
|
const entities = await this.load({ withDeleted: true });
|
|
219
212
|
entities.forEach((other) => {
|
|
220
213
|
const m2m = other[this.otherFieldName];
|
|
221
|
-
m2m.remove(
|
|
214
|
+
m2m.remove(this.#entity);
|
|
222
215
|
});
|
|
223
216
|
this.loaded = [];
|
|
224
217
|
}
|
|
@@ -228,8 +221,8 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
228
221
|
// this.addedBeforeLoaded = [];
|
|
229
222
|
this.removedBeforeLoaded.forEach((e) => {
|
|
230
223
|
(0, utils_1.remove)(this.loaded, e);
|
|
231
|
-
const { em } =
|
|
232
|
-
const row = em.__data.joinRows[this.joinTableName].find((r) => r[this.columnName] ===
|
|
224
|
+
const { em } = this.#entity;
|
|
225
|
+
const row = em.__data.joinRows[this.joinTableName].find((r) => r[this.columnName] === this.#entity && r[this.otherColumnName] === e);
|
|
233
226
|
if (row) {
|
|
234
227
|
row.deleted = true;
|
|
235
228
|
}
|
|
@@ -241,18 +234,19 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
241
234
|
return this.filterDeleted(this.loaded || this.addedBeforeLoaded, opts);
|
|
242
235
|
}
|
|
243
236
|
get entity() {
|
|
244
|
-
return
|
|
237
|
+
return this.#entity;
|
|
245
238
|
}
|
|
246
239
|
get meta() {
|
|
247
|
-
return (0, __1.getMetadata)(
|
|
240
|
+
return (0, __1.getMetadata)(this.#entity);
|
|
248
241
|
}
|
|
249
242
|
get otherMeta() {
|
|
250
|
-
return
|
|
243
|
+
return this.#otherMeta;
|
|
251
244
|
}
|
|
252
245
|
toString() {
|
|
253
|
-
return `OneToManyCollection(entity: ${
|
|
246
|
+
return `OneToManyCollection(entity: ${this.#entity}, fieldName: ${this.fieldName}, otherType: ${this.#otherMeta.type}, otherFieldName: ${this.otherFieldName})`;
|
|
254
247
|
}
|
|
248
|
+
[Relation_1.RelationT] = null;
|
|
249
|
+
[Relation_1.RelationU] = null;
|
|
255
250
|
}
|
|
256
251
|
exports.ManyToManyCollection = ManyToManyCollection;
|
|
257
|
-
_ManyToManyCollection_entity = new WeakMap(), _ManyToManyCollection_otherMeta = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
258
252
|
//# sourceMappingURL=ManyToManyCollection.js.map
|
|
@@ -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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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.ManyToManyLargeCollection = exports.hasLargeManyToMany = void 0;
|
|
5
4
|
const manyToManyFindDataLoader_1 = require("../dataloaders/manyToManyFindDataLoader");
|
|
@@ -14,6 +13,17 @@ function hasLargeManyToMany(joinTableName, fieldName, columnName, otherMeta, oth
|
|
|
14
13
|
}
|
|
15
14
|
exports.hasLargeManyToMany = hasLargeManyToMany;
|
|
16
15
|
class ManyToManyLargeCollection {
|
|
16
|
+
joinTableName;
|
|
17
|
+
entity;
|
|
18
|
+
fieldName;
|
|
19
|
+
columnName;
|
|
20
|
+
otherMeta;
|
|
21
|
+
otherFieldName;
|
|
22
|
+
otherColumnName;
|
|
23
|
+
// Even though a large collection can never be loaded, we do track local
|
|
24
|
+
// mutations so that `find` can be accurate.
|
|
25
|
+
locallyAdded = [];
|
|
26
|
+
locallyRemoved = [];
|
|
17
27
|
constructor(joinTableName,
|
|
18
28
|
// I.e. when entity = Book:
|
|
19
29
|
// fieldName == tags, because it's our collection to tags
|
|
@@ -28,13 +38,6 @@ class ManyToManyLargeCollection {
|
|
|
28
38
|
this.otherMeta = otherMeta;
|
|
29
39
|
this.otherFieldName = otherFieldName;
|
|
30
40
|
this.otherColumnName = otherColumnName;
|
|
31
|
-
// Even though a large collection can never be loaded, we do track local
|
|
32
|
-
// mutations so that `find` can be accurate.
|
|
33
|
-
this.locallyAdded = [];
|
|
34
|
-
this.locallyRemoved = [];
|
|
35
|
-
this.isLoaded = false;
|
|
36
|
-
this[_a] = null;
|
|
37
|
-
this[_b] = null;
|
|
38
41
|
}
|
|
39
42
|
async find(id) {
|
|
40
43
|
(0, index_1.ensureNotDeleted)(this.entity, { ignore: "pending" });
|
|
@@ -92,7 +95,9 @@ class ManyToManyLargeCollection {
|
|
|
92
95
|
toString() {
|
|
93
96
|
return `ManyToManyLargeCollection(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.otherMeta.type}, otherFieldName: ${this.otherFieldName})`;
|
|
94
97
|
}
|
|
98
|
+
isLoaded = false;
|
|
99
|
+
[Relation_1.RelationT] = null;
|
|
100
|
+
[Relation_1.RelationU] = null;
|
|
95
101
|
}
|
|
96
102
|
exports.ManyToManyLargeCollection = ManyToManyLargeCollection;
|
|
97
|
-
_a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
98
103
|
//# sourceMappingURL=ManyToManyLargeCollection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToManyLargeCollection.js","sourceRoot":"","sources":["../../../src/relations/ManyToManyLargeCollection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ManyToManyLargeCollection.js","sourceRoot":"","sources":["../../../src/relations/ManyToManyLargeCollection.ts"],"names":[],"mappings":";;;AAAA,sFAAmF;AAEnF,oDAAsE;AAEtE,oCAA+E;AAC/E,oCAAkC;AAElC,yCAAkD;AAElD,0DAA0D;AAC1D,SAAgB,kBAAkB,CAChC,aAAqB,EACrB,SAA2B,EAC3B,UAAkB,EAClB,SAA4B,EAC5B,cAAgC,EAChC,eAAuB;IAEvB,MAAM,MAAM,GAAG,4CAAiC,CAAC;IACjD,OAAO,IAAI,yBAAyB,CAClC,aAAa,EACb,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,cAAc,EACd,eAAe,CAChB,CAAC;AACJ,CAAC;AAlBD,gDAkBC;AAED,MAAa,yBAAyB;IAO3B;IAMA;IACA;IACA;IACA;IACA;IACA;IAjBT,wEAAwE;IACxE,4CAA4C;IACpC,YAAY,GAAQ,EAAE,CAAC;IACvB,cAAc,GAAQ,EAAE,CAAC;IAEjC,YACS,aAAqB;IAC5B,2BAA2B;IAC3B,yDAAyD;IACzD,4FAA4F;IAC5F,gDAAgD;IAChD,yEAAyE;IAClE,MAAS,EACT,SAA2B,EAC3B,UAAkB,EAClB,SAA4B,EAC5B,cAAgC,EAChC,eAAuB;QAXvB,kBAAa,GAAb,aAAa,CAAQ;QAMrB,WAAM,GAAN,MAAM,CAAG;QACT,cAAS,GAAT,SAAS,CAAkB;QAC3B,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAmB;QAC5B,mBAAc,GAAd,cAAc,CAAkB;QAChC,oBAAe,GAAf,eAAe,CAAQ;IAC7B,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,EAAW;QACpB,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAErD,mGAAmG;QACnG,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE;YACZ,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,WAAW,EAAE;YACf,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,OAAO,SAAS,CAAC;SAClB;QAED,0DAA0D;QAC1D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,MAAM,IAAA,mDAAwB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAQ;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,WAAW,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;YAChD,OAAO,KAAK,CAAC;SACd;QAED,0DAA0D;QAC1D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACvF,OAAO,IAAA,mDAAwB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAA,cAAM,EAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;QACA,KAAK,CAAC,IAAI,CAAC,cAAc,CAAuC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,IAAA,cAAM,EAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;QACA,KAAK,CAAC,IAAI,CAAC,cAAc,CAAuC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAA,mBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ;QACb,OAAO,qCAAqC,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC;IACtK,CAAC;IAED,QAAQ,GAAG,KAAK,CAAC;IAEjB,CAAC,oBAAS,CAAC,GAAM,IAAK,CAAC;IACvB,CAAC,oBAAS,CAAC,GAAM,IAAK,CAAC;CACxB;AA9FD,8DA8FC"}
|
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
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;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.ManyToOneReferenceImpl = exports.isManyToOneReference = exports.hasOne = void 0;
|
|
16
4
|
const Entity_1 = require("../Entity");
|
|
@@ -43,30 +31,32 @@ exports.isManyToOneReference = isManyToOneReference;
|
|
|
43
31
|
* side, and the other side, i.e. `Author.image` will use a `OneToOneReference` to point back to us.
|
|
44
32
|
*/
|
|
45
33
|
class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
34
|
+
fieldName;
|
|
35
|
+
otherFieldName;
|
|
36
|
+
#entity;
|
|
37
|
+
// Either the loaded entity, or N/undefined if we're allowed to be null
|
|
38
|
+
loaded;
|
|
39
|
+
// We need a separate boolean to b/c loaded == undefined can still mean "_isLoaded" for nullable fks.
|
|
40
|
+
_isLoaded = false;
|
|
41
|
+
isCascadeDelete;
|
|
42
|
+
#otherMeta;
|
|
46
43
|
constructor(entity, otherMeta, fieldName, otherFieldName) {
|
|
47
44
|
super();
|
|
48
45
|
this.fieldName = fieldName;
|
|
49
46
|
this.otherFieldName = otherFieldName;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this._isLoaded = false;
|
|
53
|
-
_ManyToOneReferenceImpl_otherMeta.set(this, void 0);
|
|
54
|
-
this[_a] = null;
|
|
55
|
-
this[_b] = null;
|
|
56
|
-
this[_c] = null;
|
|
57
|
-
__classPrivateFieldSet(this, _ManyToOneReferenceImpl_entity, entity, "f");
|
|
58
|
-
__classPrivateFieldSet(this, _ManyToOneReferenceImpl_otherMeta, otherMeta, "f");
|
|
47
|
+
this.#entity = entity;
|
|
48
|
+
this.#otherMeta = otherMeta;
|
|
59
49
|
this.isCascadeDelete = otherMeta?.config.__data.cascadeDeleteFields.includes(fieldName);
|
|
60
50
|
}
|
|
61
51
|
async load(opts = {}) {
|
|
62
|
-
(0, index_1.ensureNotDeleted)(
|
|
52
|
+
(0, index_1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
63
53
|
if (this._isLoaded && this.loaded && !opts.forceReload) {
|
|
64
54
|
return this.loaded;
|
|
65
55
|
}
|
|
66
56
|
const current = this.current();
|
|
67
57
|
// Resolve the id to an entity
|
|
68
58
|
if (!(0, Entity_1.isEntity)(current) && current !== undefined) {
|
|
69
|
-
this.loaded = (await
|
|
59
|
+
this.loaded = (await this.#entity.em.load(this.#otherMeta.cstr, current));
|
|
70
60
|
}
|
|
71
61
|
else {
|
|
72
62
|
this.loaded = current;
|
|
@@ -84,13 +74,13 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
84
74
|
return this._isLoaded;
|
|
85
75
|
}
|
|
86
76
|
doGet(opts) {
|
|
87
|
-
(0, index_1.ensureNotDeleted)(
|
|
77
|
+
(0, index_1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
88
78
|
// This should only be callable in the type system if we've already resolved this to an instance,
|
|
89
79
|
// but, just in case we somehow got here in an unloaded state, check to see if we're already in the UoW
|
|
90
80
|
if (!this._isLoaded) {
|
|
91
81
|
const existing = this.maybeFindEntity();
|
|
92
82
|
if (existing === undefined) {
|
|
93
|
-
throw new Error(`${
|
|
83
|
+
throw new Error(`${this.#entity}.${this.fieldName} was not loaded`);
|
|
94
84
|
}
|
|
95
85
|
this.loaded = existing;
|
|
96
86
|
this._isLoaded = true;
|
|
@@ -104,30 +94,30 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
104
94
|
return this.doGet({ withDeleted: false });
|
|
105
95
|
}
|
|
106
96
|
get id() {
|
|
107
|
-
(0, index_1.ensureNotDeleted)(
|
|
97
|
+
(0, index_1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
108
98
|
return (0, index_1.maybeResolveReferenceToId)(this.current());
|
|
109
99
|
}
|
|
110
100
|
set id(id) {
|
|
111
|
-
(0, index_1.ensureNotDeleted)(
|
|
101
|
+
(0, index_1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
112
102
|
const previous = this.maybeFindEntity();
|
|
113
|
-
const changed = (0, index_1.setField)(
|
|
103
|
+
const changed = (0, index_1.setField)(this.#entity, this.fieldName, id);
|
|
114
104
|
if (!changed) {
|
|
115
105
|
return;
|
|
116
106
|
}
|
|
117
|
-
this.loaded = id ?
|
|
107
|
+
this.loaded = id ? this.#entity.em.getEntity(id) : undefined;
|
|
118
108
|
this._isLoaded = !!this.loaded;
|
|
119
109
|
this.maybeRemove(previous);
|
|
120
110
|
this.maybeAdd(this.maybeFindEntity());
|
|
121
111
|
}
|
|
122
112
|
// Internal method used by OneToManyCollection
|
|
123
113
|
setImpl(other) {
|
|
124
|
-
(0, index_1.ensureNotDeleted)(
|
|
114
|
+
(0, index_1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
125
115
|
if ((0, EntityManager_1.sameEntity)(other, this.current({ withDeleted: true }))) {
|
|
126
116
|
return;
|
|
127
117
|
}
|
|
128
118
|
const previous = this.maybeFindEntity();
|
|
129
119
|
// Prefer to keep the id in our data hash, but if this is a new entity w/o an id, use the entity itself
|
|
130
|
-
(0, index_1.setField)(
|
|
120
|
+
(0, index_1.setField)(this.#entity, this.fieldName, (0, Entity_1.isEntity)(other) ? other?.id ?? other : other);
|
|
131
121
|
if (typeof other === "string") {
|
|
132
122
|
this.loaded = undefined;
|
|
133
123
|
this._isLoaded = false;
|
|
@@ -140,11 +130,11 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
140
130
|
this.maybeAdd(this.maybeFindEntity());
|
|
141
131
|
}
|
|
142
132
|
get idOrFail() {
|
|
143
|
-
(0, index_1.ensureNotDeleted)(
|
|
133
|
+
(0, index_1.ensureNotDeleted)(this.#entity, { ignore: "pending" });
|
|
144
134
|
return this.id || (0, index_1.fail)("Reference is unset or assigned to a new entity");
|
|
145
135
|
}
|
|
146
136
|
get idUntagged() {
|
|
147
|
-
return this.id && (0, index_1.deTagIds)(
|
|
137
|
+
return this.id && (0, index_1.deTagIds)(this.#otherMeta, [this.id])[0];
|
|
148
138
|
}
|
|
149
139
|
get idUntaggedOrFail() {
|
|
150
140
|
return this.idUntagged || (0, index_1.fail)("Reference is unset or assigned to a new entity");
|
|
@@ -164,7 +154,7 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
164
154
|
if (this.isCascadeDelete) {
|
|
165
155
|
const current = this.current({ withDeleted: true });
|
|
166
156
|
if (current !== undefined && typeof current !== "string") {
|
|
167
|
-
|
|
157
|
+
this.#entity.em.delete(current);
|
|
168
158
|
}
|
|
169
159
|
}
|
|
170
160
|
}
|
|
@@ -173,10 +163,10 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
173
163
|
if (current !== undefined) {
|
|
174
164
|
const o2m = this.getOtherRelation(current);
|
|
175
165
|
if (o2m instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
176
|
-
o2m.remove(
|
|
166
|
+
o2m.remove(this.#entity, { requireLoaded: false });
|
|
177
167
|
}
|
|
178
168
|
else if (o2m instanceof index_1.OneToManyLargeCollection) {
|
|
179
|
-
o2m.remove(
|
|
169
|
+
o2m.remove(this.#entity);
|
|
180
170
|
}
|
|
181
171
|
else if (o2m instanceof index_1.OneToOneReferenceImpl) {
|
|
182
172
|
o2m.set(undefined);
|
|
@@ -185,7 +175,7 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
185
175
|
throw new Error(`Unhandled ${o2m}`);
|
|
186
176
|
}
|
|
187
177
|
}
|
|
188
|
-
(0, index_1.setField)(
|
|
178
|
+
(0, index_1.setField)(this.#entity, this.fieldName, undefined);
|
|
189
179
|
this.loaded = undefined;
|
|
190
180
|
this._isLoaded = true;
|
|
191
181
|
}
|
|
@@ -193,10 +183,10 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
193
183
|
if (other) {
|
|
194
184
|
const prevRelation = this.getOtherRelation(other);
|
|
195
185
|
if (prevRelation instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
196
|
-
prevRelation.removeIfLoaded(
|
|
186
|
+
prevRelation.removeIfLoaded(this.#entity);
|
|
197
187
|
}
|
|
198
188
|
else if (prevRelation instanceof index_1.OneToManyLargeCollection) {
|
|
199
|
-
prevRelation.remove(
|
|
189
|
+
prevRelation.remove(this.#entity);
|
|
200
190
|
}
|
|
201
191
|
else {
|
|
202
192
|
prevRelation.set(undefined, { percolating: true });
|
|
@@ -207,29 +197,29 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
207
197
|
if (other) {
|
|
208
198
|
const newRelation = this.getOtherRelation(other);
|
|
209
199
|
if (newRelation instanceof OneToManyCollection_1.OneToManyCollection) {
|
|
210
|
-
newRelation.add(
|
|
200
|
+
newRelation.add(this.#entity);
|
|
211
201
|
}
|
|
212
202
|
else if (newRelation instanceof index_1.OneToManyLargeCollection) {
|
|
213
|
-
newRelation.add(
|
|
203
|
+
newRelation.add(this.#entity);
|
|
214
204
|
}
|
|
215
205
|
else {
|
|
216
|
-
newRelation.set(
|
|
206
|
+
newRelation.set(this.#entity, { percolating: true });
|
|
217
207
|
}
|
|
218
208
|
}
|
|
219
209
|
}
|
|
220
210
|
// We need to keep U in data[fieldName] to handle entities without an id assigned yet.
|
|
221
211
|
current(opts) {
|
|
222
|
-
const current =
|
|
212
|
+
const current = this.#entity.__orm.data[this.fieldName];
|
|
223
213
|
if (current !== undefined && (0, Entity_1.isEntity)(current)) {
|
|
224
214
|
return this.filterDeleted(current, opts);
|
|
225
215
|
}
|
|
226
216
|
return current;
|
|
227
217
|
}
|
|
228
218
|
get otherMeta() {
|
|
229
|
-
return
|
|
219
|
+
return this.#otherMeta;
|
|
230
220
|
}
|
|
231
221
|
toString() {
|
|
232
|
-
return `ManyToOneReference(entity: ${
|
|
222
|
+
return `ManyToOneReference(entity: ${this.#entity}, fieldName: ${this.fieldName}, otherType: ${this.#otherMeta.type}, otherFieldName: ${this.otherFieldName}, id: ${this.id})`;
|
|
233
223
|
}
|
|
234
224
|
/**
|
|
235
225
|
* Removes pending-hard-delete (but not soft-deleted), unless explicitly asked for.
|
|
@@ -256,9 +246,11 @@ class ManyToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl
|
|
|
256
246
|
*/
|
|
257
247
|
maybeFindEntity() {
|
|
258
248
|
// Check this.loaded first b/c a new entity won't have an id yet
|
|
259
|
-
return this.loaded ?? (this.id !== undefined ?
|
|
249
|
+
return this.loaded ?? (this.id !== undefined ? this.#entity.em.getEntity(this.id) : undefined);
|
|
260
250
|
}
|
|
251
|
+
[Relation_1.RelationT] = null;
|
|
252
|
+
[Relation_1.RelationU] = null;
|
|
253
|
+
[Reference_1.ReferenceN] = null;
|
|
261
254
|
}
|
|
262
255
|
exports.ManyToOneReferenceImpl = ManyToOneReferenceImpl;
|
|
263
|
-
_ManyToOneReferenceImpl_entity = new WeakMap(), _ManyToOneReferenceImpl_otherMeta = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU, _c = Reference_1.ReferenceN;
|
|
264
256
|
//# 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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"}
|