fix: v0.6.0 复查修正 — KVStore 快照损坏水位 bug(metaSeq 误跳日志)+ 快照损坏测试盲区修复(此前篡改未生效)+ metaSeq 回归测试 + KVStoreEngine 真实浏览器 e2e(3 用例)+ 版本/配置文档校准
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/version-0.6.0-blue?style=flat-square" alt="version">
|
||||
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="license">
|
||||
<img src="https://img.shields.io/badge/coverage-89.1%25-brightgreen?style=flat-square" alt="coverage">
|
||||
<img src="https://img.shields.io/badge/tests-1021%20passed-success?style=flat-square" alt="tests">
|
||||
<img src="https://img.shields.io/badge/coverage-89.15%25-brightgreen?style=flat-square" alt="coverage">
|
||||
<img src="https://img.shields.io/badge/tests-1022%20passed-success?style=flat-square" alt="tests">
|
||||
</p>
|
||||
|
||||
> 基于 TypeScript 的**前端关系型数据库**,支持完整 SQL 查询、Query Builder 链式 API、与 **AriaEngine 自研存储引擎**。
|
||||
@@ -34,7 +34,7 @@
|
||||
- 🌲 **RB-Tree 完整实现** — 标准红黑树插入+删除修复,O(log n) 保证
|
||||
- ⚡ **性能优化** — SSTableReader 二分查找统一、IndexedDB 索引利用、crypto 实例化避免全局状态
|
||||
- 🌐 **浏览器兼容** — Chrome 80+ / Firefox 80+ / Safari 14+ / Edge 80+ / Node.js 16+
|
||||
- 🧪 **1021 测试 · 89.1% 覆盖率** — 64 套件 + 9 个 Playwright 真实 Chromium e2e(含崩溃注入),生产级质量保证
|
||||
- 🧪 **1022 测试 · 89.15% 覆盖率** — 64 套件 + 12 个 Playwright 真实 Chromium e2e(含崩溃注入),生产级质量保证
|
||||
|
||||
---
|
||||
|
||||
@@ -109,7 +109,7 @@ import { MetonaSqlark } from '@metona-team/metona-sqlark';
|
||||
const db = await MetonaSqlark.create({
|
||||
name: 'my-app',
|
||||
mode: 'hybrid', // 'memory' | 'disk' | 'hybrid' | 'aria'
|
||||
diskEngine: 'indexeddb', // 'indexeddb' | 'opfs'
|
||||
diskEngine: 'opfs', // 'opfs' | 'memory'(v0.6.0: IndexedDB 已移除)
|
||||
});
|
||||
|
||||
// 定义表 — 支持外键级联
|
||||
@@ -216,7 +216,7 @@ await db2.disconnect(); // 引用计数 -1
|
||||
|------|------|------|------|
|
||||
| `name` | `string` | `'metona-sqlark'` | 数据库名称 |
|
||||
| `mode` | `'memory' \| 'disk' \| 'hybrid' \| 'aria'` | `'hybrid'` | 存储模式 🆕 aria |
|
||||
| `diskEngine` | `'indexeddb' \| 'opfs'` | `'indexeddb'` | 磁盘引擎(aria 模式下为存储后端) |
|
||||
| `diskEngine` | `'opfs' \| 'memory'` | `'opfs'` | 磁盘引擎(aria 模式下为存储后端;v0.6.0: IndexedDB 已移除) |
|
||||
| `version` | `number` | `1` | 版本号 |
|
||||
| `maxRowsPerQuery` | `number` | `0` | 查询结果行数上限(0=不限制)✅ v0.2.5 生效 |
|
||||
| `debug` | `boolean` | `false` | 调试模式,输出详细日志 🆕 |
|
||||
@@ -383,7 +383,7 @@ AriaEngine 是内置的页面式存储引擎,对标 SQLite 的设计理念:
|
||||
const db = await MetonaSqlark.create({
|
||||
name: 'my-app',
|
||||
mode: 'aria', // 🆕 自研引擎模式
|
||||
diskEngine: 'opfs', // 'indexeddb' | 'opfs' | 'memory'
|
||||
diskEngine: 'opfs', // 'opfs' | 'memory'
|
||||
aria: { // 🆕 AriaEngine 专属配置透传(v0.5.0)
|
||||
walSyncMode: 'full', // WAL 同步模式
|
||||
encryption: { password: 'my-password' }, // 全库 AES-GCM 加密
|
||||
@@ -403,7 +403,7 @@ const rows = await db.query('SELECT * FROM users');
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────┐
|
||||
│ AriaEngine v0.5.1 │
|
||||
│ AriaEngine v0.6.0 │
|
||||
│ (implements IStorageEngine) │
|
||||
├──────────────────────────────────────────┤
|
||||
│ LSM-Tree │ Buffer Pool │ WAL │
|
||||
@@ -457,9 +457,9 @@ npm run typecheck # 类型检查
|
||||
|
||||
| 指标 | 数值 |
|
||||
|------|------|
|
||||
| 测试用例 | 1021 |
|
||||
| 测试套件 | 64(+9 Playwright e2e) |
|
||||
| 行覆盖率 | 89.1% |
|
||||
| 测试用例 | 1022 |
|
||||
| 测试套件 | 64(+12 Playwright e2e) |
|
||||
| 行覆盖率 | 89.15% |
|
||||
| SQL 关键字 | 72 |
|
||||
| 存储引擎 | 5(Memory / **KVStore** / OPFS / Hybrid / **Aria**) |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user