ajv-cli icon indicating copy to clipboard operation
ajv-cli copied to clipboard

Feature Request: compile to standalone TypeScript, or generate typings

Open thw0rted opened this issue 4 years ago • 1 comments

I'm trying to validate JSON against a TypeScript interface. I used https://github.com/vega/ts-json-schema-generator to generate a JSON schema from the interface, then used ajv-cli to produce a standalone validator from the schema. The validator is an ES module with a default export function which takes the output of JSON.parse and returns true if the data is valid, or sets an errors property on the function and returns false otherwise.

I can write my own typings to describe this generated module, but it would be nice if the CLI could generate TypeScript code directly (with a flag like -code-ts), or add JSDoc annotations from which TypeScript can infer type information (at least for the one exported function), or create a .d.ts file describing the export(s) in the output directory (when run with a -o flag).

As an aside, if there's an easier way to get from what I have (TS interface) to what I want (runtime validation function), I'm happy to take other suggestions.

thw0rted avatar Nov 17 '21 12:11 thw0rted

I would just add that setting the errors property on the function itself is a pretty odd design choice especially since the function takes a second optional argument anyhow.

How do you describe the errors in Typescript?

iebold avatar Aug 02 '23 17:08 iebold