Joi
JavaScript のバリデーションライブラリ
hapi という node.js の Web フレームワークのバリデーションライブラリとして採用されているが、単独でも使える。
細かい使い方(hapijs のサイトよりこっちのほうが見やすい気がする)
単一の値をバリデーションするとき
code: javascript
const { value, error } = Joi.string().min(1).max(256).required().validate(value);
オブジェクト内の値をバリデーションするとき
code: javascript
const schema = Joi.object({
key1: Joi.string().min(1).max(256).required(),
key2: Joi.number()
});
こんな感じで細かく色々な指定ができる
気になったところ
https://gyazo.com/4fb616b87aa35c9124816c738cb4d590
(be careful of the cost of compiling repeatedly the same schemas)
どんなもんなんだろ?
ベンチマーク (リポジトリにあるスクリプトをローカルで走らせてスクショ)
https://gyazo.com/437a12e877fa07b2ac7ee64b78e1d589
Schema creation with long valid() list のテストケースが 30ms ぐらいかかるらしいのでコードを読んでみた
length: 40000 ぐらいの配列を作って
Joi.string().valid(...arr)
というスキーマを作成するのに30ms ぐらいかかる
ということらしい。