TypeScript 原生的工单系统,为 AdonisJS
Lucid ORM 模型、服务提供者和 Inertia 渲染。Escalated 作为完全类型化的包与 AdonisJS v6 集成,提供一流的 TypeScript 支持。
$ npm install @escalated-dev/escalated-adonis为 AdonisJS 而建
为什么 AdonisJS 选择 Escalated
Escalated 被设计为感觉像原生 AdonisJS 包,而非外挂集成。
Lucid ORM 模型
工单、回复、标签和活动都是 Lucid 模型。使用关系、作用域和查询构建器,具有完整的 TypeScript 类型推断。
服务提供者
通过 AdonisJS 服务提供者注册 Escalated。配置、绑定和启动逻辑遵循标准 AdonisJS 模式。
TypeScript 原生
每个模型、控制器和服务都用 TypeScript 编写。整个包具有完整的类型安全性、自动补全和编译时检查。
开始使用
工作原理
三步在 AdonisJS 应用中获得完整的支持系统。
安装包
npm install @escalated-dev/escalated-adonis配置提供者
node ace configure @escalated-dev/escalated-adonis挂载路由
在 start/routes.ts 中注册 Escalated 路由即可上线。带有类型安全控制器的完整工单管理。
功能
你需要的一切
Escalated 开箱即用地与完整的 AdonisJS 生态系统集成。
Lucid 关系
工单属于用户,拥有多个回复,使用多态关系。内置类型安全的查询构建和预加载。
Bull 队列集成
邮件通知和 Webhook 分发使用 AdonisJS 的内置队列系统。具有重试逻辑和监控的后台处理。
Bouncer 授权
授权与 AdonisJS Bouncer 集成。定义能力和策略来控制谁可以查看、回复和管理工单。
事件发射器
每个工单操作发出类型化事件。以完整的类型安全性监听 TicketCreated、ReplyAdded 和 StatusChanged。
HTTP 中间件
将你现有的中间件应用到 Escalated 路由。认证、速率限制和租户范围限定在 AdonisJS 中间件管道中自然工作。
Japa 测试助手
自带 Japa 测试助手。使用类型化工厂函数在测试套件中创建工单、回复和用户。
集成
对 AdonisJS 来说感觉原生
标准 AdonisJS 模式。没有需要学习的新抽象。
// start/routes.ts
import router from '@adonisjs/core/services/router'
import { escalatedRoutes } from '@escalated-dev/escalated-adonis'
escalatedRoutes(router)
// app/models/user.ts
import { compose } from '@adonisjs/core/helpers'
import { HasTickets } from '@escalated-dev/escalated-adonis'
export default class User extends compose(BaseModel, HasTickets) {}
// Anywhere in your application
const ticket = await user.related('tickets').create({
subject: 'Need help with billing',
priority: 'high',
})
await ticket.related('replies').create({
body: "We've updated your invoice.",
userId: agent.id,
})