typegoose-utils
v1.3.6
Published
Type Helpers and methods for `@typegoose/typegoose`.
Downloads
6
Readme
Typegoose Utils
Type Helpers and methods for @typegoose/typegoose
.
Install
On NPM:
npm i -S @typegoose/typegoose typegoose-utils mongoose @types/mongoose
On Yarn:
yarn add @typegoose/typegoose typegoose-utils mongoose @types/mongoose
This 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>.