UNPKG

@small-tech/jsdb

Version:

A zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for Small Web applications that persists to a JavaScript transaction log.

72 lines (65 loc) 2.14 kB
/** Returns a proxy object, not an instance of the class. @class @returns {Proxy} Data proxy. */ export default class JSDB { static isBeingInstantiatedByFactoryMethod: boolean; /** @type Object<string, any> */ static openDatabases: { [x: string]: any; }; /** @typedef { new (...args: any[]) => any } AnyClass @typedef {{ deleteIfExists?: boolean, compactOnLoad?: boolean, alwaysUseLineByLineLoads?: boolean, classes?: Array<AnyClass> }} DatabaseOptions */ /** Returns a reference to the JSDB at the given basepath. If it’s already open, returns the reference. @param {string} basePath @param {DatabaseOptions} [options={deleteIfExists: false, compactOnLoad: true, alwaysUseLineByLineLoads: false}] */ static open(basePath: string, options?: { deleteIfExists?: boolean; compactOnLoad?: boolean; alwaysUseLineByLineLoads?: boolean; classes?: Array<new (...args: any[]) => any>; }): any; /** @package @param {string} basePath @param {DatabaseOptions} [options={deleteIfExist: false, compactOnLoad: true, alwaysUseLineByLineLoads: false}] */ constructor(basePath: string, options?: { deleteIfExists?: boolean; compactOnLoad?: boolean; alwaysUseLineByLineLoads?: boolean; classes?: Array<new (...args: any[]) => any>; }); /** @type Array<any> */ tableDataProxies: Array<any>; /** @type {Array<string>} */ tableNames: Array<string>; basePath: string; options: { deleteIfExists?: boolean; compactOnLoad?: boolean; alwaysUseLineByLineLoads?: boolean; classes?: Array<new (...args: any[]) => any>; }; dataProxy: any; onTableDelete(tableDataProxy: any): void; loadTables(): void; loadingTables: boolean; get proxyHandler(): { set: any; get: any; }; getHandler(target: any, property: any, receiver: any, ...args: any[]): any; setHandler(target: any, property: any, value: any, receiver: any): boolean; }