UNPKG

jsonjsdb

Version:
58 lines (57 loc) 2.64 kB
import { default as DBrowser } from './DBrowser'; import { default as Loader } from './Loader'; import { default as IntegrityChecker } from './IntegrityChecker'; import { JsonjsdbConfig, PartialJsonjsdbConfig, IntegrityResult, Schema, DatabaseMetadata, DatabaseRow, TableCollection } from './types'; type InitOption = { filter?: { entity?: string; variable?: string; values?: string[]; }; aliases?: Array<{ table: string; alias: string; }>; useCache?: boolean; version?: number | string; limit?: number; validIdChars?: string; }; type ForeignTableObj = { [tableName: string]: string | number | { id: string | number; } | undefined; }; export default class Jsonjsdb<TEntityTypeMap extends Record<string, DatabaseRow> = Record<string, DatabaseRow>> { defaultConfig: JsonjsdbConfig; config: JsonjsdbConfig; browser: DBrowser; loader: Loader; integrityChecker: IntegrityChecker; tables: TableCollection<TEntityTypeMap>; metadata: DatabaseMetadata; private idSuffix; private usageCache; private recursiveUsageCache; constructor(config?: string | PartialJsonjsdbConfig); private getHtmlConfig; private setConfig; init(option?: InitOption): Promise<Jsonjsdb<TEntityTypeMap>>; load(filePath: string, name: string, shouldStandardizeIds?: boolean): Promise<unknown[]>; get<K extends keyof TEntityTypeMap>(table: K & string, id: string | number): TEntityTypeMap[K] | undefined; getAll<K extends keyof TEntityTypeMap>(table: K & string, foreignTableObj?: ForeignTableObj, option?: InitOption): TEntityTypeMap[K][]; getAllChilds<K extends keyof TEntityTypeMap>(table: K & string, itemId: string | number): TEntityTypeMap[K][]; foreach<K extends keyof TEntityTypeMap>(table: K & string, callback: (row: TEntityTypeMap[K]) => void): void; exists<K extends keyof TEntityTypeMap>(table: K & string, id: string | number): boolean; getConfig(id: string | number): string | number | undefined; countRelated<K extends keyof TEntityTypeMap>(table: K & string, id: string | number, relatedTable: string): number; getParents<K extends keyof TEntityTypeMap>(from: K & string, id: string | number): TEntityTypeMap[K][]; addMeta(userData?: Record<string, unknown>, dbSchema?: string[][]): void; getLastModifTimestamp(): number; get use(): Partial<Record<keyof TEntityTypeMap, boolean>>; get useRecursive(): Partial<Record<keyof TEntityTypeMap, boolean>>; private computeUsage; getSchema(): Schema; checkIntegrity(): Promise<IntegrityResult>; } export {};