Skip to main content

createArkor

createArkor は、arkor devarkor start、Studio の /api/manifest エンドポイントが src/arkor/index.ts で探すプロジェクトマニフェストを生成します。今のところマニフェストが含むのは Trainer だけで、型は deployeval のスロットを予約していますがどちらも未実装です。

シグネチャ

返ってくるオブジェクトは Object.freeze 済み。メソッドはありません。フレームワークは _kindtrainer を直接読みます。

パラメーター

  • trainer: createTrainer で作った Trainer を渡す。型上はオプショナルですが、trainer のないマニフェストは arkor start で実行できません(ランナーが Training entry must export `arkor` (from createArkor({...})) or `trainer` (from createTrainer({...})), or default-export one of them. で例外が発生します)。

予約フィールド

  • deployeval スロット。ArkorInputArkor ではコメントアウトされた予約フィールドとして現れます。現状それらを渡すと型エラーになり、ランタイム側の処理もありません。前方互換 API ではなくロードマップマーカーとして扱ってください。

振る舞い

認識されるエクスポート形

arkor start(経由 runTrainer)は src/arkor/index.ts を次の 3 つのエクスポートのいずれかについて、優先順位順に検査します:
  1. export const arkor = createArkor({ ... })(推奨。テンプレートが生成する形)
  2. export const trainer = createTrainer({ ... })(パワーユーザー向けショートカット、マニフェストなし)
  3. export default ...Arkor マニフェストか、ベアな Trainer のいずれか)
どれもマッチしないとランナーは上記メッセージで例外を投げます。テンプレートは常に形式 1 を生成します。他を選ぶ理由が分かっていない限り、これを選んでください。

isArkor

マニフェストを動的に利用するコードのために createArkor と一緒にエクスポートされている小さな型ガードです。値が null でないオブジェクトで _kind === "arkor" であることをチェックします(Object.isFrozen は確認 しませんcreateArkor 自体は frozen な値を生成するにもかかわらず)。普通に使う場面は限られます。通常のコードでは index.ts からの型付きエクスポートが既に正しい形を与えてくれます。

関連項目