deno 是否有替代的 ajv(json-schema 验证器)?

Eri*_*iao 5 deno

我正在为 deno 寻找类似 ajv 的 json 模式验证器。想知道有没有其他选择?

Nem*_*o64 6

您可以选择使用非 deno 模块。

最简单的方法是使用像esm.sh这样的服务并将其导入,如下所示:

import Ajv from 'https://esm.sh/ajv@8.6.1';
import addFormats from 'https://esm.sh/ajv-formats@2.1.0';
const ajv = new Ajv({allErrors: true});
addFormats(ajv);
Run Code Online (Sandbox Code Playgroud)

esm.sh甚至提供 .d.ts 定义(如果可用),因此您也可以导入类型。

import Ajv, {ValidateFunction} from 'https://esm.sh/ajv@8.6.1';
const validate: ValidateFunction = new Ajv().compile(schema);
Run Code Online (Sandbox Code Playgroud)

在某些情况下,您甚至可以直接从 git 导入原始 typescript 文件。但Ajv直接导入 json 文件,deno 不支持 atm


Muh*_*ooq 1

到目前为止,类似 ajv 的模式验证器不适用于 Deno。但是,您可以尝试value_schema进行架构验证。它有Node.jsDeno两个版本。