makit
Version:
Make in JavaScript done right!
48 lines (47 loc) • 1.38 kB
TypeScript
import { FileSystem } from '../fs/file-system';
/**
* 一个简易的 JSON 非关系性数据库。它的构成如下:
*
* * 一个 DataBase 对象由若干个 Document 构成
* * 一个 Document 由若干个 Property 构成
*
* Note: sqlite 是各方面比较理想的替代品,但它有 Native Binding,
* 能否成功安装会受网络、操作系统、Node 版本的影响,移植性不够。
*/
export declare class DataBase {
private readonly filepath;
private readonly fs;
private static instance;
private data;
private dirty;
constructor(filepath: string, fs: FileSystem);
/**
* 查询文档属性
*
* @param doc 文档名
* @param prop 属性名
* @param defaultValue 如果没有,则返回的默认值
*/
query<T>(doc: string, prop: string, defaultValue?: T): any;
/**
* 写入文档属性
*
* @param doc 文档名
* @param prop 属性名
* @param newValue 新的属性值
*/
write<T>(doc: string, prop: string, newValue: T): any;
/**
* 清空文档的所有属性,或清空数据库
*
* @param doc 文档名,如果不传则清空所有文档
*/
clear(doc?: string): void;
/**
* 同步数据库到磁盘
*
* @throws 文件写入错误
*/
syncToDisk(): boolean;
private readFromDisk;
}