feat: add possibility to type mongoose model (#8)
Co-authored-by: Arash <38922203+arashsheyda@users.noreply.github.com>
This commit is contained in:
@ -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
|
let name: string
|
||||||
if (typeof nameOrOptions === 'string') {
|
if (typeof nameOrOptions === 'string') {
|
||||||
name = nameOrOptions
|
name = nameOrOptions
|
||||||
@ -29,8 +29,8 @@ export function defineMongooseModel(nameOrOptions: string | { name: string; sche
|
|||||||
options = nameOrOptions.options
|
options = nameOrOptions.options
|
||||||
}
|
}
|
||||||
|
|
||||||
const newSchema = new mongoose.Schema({
|
const newSchema = new mongoose.Schema<T>({
|
||||||
...schema,
|
...schema,
|
||||||
}, { ...options })
|
}, { ...options })
|
||||||
return mongoose.model(name, newSchema)
|
return mongoose.model<T>(name, newSchema)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user