@ explorins/ pers- supposed (英语)
公共合同图书馆
前端,第三方集成,API消费者的纯数据合同.
套装大小
- 浏览器 Bundle数字 : 0.44 KB (韩语) (0.30 KB 击出)
- 全装数字 : 0.67 KB (韩语) (0.38 KB 击出)
- 常见JS数字 : 1.53 KB (韩语) (0.72 KB克齐普)
- 软件包大小: 1.2 MB(包括所有类型脚本定义)
- 运行时间影响: 有树摇动的 < 1 KB
目录
- DTO 数据交换 - 通过验证完成 API 数据传输对象
- 接口 - 认证、用户、竞选、交易的脚本类型合同
- 类型( E) - 认证类型、错误代码、交易状态
- 值对象 - 不可移动的数据结构(
Address, (中文(简体) ),StructuredError(中文(简体) ) - 错误分类 - 结构化域差(
AuthenticationRequiredError页:1 - 域名词组 - 说吧
Domains为SDK事件,ErrorDomains错误分类
关键构建配置
银河公司问题: 此库需要 "moduleResolution": "node16" 在tsconfig.json中防止与NestJS Swagger发生循环依赖性错误。 使用 "node" 导致斯瓦格生成失败的调试3天.
{
"compilerOptions": {
"moduleResolution": "node16", // CRITICAL: Required for Swagger compatibility
"target": "ES2022",
"module": "CommonJS"
}
}
使用量
npm install @explorins/pers-shared
后端/节点.js
import {
UserDTO,
TransactionStatus,
AuthenticationRequiredError,
PasskeysAuthRequestDTO
} from '@explorins/pers-shared';
// Type-safe API requests
const authRequest: PasskeysAuthRequestDTO = {
authToken: "external_provider_jwt_token"
};
// Structured error handling
try {
const user = await authenticate(authRequest);
} catch (error) {
if (error instanceof AuthenticationRequiredError) {
console.error('Authentication failed:', error.code);
}
}
前端/浏览器(Ultra-Light)
// Browser-optimized import - Tree-shaken to 0.44 KB!
import { UserDTO, CampaignDTO, Address } from '@explorins/pers-shared/browser';
// React example with full type safety
interface UserBalanceProps {
user: UserTokenBalancesDTO;
}
const UserBalance: React.FC<UserBalanceProps> = ({ user }) => (
<div>
<h2>{user.email}</h2>
<p>Wallet: {user.walletAddress?.getValue()}</p>
</div>
);
🔧 构建系统性能( P)
- 双构件: 通用JS(节点.js)+具有自动选择功能的无害环境管理(浏览器)
- 异常树摇: 99.9%+消除 (1.2 MB包 → 0.44 KB运行时间)
- 0 运行时间: 无执行间接费用的纯类型定义
- 框架不可知论:反应、Vue、Angular、香草JS、节点
️ 域名词组
SDK事件分类和错误分类的统一域名:
// SDK success events - business domains only
import { Domains, Domain } from '@explorins/pers-shared';
onSuccess(event: { domain: Domain }) {
if (event.domain === Domains.TRANSACTION) { ... }
}
// SDK error handler - includes technical categories
import { ErrorDomains, ErrorDomain } from '@explorins/pers-shared';
onError(error: { domain: ErrorDomain }) {
if (error.domain === ErrorDomains.VALIDATION) { ... }
}
🎯 主要惠益
- 类型安全: 在编译时抓取 API 集成错误
- 开发者经验: 全面IntelliSense和自动完成
- 业绩: 特殊树摇晃 (1.2 MB − 0.44 KB 运行时间)
- 可靠性合同符合PERS API的规格