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 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)
} }