json-schema-toolbox
v1.0.4
Published
json schema toolbox
Downloads
8
Maintainers
Readme
json-schema-toolbox
json schema utils
##Usage
import jsonToolbox from 'json-schema-toolbox';
//...
const schema = jsonToolbox.objectSchema({id: jsonToolbox.stringSchema, title: jsonToolbox.stringSchema})
##Definitions
export interface IJsonSchema {
type: string;
id?: string;
properties?: {[k:string]: IJsonSchema};
items?: IJsonSchema;
default?: string[];
required?: string[] | boolean;
}
export function schemaDefault (schema: IJsonSchema, defaultValue: any): IJsonSchema;
export function schemaRequired (schema: IJsonSchema, required: any): IJsonSchema;
export function enumSchema (enumValues: string[], defaultValue?: string): IJsonSchema;
export const stringSchema: IJsonSchema;
export const dateSchema: IJsonSchema;
export const emptyStringSchema: IJsonSchema;
export const numberSchema: IJsonSchema;
export const booleanSchema: IJsonSchema;
export const trueSchema: IJsonSchema;
export const falseSchema: IJsonSchema;
export function objectSchema(properties?: IJsonSchema[]): IJsonSchema;
export function arraySchema(itemSchema: IJsonSchema, defaultValue?): IJsonSchema;
export function requiredSchema(schema: IJsonSchema): IJsonSchema;
export function omitId(schema: IJsonSchema): IJsonSchema;
export function withId(schema: IJsonSchema, id: string): IJsonSchema;
export function fillDefaults<T = any>(schema: IJsonSchema): (obj: any) => T;
export function fillDefaults<T = any>(schema: IJsonSchema, obj: any): T;
export function fillDefaultsArray<T = any>(schema: IJsonSchema): (obj: any) => T[];
export function fillDefaultsArray<T = any>(schema: IJsonSchema, obj: any): T[];
export function normalizeToSave<T = any>(schema: IJsonSchema): (obj: any) => T;
export function normalizeToSave<T = any>(schema: IJsonSchema, obj: any): T;