nuxt-openapi-docs-module
Version:
A module for Nuxt.js to generate pages from OpenAPI specifications
45 lines (44 loc) • 1.45 kB
JavaScript
export function sampleNumber(schema) {
let res = 0;
if (schema.type === "number" && (schema.format === "float" || schema.format === "double")) {
res = 0.1;
}
if (typeof schema.exclusiveMinimum === "boolean" || typeof schema.exclusiveMaximum === "boolean") {
if (schema.maximum && schema.minimum) {
res = schema.exclusiveMinimum ? Math.floor(schema.minimum) + 1 : schema.minimum;
if (schema.exclusiveMaximum && res >= schema.maximum || !schema.exclusiveMaximum && res > schema.maximum) {
res = (schema.maximum + schema.minimum) / 2;
}
return res;
}
if (schema.minimum) {
if (schema.exclusiveMinimum) {
return Math.floor(schema.minimum) + 1;
} else {
return schema.minimum;
}
}
if (schema.maximum) {
if (schema.exclusiveMaximum) {
return schema.maximum > 0 ? 0 : Math.floor(schema.maximum) - 1;
} else {
return schema.maximum > 0 ? 0 : schema.maximum;
}
}
} else {
if (schema.minimum) {
return schema.minimum;
}
if (schema.exclusiveMinimum) {
res = Math.floor(schema.exclusiveMinimum) + 1;
if (res === schema.exclusiveMaximum) {
res = (res + Math.floor(schema.exclusiveMaximum) - 1) / 2;
}
} else if (schema.exclusiveMaximum) {
res = Math.floor(schema.exclusiveMaximum) - 1;
} else if (schema.maximum) {
res = schema.maximum;
}
}
return res;
}