Transforms a JSON Schema to a type tcomb type.
Compatibility
- tcomb ^2.0.0 -> tcomb-json-schema ^0.2.5
- tcomb ^3.0.0 -> tcomb-json-schema ^0.3.0
Playground
If you want to get a general feel for how this works please head over to https://gcanti.github.io/resources/json-schema-to-tcomb/playground/playground.html
API
transform(schema: JSONSchema): Type
Example
var transform = ; var TcombType = ;
registerFormat(format: string, predicateOrType: (x: any) => boolean | Type): void
Registers a new format.
Example
{ return /+@+/;} transform; var TcombType = ;
resetFormats(): void
Removes all registered formats.
transform;
registerType(typeName: string, type: tComb Supported types): void
Registers a new type.
Example
var Str10 = t; transform; var TcombType = ;
resetTypes(): void
Removes all registered types.
transform;
JSON Schema
strings
type string
accepts the property pattern
which will be used as a predicate (the value of the string must match the regular expression defined in pattern
). Example:
{
"type": "string",
"pattern": "^abc$"
}
The pattern may be either
- a simple string with a regex pattern, e.g.
^abc$
(example matching the exact wordabc
), or - a string version of a regex literal with a leading and trailing slash and optional regex flags after the last slash, e.g.
/^abc$/i
(example matchingabc
case insensetive)
enums
If you don't care of values you can describe enums as an array:
"street_type": "type": "string" "enum": "Street" "Avenue" "Boulevard"
or if you want to specify values, describe it as an object where the keys are the values:
"street_type": "type": "string" "enum": st: "Street" ave: "Avenue" blvd: "Boulevard"