mcpField
T
typebox

typebox

github.com/epicenterhq開発4.8k76 回インストール2 週間前に更新
リポジトリ

typebox について

TypeScript プロジェクトで TypeBox を選び、使うためのリポジトリスキルです。スキーマの定義や検証方法、別のスキーマライブラリを選ぶ条件を説明します。

主な機能

  1. 01ポータブルなスキーマオブジェクトの定義
  2. 02Value.Check() による検証
  3. 03高性能バリデーターのコンパイル
  4. 04スキーマ境界の指針

活用シーン

  1. 01workspace テーブルのスキーマ定義
  2. 02値の単発検証
  3. 03コンパイル済みスキーマで反復検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/epicenterhq/epicenter --skill typebox

インストール後、Claude Code で/typeboxを入力して読み込まれたか確認します。

詳細

TypeBox

パッケージ名

@sinclair/typebox ではなく、typebox を使用してください。@sinclair/typebox パッケージは非推奨です。

// Correct
import { Type } from 'typebox';
import { Compile } from 'typebox/compile';
import { Value } from 'typebox/value';

// Wrong - deprecated
import { Type } from '@sinclair/typebox';

用途に応じた使い分け

必要なこと使用するもの
スキーマの定義Type.* を使った typebox
単発の検証typebox/value の Value.Check()
高速な検証typebox/compile の Compile()

TypeBox スキーマは、持ち運び可能な JSON Schema 形式のデータです。TypeBox の境界で 検証が必要な場合は、TypeBox スキーマを直接検証してください。

import { Type } from 'typebox';
import { Compile } from 'typebox/compile';
import { Value } from 'typebox/value';

const schema = Type.Object({ name: Type.String(), age: Type.Number() });

Value.Check(schema, value); // boolean

const validator = Compile(schema);
validator.Check(value); // boolean
validator.Parse(value); // throws or returns typed value

Standard Schema の境界

TypeBox は Standard Schema を実装していません。schema['~standard'] を想定する TypeBox コードは記述しないでください。境界が Standard Schema を受け入れる場合は、 Arktype または Standard Schema をネイティブに実装している別のスキーマライブラリを 使用してください。境界が TypeBox スキーマを扱う場合は、境界を TypeBox ネイティブに 保ち、持ち運び可能な表現として JSON Schema を使用してください。

リポジトリの方針

ワークスペーステーブル、kv、フィールド、アクション、MCP 入力、マニフェストなど、 JSON Schema の形式、メタデータ、Static<>、またはスキーマの検査が必要な箇所では、 持ち運び可能なスキーマオブジェクトに TypeBox を使用してください。ローカルでの ランタイム検証、リクエストの解析、env/config の解析、永続化される UI 状態、 変換、およびブランド付きドメイン値には Arktype を使用してください。

参考資料

コメント