https://github.com/frctl/json-schema
[WIP] Parser to convert condensed JSON schemas to standard ones.
https://github.com/frctl/json-schema
Last synced: 8 days ago
JSON representation
[WIP] Parser to convert condensed JSON schemas to standard ones.
- Host: GitHub
- URL: https://github.com/frctl/json-schema
- Owner: frctl
- License: mit
- Created: 2017-02-28T14:24:23.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-26T16:17:11.000Z (about 9 years ago)
- Last Synced: 2025-11-21T13:05:46.614Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 44.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# JSON Schema
Parser to convert condensed JSON schemas to standard ones.
[](https://travis-ci.org/frctl/json-schema)
[](https://www.npmjs.com/package/@frctl/json-schema)
## Overview
This is a parser that generates a fully qualified [JSON Schema](http://json-schema.org/) based on 'condensed' JSON schema input. From [Understanding JSON Schema](https://spacetelescope.github.io/understanding-json-schema/):
> JSON Schema is a powerful tool for validating the structure of JSON data.
### Rationale
[JSON Schema](http://json-schema.org/) is extremely useful for validation purposes; however, in some use cases it may also be more verbose than necessary. This tool was created to allow users of [Fractal](https://github.com/frctl/v2) to add specifications to their components, whilst hiding some of the complexity of the full specification.
```js
const schemaExpander = require('@frctl/json-schema');
const schema = schemaExpander.expand({ title: 'string', modifier: 'string' });
console.log(schema);
/*
Outputs:
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"title": {
"type": "string"
},
"modifier": {
"type": "string"
}
}
}
*/
```
## Installation
```bash
npm i @frctl/json-schema --save
```
## API
### .expand(schema)
Returns a fully qualified JSON schema.
* `schema`: A [Condensed JSON schema](/docs/schema.md)
```js
const schema = jsonSchema.parse({ title: 'string', modifier: 'string' });
```
- If a valid condensed schema is provided, a converted, fully qualified schema will be returned.
- If an already fully qualified schema is provided, it will return that.
- If an invalid schema is provided, it will return an empty schema (i.e. all data will validate).
## Resources
* [Condensed JSON Schema specification](/docs/schema.md)
* [JSON Schema Validator](http://www.jsonschemavalidator.net/)
* [Understanding JSON Schema](https://spacetelescope.github.io/understanding-json-schema/)
## Requirements
Node >= v6.0 is required.