[](https://circleci.com/gh/unmock/json-schema-fast-check) [](https://codecov.io/g
npm install json-schema-strictly-typed

json-schema-strictly-typed implements a strict flavor of the JSON Schema 7 specification for typing. By strict, we mean that it is organized into logical types that represent real usage, disallowing certain "nonsense" combinations of fields.
typescript
import { JSSTInteger } from "json-schema-strictly-typed";
test("my schema is an integer", () => {
JSSTInteger.is({ type: "integer" });
});
`
API
Here are all of the types in the API. Some of them also have sub-types for useful validation. In addition to canonical JSON Schema 6, we have added an optional faker field to the string type to use faker-like packages.
* JSSTEmpty
* JSSTConst
* JSSTReference
* JSSTNull
* JSSTBoolean
* JSSTInteger
* JSSTSimpleInteger
* JSSTIntegerWithMinimum
* JSSTIntegerWithMaximum
* JSSTIntegerWithBounds
* JSSTIntegerWithNumericExclusiveBounds
* JSSTIntegerWithNumericExclusiveMaximum
* JSSTIntegerWithNumericExclusiveMinimum
* JSSTIntegerEnum
* JSSTNumber
* JSSTSimpleNumber
* JSSTNumberEnum
* JSSTString
* JSSTSimpleString
* JSSTRegex
* JSSTStringEnum
* JSSTArray
* JSSTList
* JSSTTuple
* JSSTObject
* JSSTOneOf
* JSSTAnyOf
* JSSTAllOf
* JSSTNot
Additionally, top-level versions of all of these are available by adding TopLevel to the definition. Top-level JSON Schema objects contain optional fields like $id, $schema and definitions.
Todo
There is plenty of stuff that is not implemented yet. I'd really appreciate your help!
* finish implementing the JSON Schema 7 Specification
* add various schema extensions
* use XOR combinator instead of |` for types to avoid nonsense unoins