@absolutejs/errors-postgres

中文文档
0.2.0发布于 2026/10/22Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 2394

后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后.

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 滴水龙头
  4. 标记模板相容性
  5. 执行什么
  6. 组合语义( 镜像) createMemoryIssueStore 确切的说)
  7. 斯克马 (懒惰,同能)
  8. 曲线
  9. 许可证

@absourutejs/errors-postgres (英语)

后发后发后发, 效应本土 IssueStore 页:1 @absolutejs/errors —— 说 耐用"问题"表面(哨兵的产品核心),自发寄托在您身上 拥有Postgres.

长期分类 问题 + 仅一个附件 事件时间表,与 新的回归 探测在单一原子CTE上升中得到解析—— 一个往返,没有交易, 所以它工作过尼昂的HTTP驱动器.

安装

bun add @absolutejs/errors-postgres
# plus your driver + peers:
bun add @absolutejs/errors effect postgres   # or @neondatabase/serverless

postgres 财务报告和审定财务报表 @neondatabase/serverless 为: 选项 同伴——安装 随便你用哪个司机.

使用量

滴水龙头

从您的应用程序中再导出软件包表格, 用 您的正常迁移工作流程 :

export { errorEvents, errorIssues } from "@absolutejs/errors-postgres";
import { createDrizzleIssueStore } from "@absolutejs/errors-postgres";

const store = createDrizzleIssueStore({ db });

Drizzle 商店使用交易进行原子事件/组更新, 便携式 本地 JSONB 用于标记和额外的上下文,行锁定用于回归检测, 和与被标记的模板适配器相同的效果出错通道. JSONB 值作为本地对象传递给 Drizzle 驱动程序(而不是 预序列化字符串,防止被 Bun SQL 存储为 JSON 字符串.

标记模板相容性

import postgres from "postgres";
import { createErrorTracker } from "@absolutejs/errors";
import { createPostgresIssueStore } from "@absolutejs/errors-postgres";

const sql = postgres(process.env.DATABASE_URL!);

const errors = createErrorTracker({
  project: "acme",
  release: process.env.RELEASE,
  store: createPostgresIssueStore({ sql }), // schema auto-created, lazy
  onIssue: (r) => alert(r.issue), // only on new / regression
});

await errors.captureException(err, { traceId, replayId });

作品与 @neondatabase/serverless数字 :

import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL!);
createPostgresIssueStore({ sql });

执行什么

每个方法返回一个 Effect 输入 IssueStoreError 频道 (单位:千美元)IssueStoreSchemaError 编号 : IssueStoreQueryError 编号 : IssueStoreSerializationError)——失败是价值,而不是抛出.

方法效果
record(event)原子升高(一个事件) □ { issue, isNew, isRegression }
recordCoalesced(group)计数上升+大宗 unnest 插入——每群一次往返旅行
listIssues(filter?)仪表板列表(项目/环境/状态/ILIKE标题),最新首发
getIssue(project, fingerprint)Option<IssueRecord>
setState(project, fingerprint, state)解析/ 忽略/ 未解析
assign(project, fingerprint, who | null)分数
listEvents(project, fingerprint, limit?)发生时间,最新第一次

组合语义( 镜像) createMemoryIssueStore 确切的说)

  • 新的回归 在一个语句中检测到: xmax = 0 ⇒行 插入( 新); CTE 抓取更新前的日期 state,所以一个 resolved 再次看到的问题是一个 回归 转回 unresolved。 。 。 . ignored 问题保持沉默.
  • 严重性不断升级,从未降级 —— 说 fatal > error > warning > info。 。 。 .
  • 第一次/最后一次释放 追踪到的first_release )). 后补.
  • lastSeen 用途 GREATEST ——出事事件永不倒计时.

斯克马 (懒惰,同能)

在第一次使用时创建( 设置) ensureSchema: false 通过移民管理. tablePrefix 默认为 error → error_issues + 键 error_events。 。 。 .

error_issues  PK (project, fingerprint)   -- one row per grouped issue
error_events  bigserial id                -- append-only occurrences (jsonb tags/extra)

索引 : (project, last_seen DESC) 财务报告和审定财务报表 (project, state) 关于问题; (project, fingerprint, at DESC) 活动.

trace_id 编号 : span_id (-) @absolutejs/telemetry和 replay_id (-) @absolutejs/replay) 存储每个事件,这样一个仪表板可以交叉链接 一个问题 准确的追踪 和DOM重放.

error_issues 还载有决议线索—— resolved_at, (中文(简体) ), resolved_by, (中文(简体) ), resolved_release, (中文(简体) ), resolution_note ——分块板 当一个问题结束的时候写. ensureSchema 将它们添加到现有的表格中; 通过迁移拥有其计划的申请必须自己加入 在升级之前,因为商店会写它知道的每一个专栏.

选择来自 Drizzle 的系统存储, 用于应用程序管理的数据库或 用于轻量级和尼昂HTTP的原始标记-模板相容性商店 一体化.

曲线

商店回答"什么破了,多久破了". 上面的一块板子必须 回答一个人在它面前实际问到的问题: 什么是现在打破,谁是 在它上,完成了固定, 释放引入了这一点. createIssueTriage 是那些询问, 绑在一个项目上 .

import { createIssueTriage } from "@absolutejs/errors-postgres";

const triage = createIssueTriage({ db, project: "acme" });

await triage.list({ severity: "error", state: "unresolved" });
await triage.get(fingerprint); // issue + recent events
await triage.occurrences(fingerprint, 14); // zero-filled daily sparkline
await triage.stateCounts(); // numbers for the filter chips
await triage.setState(fingerprint, "resolved", { by, note, release });
await triage.assign(fingerprint, "alex");
await triage.releaseStats(["sha1", "sha2"]);

A 类 回归 被导出, 不存储 : 摄入上浮翻转解 发回 unresolved 当它复发而离去的时候 resolved_at 已经到位,所以 未解决 + 解析印章 + 活动 后表示修补没有被持有 . setState 清除重开的线索, 因为手动重开是决定 而不是一个失败的修复, 和幸存的邮票会成为下一个 重现看起来像一个.

releaseStats 需要的部署分类账: 发布,其中提出了多少问题,从它之前, 或被宣布为固定在其中 3个警告的部署与1个不同 引入了三个错误。 每放出一桶,每桶一桶.

许可证

阿帕奇2.0 (英语).

版本与发布记录

@absolutejs/errors-postgres 共发布 13 个版本,首次发布于 2026/06/25;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.0latest2026/10/2216 天前
0.2.0-beta.0beta2026/09/012 个月前
0.1.42026/08/063 个月前
0.1.32026/07/313 个月前
0.1.22026/07/293 个月前
0.1.12026/07/253 个月前

关于 @absolutejs/errors-postgres 的常见问题

@absolutejs/errors-postgres 是什么?

后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后加后.

如何安装 @absolutejs/errors-postgres?

在项目目录运行 npm install @absolutejs/errors-postgres,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:effect(>=3.22.0 <4)、drizzle-orm(>=1.0.0-rc.4 <2)、@absolutejs/errors(>=0.9.0 <0.11.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@absolutejs/errors-postgres 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@absolutejs/errors-postgres 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@absolutejs/errors-postgres 可以商用吗?

@absolutejs/errors-postgres 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@absolutejs/errors-postgres 的下载量有多少?

根据 npm 官方下载统计,@absolutejs/errors-postgres 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,394 次,日均约 80 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@absolutejs/errors-postgres 还在维护吗?

最新版本 0.2.0 发布于 2026/10/22(16 天前);至今共发布 13 个版本,其中过去 12 个月发布了 13 个;首次发布于 2026/06/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。