104 lines
2.1 kB
1
export type Config = {
2
extensions: ConfigExtensions;
3
repositories: string[];
4
devSearchPaths?: string[];
5
loggerLevel?: string;
6
patchAll?: boolean;
7
};
8
9
export type ConfigExtensions = { [key: string]: boolean } | { [key: string]: ConfigExtension };
10
11
export type ConfigExtension = {
12
enabled: boolean;
13
config?: Record<string, any>;
14
};
15
16
export enum ExtensionSettingType {
17
Boolean = "boolean",
18
Number = "number",
19
String = "string",
20
MultilineString = "multilinestring",
21
Select = "select",
22
MultiSelect = "multiselect",
23
List = "list",
24
Dictionary = "dictionary",
25
Custom = "custom"
26
}
27
28
export type SelectOption =
29
| string
30
| {
31
value: string;
32
label: string;
33
};
34
35
export type BooleanSettingType = {
36
type: ExtensionSettingType.Boolean;
37
default?: boolean;
38
};
39
40
export type NumberSettingType = {
41
type: ExtensionSettingType.Number;
42
default?: number;
43
min?: number;
44
max?: number;
45
};
46
47
export type StringSettingType = {
48
type: ExtensionSettingType.String;
49
default?: string;
50
};
51
52
export type MultilineTextInputSettingType = {
53
type: ExtensionSettingType.MultilineString;
54
default?: string;
55
};
56
57
export type SelectSettingType = {
58
type: ExtensionSettingType.Select;
59
options: SelectOption[];
60
default?: string;
61
};
62
63
export type MultiSelectSettingType = {
64
type: ExtensionSettingType.MultiSelect;
65
options: string[];
66
default?: string[];
67
};
68
69
export type ListSettingType = {
70
type: ExtensionSettingType.List;
71
default?: string[];
72
};
73
74
export type DictionarySettingType = {
75
type: ExtensionSettingType.Dictionary;
76
default?: Record<string, string>;
77
};
78
79
export type CustomSettingType = {
80
type: ExtensionSettingType.Custom;
81
default?: any;
82
};
83
84
export enum ExtensionSettingsAdvice {
85
None = "none",
86
Reload = "reload",
87
Restart = "restart"
88
}
89
90
export type ExtensionSettingsManifest = {
91
displayName?: string;
92
description?: string;
93
advice?: ExtensionSettingsAdvice;
94
} & (
95
| BooleanSettingType
96
| NumberSettingType
97
| StringSettingType
98
| MultilineTextInputSettingType
99
| SelectSettingType
100
| MultiSelectSettingType
101
| ListSettingType
102
| DictionarySettingType
103
| CustomSettingType
104
);
105