Package Exports
- @stoplight/json-schema-sampler
- @stoplight/json-schema-sampler/dist/json-schema-sampler.js
- @stoplight/json-schema-sampler/src/json-schema-sampler.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@stoplight/json-schema-sampler) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@stoplight/json-schema-sampler
It's a fork of openapi-sampler by Redocly, with focus on supporting JSON Schema Draft 7.
Tool for generation samples based on JSON Schema Draft 7.
Features
- Deterministic (given a particular input, will always produce the same output)
- Supports compound keywords:
allOf
,oneOf
,anyOf
,if/then/else
- Supports
additionalProperties
- Uses
default
,const
,enum
andexamples
where possible - Good array support: supports
contains
,minItems
,maxItems
, and tuples (items
as an array) - Supports
minLength
,maxLength
,min
,max
,exclusiveMinimum
,exclusiveMaximum
- Supports the following
string
formats:- idn-email
- password
- date-time
- date
- time
- ipv4
- ipv6
- hostname
- idn-hostname
- uri
- uri-reference
- uri-template
- iri
- iri-reference
- uuid
- json-pointer
- relative-json-pointer
- regex
- Infers schema type automatically following same rules as json-schema-faker
- Support for
$ref
resolving
Installation
Install using npm
npm install @stoplight/json-schema-sampler --save
or using yarn
yarn add @stoplight/json-schema-sampler
Then require it in your code:
const JSONSchemaSampler = require('@stoplight/json-schema-sampler');
Usage
JSONSchemaSampler.sample(schema, [options], [spec])
- schema (required) -
object
A JSON Schema Draft 7 document. - options (optional) -
object
Available options:- skipNonRequired -
boolean
Don't include non-required object properties not specified inrequired
property of the schema object - skipReadOnly -
boolean
Don't includereadOnly
object properties - skipWriteOnly -
boolean
Don't includewriteOnly
object properties - quiet -
boolean
Don't log console warning messages - maxSampleDepth -
number
Max depth sampler should traverse
- skipNonRequired -
- doc - the whole schema where the schema is taken from. Might be useful when the
schema
passed is only a portion of the whole schema and $refs aren't resected. doc must not contain any external references
Example
const JSONSchemaSampler = require('@stoplight/json-schema-sampler');
JSONSchemaSampler.sample({
type: 'object',
properties: {
a: {type: 'integer', minimum: 10},
b: {type: 'string', format: 'password', minLength: 10},
c: {type: 'boolean', readOnly: true}
}
}, {skipReadOnly: true});
// { a: 10, b: 'pa$$word_q' }