- 4种存储引擎:Memory / IndexedDB / OPFS / Hybrid - 完整SQL支持:SELECT/INSERT/UPDATE/DELETE/JOIN/GROUP BY/HAVING/DISTINCT - Query Builder链式API + TypeScript泛型支持 - 聚合函数:COUNT/SUM/AVG/MIN/MAX - 事务、插件系统(14 hooks)、发布订阅、数据迁移、导入导出 - React/Vue框架集成 - 264个测试用例,93.46%覆盖率 - 零运行时依赖
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
/**
|
|
* metona-sqlark Engine Interface — 存储引擎抽象接口
|
|
* @module engine/interface
|
|
*/
|
|
|
|
import type { QueryPlan, TableSchema } from '../constants';
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// IStorageEngine — 所有存储引擎必须实现的接口
|
|
// ---------------------------------------------------------------------------
|
|
|
|
export interface IStorageEngine {
|
|
/** 引擎名称 */
|
|
readonly name: string;
|
|
|
|
/** 打开数据库 */
|
|
open(dbName: string, version: number): Promise<void>;
|
|
|
|
/** 关闭数据库 */
|
|
close(): Promise<void>;
|
|
|
|
/** 检查数据库是否已打开 */
|
|
isOpen(): boolean;
|
|
|
|
/** 创建表 */
|
|
createTable(schema: TableSchema): Promise<void>;
|
|
|
|
/** 删除表 */
|
|
dropTable(tableName: string): Promise<void>;
|
|
|
|
/** 检查表是否存在 */
|
|
hasTable(tableName: string): Promise<boolean>;
|
|
|
|
/** 获取所有表名 */
|
|
getTableNames(): Promise<string[]>;
|
|
|
|
/** 获取表结构 */
|
|
getTableSchema(tableName: string): Promise<TableSchema | null>;
|
|
|
|
/** 插入行,返回主键值列表 */
|
|
insert(tableName: string, rows: Record<string, unknown>[]): Promise<string[]>;
|
|
|
|
/** 查询行 */
|
|
find(tableName: string, query: QueryPlan): Promise<Record<string, unknown>[]>;
|
|
|
|
/** 更新行,返回影响行数 */
|
|
update(tableName: string, query: QueryPlan, updates: Record<string, unknown>): Promise<number>;
|
|
|
|
/** 删除行,返回影响行数 */
|
|
delete(tableName: string, query: QueryPlan): Promise<number>;
|
|
|
|
/** 计数 */
|
|
count(tableName: string, query?: QueryPlan): Promise<number>;
|
|
|
|
/** 清空表数据(保留结构) */
|
|
clear(tableName: string): Promise<void>;
|
|
}
|