@absolutejs/eden (英语)
小错误助手 伊甸园条约
客户。 Eden 显示失败的调用为 { status, value } 和大多数呼叫
地点 throw error.value,放弃HTTP状态,所以402个付费墙,409个
冲突,500人看起来都是一样的下游。 这可以解决.
import { apiError, isPaywallError } from "@absolutejs/eden";
const { data, error } = await api.things.get();
if (error) throw apiError(error); // a real Error that KEEPS error.status
// elsewhere
try {
await loadPremiumPanel();
} catch (e) {
if (isPaywallError(e)) showUpgradeNudge();
else showError(apiErrorMessage(e));
}
API 密码
apiError(error, fallback?)- 使任何抛出值(或伊甸园)正常化{ status, value }变成一个Error保留.status。 。 。 .apiErrorMessage(error, fallback?)- 人类最好的信息.apiErrorStatus(error)—— HTTP 状态,如果有错误的话.isPaywallError(error)402笔所需付款是真实的.
倾斜
列表端点可以共享一个无限请求/答复合同而无需隐藏 其具体数据库查询 :
import {
normalizeOffsetPage,
type OffsetPage,
} from "@absolutejs/eden";
const { limit, offset } = normalizeOffsetPage(request, {
defaultLimit: 25,
maxLimit: 100,
});
const response: OffsetPage<User> = { data: rows, total };
CursorPage<T> 是用于稳定密钥集页化的对应信封.
getPageCount, (中文(简体) ), clampPageIndex,以及 getPageRange 保留客户端 pagination 数学
符合服务器合同.
0依赖;在浏览器和服务器上工作.
阿帕奇 - 2.0