Skip to main content
Version: 4.x

Validation in 4.x

Install class-validator when validation is enabled:

npm install class-validator

Use a class extending PouchModel so decorator metadata is present:

import { IsNumber, IsString } from "class-validator";
import { ClassValidate, PouchCollection, PouchModel } from "pouchorm";

class Person extends PouchModel<Person> {
@IsString()
name!: string;

@IsNumber()
age!: number;
}

class PersonCollection extends PouchCollection<Person> {}

const people = new PersonCollection(
"app-data",
undefined,
ClassValidate.ON_AND_REJECT,
);

The 4.x modes are OFF, ON, ON_AND_LOG, and ON_AND_REJECT. A global non-OFF value in PouchORM.VALIDATE takes effect when a collection is configured as OFF; 4.x cannot use collection-level OFF to override enabled global validation.

Validation applies to upsert, not bulkUpsert, in 4.x.

PouchORM 5 adds explicit validator registration, validation inheritance, and bulk validation. See the migration guide.