ページ内ナビ
概要
Valibotは、schema・validation・transformationを小さな関数として組み合わせる実行時検証libraryです。objectやpipeでschemaを構成し、parseやsafeParseで未知の入力を検証しながら、同じschemaからTypeScriptのinput/output型を推論できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
objectとpipeで検証条件を小さな関数から組み立てる
object、string、email、minLengthなどの独立した関数を組み合わせてschemaを作ります。一つの大きなAPIへ多数のmethodを持たせず、必要な機能をimportして構成する設計です。
出典:[1]
parse・safeParse・isを用途に応じて使い分ける
parseは不正な入力でerrorを投げ、safeParseは例外を使わず結果を返し、isはtype guardとして利用できます。formやAPI境界でerror処理方針に合わせて入口を選べます。
出典:[1]
schemaからTypeScriptのinput/output型を推論する
schemaは実行時に入力を検証するだけでなく、InferOutputなどからTypeScript型を取得できます。runtime validationと静的型を一つのschemaへ寄せられます。
出典:[1]
向いている用途
導入前の確認
v1.5.0はTypeScript 5以上とES2020対応環境を前提にする
package metadataはTypeScript >=5をoptional peerとして宣言し、公式installation guideは最小TypeScript 5.0.2、strict modeの推奨、配布fileのtargetがES2020であることを示しています。bundlerやtranspilerの対応状況を確認してください。
v1.5.0ではschemaの安全性と文字列validationにも修正が入っている
v1.5.0のCHANGELOGには、Object.prototypeと衝突するunknown keyの扱い、intersect時のinherited property処理、emailやULID validationの修正などが含まれます。validation libraryとしてversion固定と回帰testを行うのが安全です。
出典:[4]
参考にした公式資料
- [1]Valibot v1.5.0 README(2026-10-05)
- [2]Valibot v1.5.0 installation guide(2026-10-05)
- [3]Valibot v1.5.0 package metadata(2026-10-05)
- [4]Valibot v1.5.0 changelog(2026-10-05)
- [5]Valibot MIT license(2026-10-05)
編集部からの補足
GitHub repositoryはfabian-hiller/valibotからopen-circle/valibotへ移管済みです。numeric repository IDは同じため同一projectとして扱っています。導入時は古いowner名ではなく現在の公式repositoryとvalibot packageを参照してください。
3ステップで試す
- 1
Valibot 1.5.0を一時projectへ導入する
公式installation guideのnpm手順に従い、review対象versionを固定して導入します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/valibot.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact valibot@1.5.0 - 2
objectとpipeでlogin schemaを作る
READMEの例と同じobject・pipe構成でschemaを作り、例外を投げないsafeParseで入力を検証します。
printf "%s\n" "import * as v from 'valibot';" "const LoginSchema = v.object({email: v.pipe(v.string(), v.email()), password: v.pipe(v.string(), v.minLength(8))});" "const result = v.safeParse(LoginSchema, {email: 'ada@example.com', password: '12345678'});" "if (!result.success) { console.error(result.issues); process.exit(1); }" "console.log(result.output);" > demo.mjs - 3
Node.jsでvalidationを実行する
schemaが有効な入力を受け取り、safeParseのoutputを返すことを確認します。
node demo.mjs
成長
成長の推移 · 直近30日
9,027 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 28
- Open PR
- 118
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- bundle-size
- modular
- parsing
- schema
- type-safe
- typescript
- validation
- runtime
- form-validation
- runtime-validation
- schema-validation
- standard-schema
- Stars
- 9,027
- Forks
- 391
- Watchers
- 24
- Open Issues
- 94
- Contributors
- 206
- 所有者種別
- Organization
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/10/03
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Runtypes2,699 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
未知の値をcomposableなruntime validatorで検証し、同じ定義からTypeScript型を推論する
TypeScript - Ky17,104 Stars
共通タグ 4件 · 同じ言語
Fetch APIを薄く拡張し、retry・timeout・hook・JSON処理を短いAPIで扱う
TypeScript - ofetch5,360 Stars
共通タグ 4件 · 同じ言語
Node・browser・workerで同じAPIを使い、fetchへJSON解析・retry・timeout・interceptorを加える
TypeScript - Storybook91,200 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
UI状態をstoryとして保存し、Docs・interaction test・AI toolへ再利用するfrontend workshop
TypeScript - Expo52,566 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
React NativeアプリをAndroid・iOS・Webへ一つのprojectから展開する
TypeScript - PostCSS28,974 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
CSSをASTへ変換し、JavaScript pluginでbuild時のstyle処理を組み立てる
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。