1
0

feat: 重构为多类型 checker 通用框架,支持 HTTP 与命令检查

- 引入 typed target 判别联合,支持 http 与 command 两种 checker
- expect 重构为有序规则数组,按配置顺序快速失败并生成结构化 failure
- 新增 command runner,支持 exec + args 本地命令执行
- 引入全局并发限制 maxConcurrentChecks 和 size 解析 (KB/MB/GB)
- HTTP/command 各自独立 expect pipeline,应用领域默认成功语义
- SQLite schema、API、Dashboard 全链路调整为 checker 通用契约
- 补充完整测试覆盖(192 tests),更新 README 与示例配置
This commit is contained in:
2026-05-10 22:25:21 +08:00
parent 599d973cbd
commit b8810f1182
46 changed files with 3562 additions and 1062 deletions

View File

@@ -1,4 +1,4 @@
import { readdir, rm } from "node:fs/promises";
import { rm } from "node:fs/promises";
import { resolve } from "node:path";
const root = resolve(import.meta.dir, "..");
@@ -9,7 +9,7 @@ const patterns: Array<{ glob: string; desc: string }> = [
];
for (const { glob, desc } of patterns) {
const entries = await Array.fromAsync(new Bun.Glob(glob).scan({ root, dot: true }));
const entries = await Array.fromAsync(new Bun.Glob(glob).scan({ cwd: root, dot: true }));
if (entries.length === 0) continue;
for (const entry of entries) {
const full = resolve(root, entry);

View File

@@ -16,7 +16,9 @@ writeFileSync(
configPath,
`targets:
- name: "httpbin"
url: "https://httpbin.org/get"
type: http
http:
url: "https://httpbin.org/get"
interval: "5m"
timeout: "15s"
expect: