Skip to main content
Version: 4.x

4.x API reference

Archived release

This reference describes PouchORM 4.1.4. Select 5.x for the current API.

PouchCollection<T, IDType>

Constructor

new Collection(
databaseName: string,
options?: PouchDB.Configuration.DatabaseConfiguration,
validate: ClassValidate = ClassValidate.OFF,
)

PouchORM 4 uses the JavaScript subclass name as $collectionType.

Queries

find(selector?, options?: { sort?: string[]; limit?: number }): Promise<T[]>
findOrFail(selector?, options?): Promise<T[]>
findOne(selector): Promise<T>
findOneOrFail(selector): Promise<T>
findById(id): Promise<T>
findByIdOrFail(id): Promise<T>

findOne and findById return null at runtime when no document matches, despite the non-null 4.x declarations.

Writes

upsert(item, delta?): Promise<T>
bulkUpsert(items): Promise<Array<PouchDB.Core.Response | PouchDB.Core.Error>>
remove(item): Promise<void>
removeById(id): Promise<void>
bulkRemove(items): Promise<Array<PouchDB.Core.Response | PouchDB.Core.Error>>

upsert and the bulk methods change supplied objects when adding metadata or deletion markers. bulkUpsert does not share the validation and update behavior of upsert.

Indexes and initialization

beforeInit(): Promise<void>
afterInit(): Promise<void>
checkInit(): Promise<void>
addIndex(fields, name?): Promise<CreateIndexResponse>
removeIndex(name): Promise<void>

Change hooks

onChangeUpserted(item): Promise<void>
onChangeDeleted(item): Promise<void>
onChangeError(error): Promise<void>

PouchORM 4 does not await hook completion and does not forward a rejected hook promise to onChangeError.

PouchORM

PouchORM.LOGGING;
PouchORM.VALIDATE;
PouchORM.ClassValidator;
PouchORM.PouchDB;
PouchORM.adapter;
PouchORM.userId;

Database methods

PouchORM.ensureDatabase(databaseName, collection, options?)
PouchORM.stopChangeListener(databaseName)
PouchORM.setUser(userId)
PouchORM.clearDatabase(databaseName)
PouchORM.deleteDatabase(databaseName)

clearDatabase removes design documents in 4.x, including indexes. deleteDatabase stops outgoing synchronization but may leave incoming operations registered elsewhere.

Synchronization methods

PouchORM.startSync(fromDatabase, toDatabase, configuration?)
PouchORM.stopSync(fromDatabase, toDatabase?)
PouchORM.activeSyncOperations

The configuration property for PouchDB options is named opts in 4.x. startSync does not return the handle.

Upgrade

The PouchORM 5 migration guide maps these APIs to their current equivalents.