Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/smikhalevski/doubter-json-schema

🤔 Converts Doubter shapes from and to JSON schemas.
https://github.com/smikhalevski/doubter-json-schema

doubter json-schema

Last synced: about 2 months ago
JSON representation

🤔 Converts Doubter shapes from and to JSON schemas.

Awesome Lists containing this project

README

        

# Doubter × JSON Schema

Converts [Doubter](https://github.com/smikhalevski/doubter) shapes from and to JSON schemas.

> [!WARNING]\
> This project is at the early development stage.

```shell
npm install --save-prod @doubter/json-schema
```

Define a shape:

```ts
import * as d from 'doubter';
import { toJSONSchema } from '@doubter/json-schema';

const shape = d.object({
name: d.string(),
age: d.number().gt(10).optional()
});
// ⮕ Shape<{ name: string, age?: number | undefined }>

const schema = toJSONSchema(shape);
```

The `schema` is a JSON schema object:

```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "number",
"exclusiveMinimum": 10
}
},
"required": ["name"]
}
```