forked from microsoft/rushstack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISDPYamlFile.ts
More file actions
106 lines (88 loc) · 2.18 KB
/
ISDPYamlFile.ts
File metadata and controls
106 lines (88 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
interface IBaseYamlModel {
uid: string;
name: string;
package?: string;
summary?: string;
}
export type CommonYamlModel = IBaseYamlModel & {
syntax?: ISyntax;
fullName?: string;
isPreview?: boolean;
isDeprecated?: boolean;
remarks?: string;
example?: string[];
customDeprecatedMessage?: string;
defaultValue?: string;
};
export type PackageYamlModel = CommonYamlModel & {
classes?: Array<string>;
interfaces?: Array<string>;
enums?: Array<string>;
typeAliases?: Array<string>;
properties?: Array<FunctionYamlModel>;
type?: 'package' | 'module';
functions?: Array<FunctionYamlModel>;
};
export type FunctionYamlModel = CommonYamlModel;
export type TypeAliasYamlModel = CommonYamlModel & {
syntax: string;
};
export type TypeYamlModel = CommonYamlModel & {
constructors?: Array<FunctionYamlModel>;
properties?: Array<FunctionYamlModel>;
methods?: Array<FunctionYamlModel>;
events?: Array<FunctionYamlModel>;
type: 'class' | 'interface';
extends?: IType | string;
};
export type EnumYamlModel = CommonYamlModel & {
fields: Array<FieldYamlModel>;
};
export type FieldYamlModel = IBaseYamlModel & {
numericValue?: number;
value?: string;
};
export interface ISyntax {
parameters?: Array<IYamlParameter>;
content?: string;
return?: IReturn;
}
export interface IYamlParameter {
id: string;
type: IType | string;
description?: string;
}
interface IReturn {
type: IType | string;
description?: string;
}
export interface IType {
typeName?: string;
typeId?: number;
reflectedType?: IReflectedType;
genericType?: IGenericType;
intersectionType?: IIntersectionType;
unionType?: IUnionType;
arrayType?: IType | string;
}
export interface IUnionType {
types: Types;
}
export interface IIntersectionType {
types: Types;
}
export interface IGenericType {
outter: IType | string;
inner: Types;
}
export interface IReflectedType {
key: IType | string;
value: IType | string;
}
export interface IException {
type: string;
description: string;
}
type Types = IType[] | string[];