$ npm install @escalated-dev/escalated-adonisAdonisJS向けに構築
なぜAdonisJSにEscalatedか
EscalatedはネイティブのAdonisJSパッケージのように感じるよう設計 — 後付け統合ではなく。
Lucid ORMモデル
チケット、返信、タグ、アクティビティはLucidモデル。完全なTypeScript型推論でリレーション、スコープ、クエリビルダーを使用。
サービスプロバイダー
AdonisJSサービスプロバイダーを通じてEscalatedを登録。設定、バインディング、ブートロジックは標準のAdonisJSパターンに従う。
TypeScriptネイティブ
すべてのモデル、コントローラー、サービスがTypeScriptで記述。パッケージ全体で完全な型安全性、オートコンプリート、コンパイル時チェック。
始めましょう
仕組み
AdonisJSアプリケーション内の完全機能サポートシステムまで3ステップ。
パッケージをインストール
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,
})