@ark7/model-mongoose
Advanced tools
Comparing version 2.0.3 to 2.0.4
@@ -94,2 +94,3 @@ import * as mongoose from 'mongoose'; | ||
addedIndexes: Set<MongooseIndex>; | ||
static discriminationCreations: Map<any, Set<ModelClass<any>>>; | ||
constructor(name: string, metadata: Ark7ModelMetadata); | ||
@@ -96,0 +97,0 @@ methodNames(): string[]; |
@@ -23,2 +23,3 @@ "use strict"; | ||
const dVirtual = debug_1.default('ark7:model-mongoose:mongoose-manager:virtual'); | ||
const dDiscrimination = debug_1.default('ark7:model-mongoose:mongoose-manager:discrimination'); | ||
class MongooseManager { | ||
@@ -101,2 +102,3 @@ constructor(options = {}) { | ||
discriminator(parentModel, cls, options = {}) { | ||
model_1.A7Model.getMetadata(cls); | ||
const m = lazyload_1.default(() => { | ||
@@ -106,3 +108,2 @@ var _a; | ||
const mongooseOptions = this.getMongooseOptions(cls); | ||
mongooseOptions.updateMetadata(model_1.A7Model.getMetadata(koa_1.MongooseKoa), this); | ||
this.runPlugin(plugin_1.MongoosePluginPeriod.BEFORE_REGISTER, mongooseOptions); | ||
@@ -435,4 +436,13 @@ underscore_1.default.each(underscore_1.default.extend({}, options, { | ||
for (const discrimination of metadata.discriminations) { | ||
if (!MongooseOptions.discriminationCreations.has(this.name)) { | ||
MongooseOptions.discriminationCreations.set(this.name, new Set()); | ||
} | ||
const creations = MongooseOptions.discriminationCreations.get(this.name); | ||
if (creations.has(discrimination)) { | ||
continue; | ||
} | ||
const disOptions = manager.getMongooseOptions(discrimination); | ||
type.discriminator(disOptions.name, disOptions.mongooseSchema); | ||
creations.add(discrimination); | ||
dDiscrimination('create discrimination for Model: %o, path: %o, parent: %o, discrimination: %o', this.name, _path, metadata.name, discrimination.name); | ||
} | ||
@@ -583,2 +593,3 @@ }); | ||
'$discriminatorKey', | ||
'discriminations', | ||
].indexOf(key) >= 0) { | ||
@@ -601,2 +612,3 @@ return; | ||
exports.MongooseOptions = MongooseOptions; | ||
MongooseOptions.discriminationCreations = new Map(); | ||
class NativeError extends global.Error { | ||
@@ -603,0 +615,0 @@ } |
{ | ||
"name": "@ark7/model-mongoose", | ||
"version": "2.0.3", | ||
"version": "2.0.4", | ||
"description": "Type-script friendly, object-oriented, database modeling framework", | ||
@@ -45,3 +45,3 @@ "types": "index.d.ts", | ||
"@ark7/lazyload": "^1.0.2", | ||
"@ark7/model": "^1.0.107", | ||
"@ark7/model": "^1.0.120", | ||
"@ark7/router": "^1.0.1", | ||
@@ -48,0 +48,0 @@ "@nodeswork/utils": "^0.1.14", |
Sorry, the diff of this file is not supported yet
240822
3431
Updated@ark7/model@^1.0.120