ryuudb
Version:
A lightweight, customizable JSON/YAML database for Node.js by Jr Busaco
45 lines (38 loc) • 1.29 kB
TypeScript
declare module 'ryuudb' {
interface Options {
filePath?: string;
format?: 'json' | 'yaml';
adapter?: 'file' | 'memory' | Adapter;
debounce?: number;
defaultData?: any;
}
interface Adapter {
read(): Promise<any>;
write(data: any): Promise<void>;
}
class RyuuDB {
constructor(options?: Options);
load(): Promise<void>;
save(): Promise<void>;
get(path?: string): any;
set(path: string, value: any): this;
find(path: string, query: object | ((item: any) => boolean)): any;
filter(path: string, query: object | ((item: any) => boolean)): any[];
update(path: string, query: object | ((item: any) => boolean), updates: object): this;
remove(path: string, query: object | ((item: any) => boolean)): this;
clear(path?: string): this;
on(event: 'load' | 'save' | 'set' | 'update' | 'remove' | 'clear', listener: (data: any) => void): this;
}
class FileAdapter implements Adapter {
constructor(filePath: string, format?: 'json' | 'yaml');
read(): Promise<any>;
write(data: any): Promise<void>;
}
class MemoryAdapter implements Adapter {
constructor();
read(): Promise<any>;
write(data: any): Promise<void>;
}
export default RyuuDB;
export { FileAdapter, MemoryAdapter };
}