KairoApiRegistry
import { router } from '@kairo-js/router'
ev.api 経由でアクセスするクラスです。router.beforeEvents.startup イベント内でのみ操作可能です。startup イベント終了後に seal され、以降の操作はエラーになります。
メソッド
dispose
typescript
dispose(): voidリソースを破棄します。
返り値: void
getApiHandler
typescript
getApiHandler(apiName: string): ApiHandler | undefined登録済み API ハンドラを取得します。未登録の場合は undefined を返します。
| パラメーター | 型 | 説明 |
|---|---|---|
apiName | string | 取得する API 名 |
返り値: ApiHandler | undefined
getApiNames
typescript
getApiNames(): ReadonlyArray<string>登録済み API 名の一覧を返します。
返り値: ReadonlyArray<string>
getHookDeclarations
typescript
getHookDeclarations(): readonly InternalHookDeclaration[]登録済みフック宣言の一覧を返します。
返り値: readonly InternalHookDeclaration[]
hook
typescript
hook<TArgs, TReturn>(
targetAddonId: string,
apiName: string,
options: HookOptions<TArgs, TReturn>,
): void他アドオンの API 呼び出しをインターセプトするフックを登録します。
| パラメーター | 型 | 説明 |
|---|---|---|
targetAddonId | string | フック対象アドオンの ID |
apiName | string | フック対象の API 名 |
options | HookOptions<TArgs, TReturn> | フックの設定 |
返り値: void
typescript
// 引数の改ざん
ev.api.hook('economy-addon', 'economy/getBalance', {
before: async (ctx) => {
ctx.args = { ...ctx.args, audited: true }
},
})
// 結果の後処理
ev.api.hook('economy-addon', 'economy/getBalance', {
after: async (ctx) => {
ctx.result = { ...ctx.result, taxRate: 0.1 }
},
})register
typescript
register<TArgs, TReturn>(
apiName: string,
handler: (args: TArgs) => TReturn | Promise<TReturn>,
): void自アドオンが提供する API ハンドラを登録します。同一 addonId 内で同じ apiName を重複登録するとエラーになります。
| パラメーター | 型 | 説明 |
|---|---|---|
apiName | string | 登録する API 名 |
handler | (args: TArgs) => TReturn | Promise<TReturn> | API 呼び出し時に実行するハンドラ |
返り値: void
typescript
ev.api.register<{ playerId: string }, { balance: number }>(
'economy/getBalance',
async ({ playerId }) => {
return { balance: getBalance(playerId) }
},
)API 名の名前空間
economy/getBalance のようにスラッシュ区切りの名前空間を付けることを推奨します。
seal
typescript
seal(): voidAPI 登録を終了します。フレームワーク内部から呼ばれます。seal 後に register() または hook() を呼び出すとエラーになります。
返り値: void
setDeclaringAddonId
typescript
setDeclaringAddonId(addonId: string): voidフック宣言者の addonId を設定します。フレームワーク内部から呼ばれます。
| パラメーター | 型 | 説明 |
|---|---|---|
addonId | string | 宣言者の addonId |
返り値: void