UNPKG

joi-to-json

Version:

joi to JSON / OpenAPI Schema Converter

37 lines (30 loc) 1.19 kB
import Joi from 'joi-17'; /** * @type {string} */ export type Mode = 'json' | 'open-api' | 'open-api-3.1' | 'json-draft-2019-09' | 'json-draft-04'; /** * The parser function modifies the schema in-place. * @param {any} schema - JSON schema object * @param {any} dependency - JOI dependency object */ export type LogicalOpParserFn = (schema, dependency) => void; export interface LogicalOpParserOpts { and?: LogicalOpParserFn, nand?: LogicalOpParserFn, or?: LogicalOpParserFn, xor?: LogicalOpParserFn, oxor?: LogicalOpParserFn, with?: LogicalOpParserFn, without?: LogicalOpParserFn }; export type ParserOptions = false | { logicalOpParser?: LogicalOpParserOpts }; /** * @param {Joi.Schema} joi - A Joi schema. * @param {string} [mode='json'] - json / open-api / json-draft-2019-09 / json-draft-04 * @param {Record} [sharedSchema={}] - Passed-in object storing shared schemas * @param {ParserOptions} [parserOptions={}] - Passed-in options for parser * @returns {any} Converted JSON schema object. */ export function parse(joi: typeof Joi.Schema, mode?: Mode, sharedSchema?: Record<string, any>, parserOptions?: ParserOptions): any; export default parse;