UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Ajv】Ajvとは

Ajv.jsというのを知ったので調べた

Ajv.jsはjsonバリデータ ajv.js.org

以下のように宣言型スキーマを介してバリデーションを行う

const Ajv = require("ajv")
const ajv = new Ajv()

const schema = {
  type: "object",
  properties: {
    foo: {type: "integer"},
    bar: {type: "string"}
  },
  required: ["foo"],
  additionalProperties: false
}

const data = {foo: 1, bar: "abc"}
const valid = ajv.validate(schema, data)
if (!valid) console.log(ajv.errors)

zodと同様の位置付けになるが、スキーマファイルを用意するという点で異なるものだとわかった

【Zod】TypeScript First なバリデーションライブラリ - UGA Boxxx

手書きでスキーマファイル作るのは大変そうな印象だが、軽量で高速であるという特徴があるため、現場にあわせて導入を検討するのはよさそう