1.3.6 • Published 5 years ago
typegoose-utils v1.3.6
Typegoose Utils
Type Helpers and methods for @typegoose/typegoose.
Install
On NPM:
npm i -S @typegoose/typegoose typegoose-utils mongoose @types/mongooseOn Yarn:
yarn add @typegoose/typegoose typegoose-utils mongoose @types/mongooseThis package requires you to have @typegoose/typegoose and @types/mongoose installed.
API:
DocumentArray<Class, Key>:
Will return inferred subdocument class as mongoose.Types.DocumentArray.
ElementArray<Class | Value>:
Implements mongoose Array or DocumentArray.
ElementArray<Value>:
Value is any generic supported primitive, on this case ElementArray will implement mongoose.Types.Array giving you access to MongooseArray methods.
class Example {
@arrayProp({ items: String })
normalArray: ElementArray<String> // when accesing a "ExampleInstance.normalArray" MongooseArray methods will be available.
}ElementArray<Class>:
Class is any other subdocument class as usually used on typegoose, on this case, it will give you both mongoose.Types.DocumentArray and mongoose.Types.Array methods.
This means all MongooseArray methods plus SubDocuments Array Utilities.
class Children {
@prop()
value: strinng
}
class Example {
@arrayProp({ items: Children })
normalArray: ElementArray<typeof Children> // when accesing a "ExampleInstance.normalArray" MongooseArray methods will be available.
}DocumentOf<Model>:
Return proper document type from a model.
class Example {
@arrayProp({ items: String })
normalArray: ElementArray<String> // when accesing a "ExampleInstance.normalArray" MongooseArray methods will be available.
}
const model = getModelForClass(Example)
const instance = new model() as DocumentOf<typeof model> // ReturnType of new model() should equal DocumentOf<model>.