Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/searchfe/json-schema-generator

JSON schema generator supports draft 07
https://github.com/searchfe/json-schema-generator

draft07 generator json schema

Last synced: 3 months ago
JSON representation

JSON schema generator supports draft 07

Awesome Lists containing this project

README

        

# JSON Schema Generator

[![Build Status](https://travis-ci.com/harttle/json-schema-generator.svg?branch=master)](https://travis-ci.com/harttle/json-schema-generator)
[![Coverage Status](https://coveralls.io/repos/github/harttle/json-schema-generator/badge.svg?branch=master)](https://coveralls.io/github/harttle/json-schema-generator?branch=master)

Spec: http://json-schema.org/latest/json-schema-validation.html

## Install

```bash
npm install --save jsg07
```

## Usage

```javascript
const jsg = require('jsg07');

let schema = jsg.infer({
name: 'Mike',
male: true,
tags: ['Gentle', 'Nice']
});
console.log(JSON.stringify(schema, null, 4));
```

## Output

```
{
"title": "An object value",
"required": [
"name",
"male",
"tags"
],
"properties": {
"name": {
"title": "A string value",
"default": "",
"pattern": "^(.*)$",
"examples": [
"Mike"
],
"$id": "#/properties/name",
"type": "string"
},
"male": {
"title": "A boolean value",
"default": false,
"examples": [
true
],
"$id": "#/properties/male",
"type": "boolean"
},
"tags": {
"title": "An array of items",
"items": {
"title": "A string value",
"default": "",
"pattern": "^(.*)$",
"examples": [
"Gentle"
],
"$id": "#/properties/tags/items",
"type": "string"
},
"$id": "#/properties/tags",
"type": "array"
}
},
"$id": "http://example.org/root.json#",
"type": "object",
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}
```