mcpField
A
arktype-validation

arktype-validation

github.com/oakoss開発20143 回インストール10 週間前に更新
リポジトリ

arktype-validation について

arktype-validation は、TypeScript プロジェクトで ArkType を使うためのスキルです。スキーマ定義、実行時検証、型推論に加え、変換やスコープなどを扱います。

主な機能

  1. 01文字列式によるスキーマ定義
  2. 02実行時検証と型推論
  3. 03変換、制約、カスタム検証
  4. 04スコープ、ジェネリクス、パターンマッチング
  5. 05環境変数と Vite ビルドの検証

活用シーン

  1. 01API リクエストとレスポンスの検証
  2. 02JSON 文字列の解析と検証
  3. 03フォーム入力と環境変数の検証

インストール

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

$npx skills add https://github.com/oakoss/agent-skills --skill arktype-validation

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
common-patterns.md
morphs-and-scopes.md
schema-types.md

詳細

ArkType によるバリデーション

概要

ArkType は TypeScript ネイティブのランタイムバリデーションライブラリです。TypeScript の構文を模した文字列式でスキーマを定義でき、エディターの自動補完、構文ハイライト、最適化されたバリデーターを利用できます。型安全な API の構築、JSON ペイロードの検証、Zod よりも TypeScript に馴染む方法への置き換えに適しています。Zod エコシステムとの互換性や JSON Schema の出力が必要なプロジェクトには適していません。

パッケージ: arktype

クイックリファレンス

パターン用途
type({ key: "string" })オブジェクトスキーマを定義する
type("string")プリミティブ型
"string.email"、"string.url"組み込みの文字列バリデーター
"string.trim"、"string.lower"組み込みの文字列モーフ(変換)
"string.json.parse"JSON 文字列を検証済みオブジェクトにパースする
"number > 0"、"string >= 1"インライン制約
"string | number"ユニオン型
"'a' | 'b' | 'c'"文字列リテラルのユニオン
"string[]"配列型
"key?": "string"オプショナルプロパティ
"key = 'default'"デフォルト値
.pipe()、.to()出力を変換する(モーフ)
.narrow()カスタムバリデーション(Zod の refine 相当)
.pick()、.omit()オブジェクトのプロパティを選択する
.merge()オブジェクト型を結合する
scope({...}).export()相互参照可能な名前付き型スコープ
type("<t>", { box: "t" })ジェネリック型定義
type.errorsエラー処理(instanceof type.errors で確認)
.assert(data)無効な入力の場合は値を返さず、例外をスローする
"(number % 2)#even"ブランド付け — 型のみで検証されるマーカー
"0 <= number <= 100"簡潔な範囲制約
configure()グローバルなデフォルト設定(arktype/config から)
match()型安全なパターンマッチング(2.1)
"+" : "reject"インラインで未宣言キーを処理する
arkenv({ PORT: "number" })型安全な環境変数の検証(ArkEnv)
arkenvVitePlugin(Env)Vite のビルド時環境変数検証

よくある間違い

間違い修正
type("string.email()") のように括弧を付けるtype("string.email")(括弧なし)
=== null でエラーを確認するinstanceof type.errors を使用する
オプショナルに { key: "string?" } を使う{ "key?": "string" }(疑問符はキーに付ける)
arktype/types からインポートする"arktype" から type と scope をインポートする
文字列式内で type() をネストする型の相互参照には scope() を使用する
エラー処理なしで .pipe() を使う例外が発生する可能性のある処理には .pipe.try() を使用する
大文字・小文字の変換に "string.lowercase" を使う"string.lower"("string.upper" も同様)
arktype のインポート後に設定するarktype より先に arktype/config をインポートする
process.env を手動でパースする自動変換と検証には arkenv() を使用する

委譲

ArkType のスキーマ定義、ランタイム検証、モーフ/変換、スコープ、型推論にはこのスキルを使用してください。Zod ベースの検証については、zod-validation スキルに委譲してください。

リファレンス

  • スキーマ型 — プリミティブ、文字列キーワード、数値の制約、オブジェクト、配列、タプル、ユニオン、オプショナル、デフォルト値
  • モーフとスコープ — pipe、モーフ変換、narrow 検証、スコープ、再帰型、ジェネリクス、グローバル設定、パターンマッチング
  • 一般的なパターン — JSON の解析、フォーム検証、API レスポンス、エラー処理、ArkEnv 環境変数、Vite プラグイン、Zod との比較

コメント