typegoose-utils
TypeScript icon, indicating that this package has built-in type declarations

1.3.6 • Public • Published

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>.

Readme

Keywords

none

Package Sidebar

Install

npm i typegoose-utils

Weekly Downloads

5

Version

1.3.6

License

MIT

Unpacked Size

6.9 kB

Total Files

16

Last publish

Collaborators

  • negan1911