jsonSchema.ts 1.4 KB
Newer Older
E
Erich Gamma 已提交
1 2 3 4 5 6 7
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
'use strict';

export interface IJSONSchema {
8
	id?: string;
E
Erich Gamma 已提交
9
	$schema?: string;
10 11 12 13 14
	type?: string | string[];
	title?: string;
	default?: any;
	definitions?: IJSONSchemaMap;
	description?: string;
E
Erich Gamma 已提交
15
	properties?: IJSONSchemaMap;
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
	patternProperties?: IJSONSchemaMap;
	additionalProperties?: boolean | IJSONSchema;
	minProperties?: number;
	maxProperties?: number;
	dependencies?: IJSONSchemaMap | string[];
	items?: IJSONSchema | IJSONSchema[];
	minItems?: number;
	maxItems?: number;
	uniqueItems?: boolean;
	additionalItems?: boolean;
	pattern?: string;
	minLength?: number;
	maxLength?: number;
	minimum?: number;
	maximum?: number;
	exclusiveMinimum?: boolean;
	exclusiveMaximum?: boolean;
	multipleOf?: number;
	required?: string[];
	$ref?: string;
	anyOf?: IJSONSchema[];
	allOf?: IJSONSchema[];
	oneOf?: IJSONSchema[];
	not?: IJSONSchema;
	enum?: any[];
E
Erich Gamma 已提交
41
	format?: string;
42 43 44

	defaultSnippets?: { label?: string; description?: string; body: any; }[]; // VSCode extension
	errorMessage?: string; // VSCode extension
E
Erich Gamma 已提交
45 46 47 48 49
}

export interface IJSONSchemaMap {
	[name: string]:IJSONSchema;
}