/** * metona-sqlark — 入口文件 * @module metona-sqlark * @version 0.4.1 * * 前端关系型数据库,内存与磁盘双模式。 * 支持 Query Builder 链式 API 和 SQL 字符串查询。 */ import { MetonaSqlark } from './core'; import type { DatabaseConfig } from './constants'; import { VERSION } from './constants'; // 连接池管理器(side-effect: 注入 MetonaSqlark.connect / disconnect 等静态方法) import './connection-manager'; // --------------------------------------------------------------------------- // 工厂函数 // --------------------------------------------------------------------------- /** * 创建数据库实例并初始化 * * @example * ```ts * const db = await MetonaSqlark.create({ * name: 'my-app', * mode: 'hybrid', * }); * * await db.defineTable('users', { * id: { type: 'string', primaryKey: true }, * name: { type: 'string', required: true }, * }); * * await db.table('users').insert({ id: '1', name: 'Alice' }); * const results = await db.query('SELECT * FROM users'); * ``` */ async function create(config: DatabaseConfig): Promise { const db = new MetonaSqlark(config); await db.init(); return db; } // --------------------------------------------------------------------------- // 全局 API // --------------------------------------------------------------------------- const api = { VERSION, version: VERSION, create, MetonaSqlark, MeSqlark: MetonaSqlark, }; // 浏览器全局挂载 declare global { interface Window { MetonaSqlark: typeof api; MeSqlark: typeof api; } } if (typeof window !== 'undefined') { window.MetonaSqlark = api; window.MeSqlark = api; } export default api; export { api, VERSION, create, MetonaSqlark, }; // 别名 export const MeSqlark = MetonaSqlark; // 类型导出 export type { DatabaseConfig, TableSchema, ColumnDef, FieldType, StorageMode, DiskEngine } from './constants'; export type { IStorageEngine } from './engine/interface'; export type { Statement, SelectStatement, InsertStatement, UpdateStatement, DeleteStatement } from './query/ast'; export { MemoryEngine } from './engine/memory'; export { IndexedDBEngine } from './engine/indexeddb'; export { OPFSEngine } from './engine/opfs'; export { AriaEngine } from './engine/aria/index'; export { HybridEngine } from './hybrid/index'; export { Table } from './table/table'; export { parse, parseAll } from './sql/parser'; export { tokenize } from './sql/lexer'; // AriaEngine 类型 & 后端 export type { AriaEngineConfig } from './engine/aria/types'; export { OPFSBackend } from './engine/aria/store/opfs_backend';