@prisma-next/mongo-orm 0.16.0-dev.3 → 0.16.0-dev.30
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/dist/index.d.mts +4 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +54 -45
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -15
- package/src/collection.ts +184 -87
package/dist/index.d.mts
CHANGED
|
@@ -214,7 +214,7 @@ interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContr
|
|
|
214
214
|
/** Returns input rows with server-assigned `_id`s. Does not re-read stored documents. */
|
|
215
215
|
createAll(data: ReadonlyArray<ResolvedCreateInput<TContract, ModelName, TVariant>>): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
|
|
216
216
|
/** Inserts multiple documents and returns the number inserted. */
|
|
217
|
-
|
|
217
|
+
createAndCount(data: ReadonlyArray<ResolvedCreateInput<TContract, ModelName, TVariant>>): Promise<number>;
|
|
218
218
|
/** Updates one matching document via `findOneAndUpdate`. Returns the updated document or `null`. Requires `.where()`. */
|
|
219
219
|
update(data: Partial<DefaultModelRow<TContract, ModelName>>): Promise<IncludedRow<TContract, ModelName, TIncludes> | null>;
|
|
220
220
|
/** Updates one matching document using field operations from a callback. Requires `.where()`. */
|
|
@@ -224,15 +224,15 @@ interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContr
|
|
|
224
224
|
/** Updates all matching documents using field operations from a callback. Requires `.where()`. */
|
|
225
225
|
updateAll(callback: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[]): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
|
|
226
226
|
/** Updates all matching documents and returns the number modified. Requires `.where()`. */
|
|
227
|
-
|
|
227
|
+
updateAndCount(data: Partial<DefaultModelRow<TContract, ModelName>>): Promise<number>;
|
|
228
228
|
/** Updates all matching documents using field operations and returns the number modified. Requires `.where()`. */
|
|
229
|
-
|
|
229
|
+
updateAndCount(callback: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[]): Promise<number>;
|
|
230
230
|
/** Deletes one matching document via `findOneAndDelete`. Returns the deleted document or `null`. Requires `.where()`. */
|
|
231
231
|
delete(): Promise<IncludedRow<TContract, ModelName, TIncludes> | null>;
|
|
232
232
|
/** Non-atomic: reads matching docs then deletes them. Concurrent writes may cause stale results. Requires `.where()`. */
|
|
233
233
|
deleteAll(): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
|
|
234
234
|
/** Deletes all matching documents and returns the number deleted. Requires `.where()`. */
|
|
235
|
-
|
|
235
|
+
deleteAndCount(): Promise<number>;
|
|
236
236
|
/**
|
|
237
237
|
* On insert: `update` fields are applied via `$set`, remaining `create` fields via `$setOnInsert`.
|
|
238
238
|
* This means `update` values take precedence over `create` for overlapping fields on insert.
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/executor.ts","../src/field-accessor.ts","../src/types.ts","../src/collection.ts","../src/collection-state.ts","../src/compile.ts","../src/mongo-orm.ts","../src/raw-collection.ts","../src/mongo-raw.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/executor.ts","../src/field-accessor.ts","../src/types.ts","../src/collection.ts","../src/collection-state.ts","../src/compile.ts","../src/mongo-orm.ts","../src/raw-collection.ts","../src/mongo-raw.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -2,11 +2,11 @@ import { domainModelsAtDefaultNamespace, domainValueObjectsAtDefaultNamespace }
|
|
|
2
2
|
import { AsyncIterableResult } from "@prisma-next/framework-components/runtime";
|
|
3
3
|
import { AggregateCommand, DeleteManyCommand, FindOneAndDeleteCommand, FindOneAndUpdateCommand, InsertManyCommand, InsertOneCommand, MongoAndExpr, MongoFieldFilter, MongoLimitStage, MongoLookupStage, MongoMatchStage, MongoProjectStage, MongoSkipStage, MongoSortStage, MongoUnwindStage, RawAggregateCommand, RawDeleteManyCommand, RawDeleteOneCommand, RawFindOneAndDeleteCommand, RawFindOneAndUpdateCommand, RawInsertManyCommand, RawInsertOneCommand, RawUpdateManyCommand, RawUpdateOneCommand, UpdateManyCommand, isMongoFilterExpr } from "@prisma-next/mongo-query-ast/execution";
|
|
4
4
|
import { MongoParamRef } from "@prisma-next/mongo-value";
|
|
5
|
+
import { blindCast, castAs } from "@prisma-next/utils/casts";
|
|
5
6
|
import { InternalError } from "@prisma-next/utils/internal-error";
|
|
6
7
|
import { contractModelToMongoResultShape } from "@prisma-next/mongo-query-builder";
|
|
7
8
|
import { ifDefined } from "@prisma-next/utils/defined";
|
|
8
9
|
import { structuredError } from "@prisma-next/utils/structured-error";
|
|
9
|
-
import { blindCast } from "@prisma-next/utils/casts";
|
|
10
10
|
//#region src/collection-state.ts
|
|
11
11
|
function emptyCollectionState() {
|
|
12
12
|
return {
|
|
@@ -160,6 +160,9 @@ function ormError(code, message, options) {
|
|
|
160
160
|
function resolveCollectionName(model, modelName) {
|
|
161
161
|
return model.storage.collection ?? modelName;
|
|
162
162
|
}
|
|
163
|
+
function isUnknownRecord(value) {
|
|
164
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
165
|
+
}
|
|
163
166
|
var MongoCollectionImpl = class MongoCollectionImpl {
|
|
164
167
|
#contract;
|
|
165
168
|
#modelName;
|
|
@@ -171,28 +174,28 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
171
174
|
this.#contract = contract;
|
|
172
175
|
this.#modelName = modelName;
|
|
173
176
|
this.#executor = executor;
|
|
174
|
-
const model = domainModelsAtDefaultNamespace(contract.domain)[modelName];
|
|
177
|
+
const model = blindCast(domainModelsAtDefaultNamespace(contract.domain)[modelName]);
|
|
175
178
|
this.#collectionName = resolveCollectionName(model, modelName);
|
|
176
179
|
this.#state = emptyCollectionState();
|
|
177
180
|
}
|
|
178
181
|
variant(variantName) {
|
|
179
|
-
const model = domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName];
|
|
180
|
-
if (!model?.discriminator || !model.variants) return this;
|
|
182
|
+
const model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);
|
|
183
|
+
if (!model?.discriminator || !model.variants) return blindCast(this);
|
|
181
184
|
const variantEntry = model.variants[variantName];
|
|
182
|
-
if (!variantEntry) return this;
|
|
185
|
+
if (!variantEntry) return blindCast(this);
|
|
183
186
|
const filter = MongoFieldFilter.eq(model.discriminator.field, new MongoParamRef(variantEntry.value));
|
|
184
187
|
return this.#cloneWithVariant({ filters: [...this.#state.filters, filter] }, variantName);
|
|
185
188
|
}
|
|
186
189
|
where(filter) {
|
|
187
190
|
if (isMongoFilterExpr(filter)) return this.#clone({ filters: [...this.#state.filters, filter] });
|
|
188
|
-
const compiled = this.#compileWhereObject(filter);
|
|
191
|
+
const compiled = this.#compileWhereObject(blindCast(filter));
|
|
189
192
|
return this.#clone({ filters: [...this.#state.filters, ...compiled] });
|
|
190
193
|
}
|
|
191
194
|
select(...fields) {
|
|
192
195
|
return this.#clone({ selectedFields: [...this.#state.selectedFields ?? [], ...fields] });
|
|
193
196
|
}
|
|
194
197
|
include(relationName) {
|
|
195
|
-
const relation = domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName].relations?.[relationName];
|
|
198
|
+
const relation = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]).relations?.[relationName];
|
|
196
199
|
if (!relation) throw ormError("ORM.RELATION_UNKNOWN", `Unknown relation "${relationName}" on model "${this.#modelName}"`, { meta: {
|
|
197
200
|
model: this.#modelName,
|
|
198
201
|
relation: relationName
|
|
@@ -209,7 +212,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
209
212
|
relation: relationName
|
|
210
213
|
} });
|
|
211
214
|
const targetModelName = ref.to.model;
|
|
212
|
-
const targetModel = domainModelsAtDefaultNamespace(this.#contract.domain)[targetModelName];
|
|
215
|
+
const targetModel = castAs(domainModelsAtDefaultNamespace(this.#contract.domain)[targetModelName]);
|
|
213
216
|
if (!targetModel) throw new InternalError(`Target model "${targetModelName}" not found for relation "${relationName}"`);
|
|
214
217
|
const includeExpr = {
|
|
215
218
|
relationName,
|
|
@@ -218,7 +221,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
218
221
|
foreignField,
|
|
219
222
|
cardinality: ref.cardinality
|
|
220
223
|
};
|
|
221
|
-
return this.#clone({ includes: [...this.#state.includes, includeExpr] });
|
|
224
|
+
return blindCast(this.#clone({ includes: [...this.#state.includes, includeExpr] }));
|
|
222
225
|
}
|
|
223
226
|
orderBy(spec) {
|
|
224
227
|
const merged = {
|
|
@@ -243,34 +246,35 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
243
246
|
}
|
|
244
247
|
async create(data) {
|
|
245
248
|
this.#rejectIncludes("create");
|
|
246
|
-
const normalized = this.#injectDiscriminator(this.#stripUndefined(data));
|
|
249
|
+
const normalized = this.#injectDiscriminator(this.#stripUndefined(blindCast(data)));
|
|
247
250
|
const document = this.#toDocument(normalized);
|
|
248
251
|
const command = new InsertOneCommand(this.#collectionName, document);
|
|
249
|
-
|
|
250
|
-
|
|
252
|
+
const insertedId = blindCast((await this.#drainPlan(command))[0]).insertedId;
|
|
253
|
+
return blindCast({
|
|
254
|
+
_id: insertedId,
|
|
251
255
|
...normalized
|
|
252
|
-
};
|
|
256
|
+
});
|
|
253
257
|
}
|
|
254
258
|
createAll(data) {
|
|
255
259
|
this.#rejectIncludes("createAll");
|
|
256
260
|
const self = this;
|
|
257
261
|
async function* gen() {
|
|
258
|
-
const normalizedRows = data.map((d) => self.#injectDiscriminator(self.#stripUndefined(d)));
|
|
262
|
+
const normalizedRows = data.map((d) => self.#injectDiscriminator(self.#stripUndefined(blindCast(d))));
|
|
259
263
|
const documents = normalizedRows.map((d) => self.#toDocument(d));
|
|
260
264
|
const command = new InsertManyCommand(self.#collectionName, documents);
|
|
261
|
-
const insertedIds = (await self.#drainPlan(command))[0].insertedIds;
|
|
262
|
-
for (let i = 0; i < normalizedRows.length; i++) yield {
|
|
265
|
+
const insertedIds = blindCast((await self.#drainPlan(command))[0]).insertedIds;
|
|
266
|
+
for (let i = 0; i < normalizedRows.length; i++) yield blindCast({
|
|
263
267
|
_id: insertedIds[i],
|
|
264
268
|
...normalizedRows[i]
|
|
265
|
-
};
|
|
269
|
+
});
|
|
266
270
|
}
|
|
267
271
|
return new AsyncIterableResult(gen());
|
|
268
272
|
}
|
|
269
|
-
async
|
|
270
|
-
this.#rejectIncludes("
|
|
271
|
-
const documents = data.map((d) => this.#toDocument(this.#injectDiscriminator(d)));
|
|
273
|
+
async createAndCount(data) {
|
|
274
|
+
this.#rejectIncludes("createAndCount");
|
|
275
|
+
const documents = data.map((d) => this.#toDocument(this.#injectDiscriminator(blindCast(d))));
|
|
272
276
|
const command = new InsertManyCommand(this.#collectionName, documents);
|
|
273
|
-
return (await this.#drainPlan(command))[0].insertedCount;
|
|
277
|
+
return blindCast((await this.#drainPlan(command))[0]).insertedCount;
|
|
274
278
|
}
|
|
275
279
|
async update(dataOrCallback) {
|
|
276
280
|
this.#requireFilters("update");
|
|
@@ -279,7 +283,8 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
279
283
|
const filter = this.#mergeFilters();
|
|
280
284
|
const updateDoc = this.#resolveUpdateDoc(dataOrCallback);
|
|
281
285
|
const command = new FindOneAndUpdateCommand(this.#collectionName, filter, updateDoc, false);
|
|
282
|
-
|
|
286
|
+
const result = (await this.#drainPlan(command))[0];
|
|
287
|
+
return result === void 0 ? null : blindCast(result);
|
|
283
288
|
}
|
|
284
289
|
updateAll(dataOrCallback) {
|
|
285
290
|
this.#requireFilters("updateAll");
|
|
@@ -297,14 +302,14 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
297
302
|
}
|
|
298
303
|
return new AsyncIterableResult(gen());
|
|
299
304
|
}
|
|
300
|
-
async
|
|
301
|
-
this.#requireFilters("
|
|
302
|
-
this.#rejectWindowing("
|
|
303
|
-
this.#rejectIncludes("
|
|
305
|
+
async updateAndCount(dataOrCallback) {
|
|
306
|
+
this.#requireFilters("updateAndCount");
|
|
307
|
+
this.#rejectWindowing("updateAndCount");
|
|
308
|
+
this.#rejectIncludes("updateAndCount");
|
|
304
309
|
const filter = this.#mergeFilters();
|
|
305
310
|
const updateDoc = this.#resolveUpdateDoc(dataOrCallback);
|
|
306
311
|
const command = new UpdateManyCommand(this.#collectionName, filter, updateDoc);
|
|
307
|
-
return (await this.#drainPlan(command))[0].modifiedCount;
|
|
312
|
+
return blindCast((await this.#drainPlan(command))[0]).modifiedCount;
|
|
308
313
|
}
|
|
309
314
|
async delete() {
|
|
310
315
|
this.#requireFilters("delete");
|
|
@@ -312,7 +317,8 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
312
317
|
this.#rejectIncludes("delete");
|
|
313
318
|
const filter = this.#mergeFilters();
|
|
314
319
|
const command = new FindOneAndDeleteCommand(this.#collectionName, filter);
|
|
315
|
-
|
|
320
|
+
const result = (await this.#drainPlan(command))[0];
|
|
321
|
+
return result === void 0 ? null : blindCast(result);
|
|
316
322
|
}
|
|
317
323
|
deleteAll() {
|
|
318
324
|
this.#requireFilters("deleteAll");
|
|
@@ -328,20 +334,20 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
328
334
|
}
|
|
329
335
|
return new AsyncIterableResult(gen());
|
|
330
336
|
}
|
|
331
|
-
async
|
|
332
|
-
this.#requireFilters("
|
|
333
|
-
this.#rejectWindowing("
|
|
334
|
-
this.#rejectIncludes("
|
|
337
|
+
async deleteAndCount() {
|
|
338
|
+
this.#requireFilters("deleteAndCount");
|
|
339
|
+
this.#rejectWindowing("deleteAndCount");
|
|
340
|
+
this.#rejectIncludes("deleteAndCount");
|
|
335
341
|
const filter = this.#mergeFilters();
|
|
336
342
|
const command = new DeleteManyCommand(this.#collectionName, filter);
|
|
337
|
-
return (await this.#drainPlan(command))[0].deletedCount;
|
|
343
|
+
return blindCast((await this.#drainPlan(command))[0]).deletedCount;
|
|
338
344
|
}
|
|
339
345
|
async upsert(input) {
|
|
340
346
|
this.#requireFilters("upsert");
|
|
341
347
|
this.#rejectWindowing("upsert");
|
|
342
348
|
this.#rejectIncludes("upsert");
|
|
343
349
|
const filter = this.#mergeFilters();
|
|
344
|
-
const allCreateFields = this.#toDocument(this.#injectDiscriminator(input.create));
|
|
350
|
+
const allCreateFields = this.#toDocument(this.#injectDiscriminator(blindCast(input.create)));
|
|
345
351
|
let updateDoc;
|
|
346
352
|
if (typeof input.update === "function") {
|
|
347
353
|
const accessor = createFieldAccessor();
|
|
@@ -354,7 +360,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
354
360
|
} });
|
|
355
361
|
updateDoc = compileFieldOperations(ops, (field, value, operator) => this.#wrapFieldOpValue(field, value, operator));
|
|
356
362
|
} else {
|
|
357
|
-
const setFields = this.#toSetFields(input.update);
|
|
363
|
+
const setFields = this.#toSetFields(blindCast(input.update));
|
|
358
364
|
updateDoc = {};
|
|
359
365
|
if (Object.keys(setFields).length > 0) updateDoc["$set"] = setFields;
|
|
360
366
|
}
|
|
@@ -364,7 +370,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
364
370
|
for (const [key, value] of Object.entries(allCreateFields)) if (!updatedFields.has(key)) insertOnlyFields[key] = value;
|
|
365
371
|
if (Object.keys(insertOnlyFields).length > 0) updateDoc["$setOnInsert"] = insertOnlyFields;
|
|
366
372
|
const command = new FindOneAndUpdateCommand(this.#collectionName, filter, updateDoc, true);
|
|
367
|
-
return (await this.#drainPlan(command))[0];
|
|
373
|
+
return blindCast((await this.#drainPlan(command))[0]);
|
|
368
374
|
}
|
|
369
375
|
async #readMatchingIds() {
|
|
370
376
|
const idQuery = this.#clone({
|
|
@@ -376,7 +382,10 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
376
382
|
});
|
|
377
383
|
const ids = [];
|
|
378
384
|
const { resultShape: _rs, ...planWithoutShape } = idQuery.#compile();
|
|
379
|
-
for await (const row of this.#executor.execute(planWithoutShape))
|
|
385
|
+
for await (const row of this.#executor.execute(planWithoutShape)) {
|
|
386
|
+
const storageRow = blindCast(row);
|
|
387
|
+
ids.push(storageRow["_id"]);
|
|
388
|
+
}
|
|
380
389
|
return ids;
|
|
381
390
|
}
|
|
382
391
|
#execute() {
|
|
@@ -384,7 +393,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
384
393
|
return this.#executor.execute(plan);
|
|
385
394
|
}
|
|
386
395
|
#compile() {
|
|
387
|
-
const model = domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName];
|
|
396
|
+
const model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);
|
|
388
397
|
if (!model) throw ormError("ORM.MODEL_UNKNOWN", `Unknown model: "${this.#modelName}".`, { meta: { model: this.#modelName } });
|
|
389
398
|
return compileMongoQuery(this.#collectionName, this.#state, this.#contract.storage.storageHash, model);
|
|
390
399
|
}
|
|
@@ -403,7 +412,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
403
412
|
return rows;
|
|
404
413
|
}
|
|
405
414
|
#modelFields() {
|
|
406
|
-
return domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]?.fields ?? {};
|
|
415
|
+
return blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName])?.fields ?? {};
|
|
407
416
|
}
|
|
408
417
|
#compileWhereObject(data) {
|
|
409
418
|
const fields = this.#modelFields();
|
|
@@ -422,8 +431,8 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
422
431
|
const voName = field.type.name;
|
|
423
432
|
const voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[voName];
|
|
424
433
|
if (!voDef || value === null) return new MongoParamRef(value);
|
|
425
|
-
if (field.many && Array.isArray(value)) return value.map((item) => this.#wrapValueObject(item, voDef));
|
|
426
|
-
return this.#wrapValueObject(value, voDef);
|
|
434
|
+
if (field.many && Array.isArray(value)) return value.map((item) => this.#wrapValueObject(blindCast(item), voDef));
|
|
435
|
+
return this.#wrapValueObject(blindCast(value), voDef);
|
|
427
436
|
}
|
|
428
437
|
return new MongoParamRef(value);
|
|
429
438
|
}
|
|
@@ -466,7 +475,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
466
475
|
if (ops.length === 0) return { $set: {} };
|
|
467
476
|
return compileFieldOperations(ops, (field, value, operator) => this.#wrapFieldOpValue(field, value, operator));
|
|
468
477
|
}
|
|
469
|
-
return this.#toUpdateDocument(dataOrCallback);
|
|
478
|
+
return this.#toUpdateDocument(blindCast(dataOrCallback));
|
|
470
479
|
}
|
|
471
480
|
#wrapFieldOpValue(field, value, operator) {
|
|
472
481
|
if (operator === "$unset") return value;
|
|
@@ -477,7 +486,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
477
486
|
if (value instanceof MongoParamRef && contractField.type.kind === "scalar") return new MongoParamRef(value.value, { codecId: contractField.type.codecId });
|
|
478
487
|
if (contractField.type.kind === "valueObject" && value instanceof MongoParamRef) {
|
|
479
488
|
const raw = value.value;
|
|
480
|
-
if (
|
|
489
|
+
if (isUnknownRecord(raw)) {
|
|
481
490
|
const voName = contractField.type.name;
|
|
482
491
|
const voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[voName];
|
|
483
492
|
if (voDef) return this.#wrapValueObject(raw, voDef);
|
|
@@ -500,7 +509,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
500
509
|
if (currentField?.type.kind === "scalar" && value instanceof MongoParamRef) return new MongoParamRef(value.value, { codecId: currentField.type.codecId });
|
|
501
510
|
if (currentField?.type.kind === "valueObject" && value instanceof MongoParamRef) {
|
|
502
511
|
const raw = value.value;
|
|
503
|
-
if (
|
|
512
|
+
if (isUnknownRecord(raw)) {
|
|
504
513
|
const voName = currentField.type.name;
|
|
505
514
|
const voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[voName];
|
|
506
515
|
if (voDef) return this.#wrapValueObject(raw, voDef);
|
|
@@ -537,7 +546,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
|
|
|
537
546
|
}
|
|
538
547
|
#injectDiscriminator(data) {
|
|
539
548
|
if (!this.#variantName) return data;
|
|
540
|
-
const model = domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName];
|
|
549
|
+
const model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);
|
|
541
550
|
if (!model?.discriminator || !model.variants) return data;
|
|
542
551
|
const variantEntry = model.variants[this.#variantName];
|
|
543
552
|
if (!variantEntry) return data;
|