@ authup/ 错误
Authup的出错分类,出错代码和代码到HTTP状态映射,其中有幸存了JSON的卫士.
一个用于服务器,HTTP客户端和控制台的错误词汇,因此一个呼叫器在代码上分出,而不是消息.
安装 • 妇女 使用量 • 妇女 API 密码 • 妇女 文档
合适的话
每个丢出或检查出错的工作空间都会导入此软件包: 服务器丢出其类, HTTP 错误的中间软件映射它们 code 地位,以及 @authup/core-http-kit 控制台从响应机构读出同样的代码。 当您自己的代码调用 Authup API 时直接安装它, 并想要在什么出错上分支(isEntityNotFoundError(error), (中文(简体) ), error.code === ErrorCode.JWT_EXPIRED),或者当您在Authup的服务器包上构建一个服务,并想要抛出同样的中间软件所理解的错误时.
安装
npm install @authup/errors
仅限无害环境管理。 节点.js >=26.0.0它有一个运行中的依赖, @ebec/core,和无节点专用API.
使用量
丢入并映射到状态
import { EntityNotFoundError, ErrorCode, httpStatusFromCode } from '@authup/errors';
const error = new EntityNotFoundError({ entity: 'user' });
error.message; // 'The user was not found.'
error.code === ErrorCode.ENTITY_NOT_FOUND; // true
httpStatusFromCode(error.code); // 404
httpStatusFromCode(ErrorCode.REGISTRATION_DISABLED); // 400, the fallback
- 每门课都延长
AuthupError并设定自己的code和默认消息。 通过一个字符串来替换信件,或者一个选项对象(message, (中文(简体) ),code, (中文(简体) ),data, (中文(简体) ),cause,以及entity实体类别). data合并为JSON表格,这就是LoginThrottledError, (中文(简体) ),MfaThrottledError财务报告和审定财务报表DeviceVerificationThrottledError携带retryAfter(秒)给客户.httpStatusFromCode(code, fallback = 400)来自ERROR_CODE_TO_STATUS;没有列出的任何代码都会有倒计时.codeFromHttpStatus错误来自国外来源.
识别出过线的错误
import { isAuthupError, isEntityNotFoundError, serializeError } from '@authup/errors';
declare const error: Error;
const body = JSON.parse(JSON.stringify(serializeError(error)));
if (isEntityNotFoundError(body)) {
// body.code === 'entity_not_found'
}
if (isAuthupError(body)) {
console.log(body.code, body.message);
}
serializeError电话toJSON()当错误有一个,否则会扩散自己的属性加name财务报告和审定财务报表message。当错误变成反应机构时使用它.- 警卫不需要了
instanceof。每类邮票 aSymbol.for(...)标记,和toJSON()将标记链写为同一键下的字符串,所以一个守护者会识别活出错误和解析过的JSON. normalizeError(value)将任何抛出的东西(字符串、数字、对象)变成真实Error。 。 。 .
API 密码
| 导出 | 仁爱 | 目的 |
|---|---|---|
AuthupError | 类 | 基类: a BaseError 从 @ebec/core 带有可选 data 记录合并为 toJSON() |
BadRequestError, (中文(简体) ), ValidationError | 类 | bad_request (400个) |
UnauthorizedError, (中文(简体) ), AuthHeaderError, (中文(简体) ), BearerTokenMalformedError | 类 | identity_unauthorized, (中文(简体) ), unsupported_auth_header_type, (中文(简体) ), bearer_token_malformed (401) (中文(简体) ) |
EntityNotFoundError, (中文(简体) ), EntityConflictError, (中文(简体) ), EntityInactiveError, (中文(简体) ), EntityCredentialsInvalidError | 类 | entity_not_found (404个), entity_conflict (409个), entity_inactive, (中文(简体) ), invalid_credentials (400);选项 entity 在信件中指定实体 |
LoginThrottledError, (中文(简体) ), MfaThrottledError, (中文(简体) ), DeviceVerificationThrottledError | 类 | 429辆 data.retryAfter |
InternalError | 类 | internal_error (500个) |
isError, (中文(简体) ), isAuthupError, (中文(简体) ), is<Class>Error | 函数 | 鸭式警卫,每班1名 |
ErrorCode | 语句 | 每个代码 Authup 发布:通用,实体,身份,JWT,JWK,OAuth2,许可和政策代码 |
ERROR_CODE_TO_STATUS, (中文(简体) ), httpStatusFromCode, (中文(简体) ), codeFromHttpStatus | const, 函数 | 代码到状态映射 |
serializeError, (中文(简体) ), normalizeError | 函数 | JSON边界和未知价值正常化 |
AuthupErrorOptions, (中文(简体) ), AuthupErrorInput, (中文(简体) ), AuthupEntityErrorOptions, (中文(简体) ), AuthupEntityErrorInput | 类型 | 构造输入类型 |
matchesInstanceof, (中文(简体) ), hasInstanceof, (中文(简体) ), markInstanceof, (中文(简体) ), serializeInstanceofChain, (中文(简体) ), INSTANCEOF_PROPERTY, (中文(简体) ), BASE_ERROR_INSTANCE | 再出口 | 这个 @ebec/core 标记原始的,用于您自己的错误类 |
每个类别还输出其标记符号(ENTITY_NOT_FOUND_ERROR_INSTANCE(中文(简体) ).
页:1
isAuthupError需要标记链. 一个没有@instanceof列表(手建){ code, message },或者旧服务器上的尸体)不是AuthupError即使它带有Authup代码。 读取body.code直接在这种情况下.- 一个班级警卫也接受平原代码.
isEntityNotFoundError对任何AuthupError谁code实值entity_not_found不仅在那种情况下.ValidationError财务报告和审定财务报表BadRequestError份额bad_request这样isValidationError财务报告和审定财务报表isBadRequestError无论是哪门课都一样. - 状态存在于映射中,而非出错. 没有类包含 HTTP 状态; 代码未在
ERROR_CODE_TO_STATUS默认为 400.
许可证
由 所制
现按 Apache 2.0 许可证。 。 。 .