UNPKG

@fastify/merge-json-schemas

Version:

Builds a logical conjunction (AND) of multiple JSON schemas

53 lines (45 loc) 1.3 kB
import { mergeSchemas, MergeOptions } from '..' import { expectType } from 'tsd' { const schema1 = { type: 'string', enum: ['foo', 'bar'] } const schema2 = { type: 'string', enum: ['foo', 'baz'] } mergeSchemas([schema1, schema2]) } { const schema1 = { type: 'string', enum: ['foo', 'bar'] } const schema2 = { type: 'string', enum: ['foo', 'baz'] } const mergeOptions: MergeOptions = { resolvers: { enum: ( keyword: string, keywordValues: any[], mergedSchema: any, parentSchemas: any[], options: MergeOptions ) => { expectType<string>(keyword) expectType<any[]>(keywordValues) expectType<any>(mergedSchema) expectType<any[]>(parentSchemas) expectType<MergeOptions>(options) return keywordValues } }, defaultResolver: ( keyword: string, keywordValues: any[], mergedSchema: any, parentSchemas: any[], options: MergeOptions ) => { expectType<string>(keyword) expectType<any[]>(keywordValues) expectType<any>(mergedSchema) expectType<any[]>(parentSchemas) expectType<MergeOptions>(options) return keywordValues }, onConflict: 'throw' } mergeSchemas([schema1, schema2], mergeOptions) }