Override Database Operations - Agrejus/pouchdb-entity-fabric GitHub Wiki
A DataContexts database interaction can be overridden if extra functionality is needed
import { DataContext } from 'pouchdb-entity-fabric';
export enum DocumentTypes {
MyFirstDocument = "MyFirstDocument"
}
interface IMyFirstEntity extends IDbRecord<DocumentTypes> {
propertyOne: string;
propertyTwo: string;
}
export class PouchDbDataContext extends DataContext<DocumentTypes> {
protected override async doWork<T>(action: (db: PouchDB.Database) => Promise<T>, shouldClose: boolean = true) {
const db = this.createDb();
const result = await action(db);
// Closing the connection only makes sense for IndexedDb
// https://github.com/pouchdb/pouchdb/issues/3429#issuecomment-71043588
return result;
}
myFirstDbSet = this.dbset().default<IMyFirstEntity>(DocumentTypes.MyFirstDocument).create();
}
const context = new PouchDbDataContext();