dtsgenerator
Version:
TypeScript d.ts file generator for JSON Schema file
61 lines (60 loc) • 2.27 kB
TypeScript
export declare namespace JsonSchemaDraft07 {
interface SchemaObject {
$id?: string;
$schema?: string;
$ref?: string;
$comment?: string;
title?: string;
description?: string;
default?: any;
nullable?: boolean;
readOnly?: boolean;
examples?: any[];
multipleOf?: number;
maximum?: number;
exclusiveMaximum?: number;
minimum?: number;
exclusiveMinimum?: number;
maxLength?: Schema.Definitions.NonNegativeInteger;
minLength?: Schema.Definitions.NonNegativeIntegerDefault0;
pattern?: string;
additionalItems?: Schema;
items?: Schema | Schema.Definitions.SchemaArray;
maxItems?: Schema.Definitions.NonNegativeInteger;
minItems?: Schema.Definitions.NonNegativeIntegerDefault0;
uniqueItems?: boolean;
contains?: Schema;
maxProperties?: Schema.Definitions.NonNegativeInteger;
minProperties?: Schema.Definitions.NonNegativeIntegerDefault0;
required?: Schema.Definitions.StringArray;
additionalProperties?: Schema;
definitions?: Record<string, Schema>;
properties?: Record<string, Schema>;
patternProperties?: Record<string, Schema>;
dependencies?: Record<string, Schema | Schema.Definitions.StringArray>;
propertyNames?: Schema;
const?: any;
enum?: any[];
type?: Schema.Definitions.SimpleTypes | Schema.Definitions.SimpleTypes[];
format?: string;
contentMediaType?: string;
contentEncoding?: string;
if?: Schema;
then?: Schema;
else?: Schema;
allOf?: Schema.Definitions.SchemaArray;
anyOf?: Schema.Definitions.SchemaArray;
oneOf?: Schema.Definitions.SchemaArray;
not?: Schema;
}
type Schema = SchemaObject | boolean;
namespace Schema {
namespace Definitions {
type NonNegativeInteger = number;
type NonNegativeIntegerDefault0 = number;
type SchemaArray = Schema[];
type SimpleTypes = 'array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string' | 'any' | 'undefined';
type StringArray = string[];
}
}
}