feat: add possibility to type mongoose model (#8)

Co-authored-by: Arash <38922203+arashsheyda@users.noreply.github.com>
This commit is contained in:
Oumar Barry
2023-07-02 08:55:49 +00:00
committed by GitHub
parent 470f272183
commit 56259adaf7

View File

@ -18,7 +18,7 @@ export async function defineMongooseConnection({ uri, options }: { uri?: string;
}
}
export function defineMongooseModel(nameOrOptions: string | { name: string; schema: SchemaDefinition; options?: SchemaOptions }, schema?: SchemaDefinition, options?: SchemaOptions): Model<any> {
export function defineMongooseModel<T>(nameOrOptions: string | { name: string; schema: SchemaDefinition; options?: SchemaOptions }, schema?: SchemaDefinition, options?: SchemaOptions): Model<T> {
let name: string
if (typeof nameOrOptions === 'string') {
name = nameOrOptions
@ -29,8 +29,8 @@ export function defineMongooseModel(nameOrOptions: string | { name: string; sche
options = nameOrOptions.options
}
const newSchema = new mongoose.Schema({
const newSchema = new mongoose.Schema<T>({
...schema,
}, { ...options })
return mongoose.model(name, newSchema)
return mongoose.model<T>(name, newSchema)
}