@yellow-ticket/seed-json-schema
Version:
Seed a JSON Schema with random values.
23 lines (22 loc) • 637 B
JavaScript
import { faker } from '@faker-js/faker';
/**
* @see https://json-schema.org/understanding-json-schema/reference/numeric#integer
*/
export function seedInteger(schema) {
if (schema.const) {
return schema.const;
}
if (schema.examples) {
return schema.examples;
}
const minimum = schema.exclusiveMinimum != null
? schema.exclusiveMinimum + 1
: (schema.minimum ?? 0);
const maximum = schema.exclusiveMaximum != null
? schema.exclusiveMaximum - 1
: (schema.maximum ?? minimum + 100);
return faker.number.int({
min: minimum,
max: maximum,
});
}