import mongoose from "mongoose"; import { DocumentValidator, IDocumentValidatorOptions } from "../DocumentValidator"; import { validatable } from "../index"; const Schema = mongoose.Schema; let i = 0; export function setupModel( definition?: mongoose.SchemaDefinition, options: IDocumentValidatorOptions = {} ) { const schema = new Schema(definition); const validator = new DocumentValidator(schema, options); schema.plugin(validatable, { validator }); const Model = createModel(schema); return { schema, Model, validator }; } export function createModel(schema: any): mongoose.Model { return mongoose.model(`Model${i++}`, schema); }