this repo has no description
1export type Config = {
2 extensions: ConfigExtensions;
3 repositories: string[];
4 devSearchPaths?: string[];
5 loggerLevel?: string;
6 patchAll?: boolean;
7};
8
9export type ConfigExtensions = { [key: string]: boolean } | { [key: string]: ConfigExtension };
10
11export type ConfigExtension = {
12 enabled: boolean;
13 config?: Record<string, any>;
14};
15
16export 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
28export type SelectOption =
29 | string
30 | {
31 value: string;
32 label: string;
33 };
34
35export type BooleanSettingType = {
36 /**
37 * Displays as a simple switch.
38 */
39 type: ExtensionSettingType.Boolean;
40 default?: boolean;
41};
42
43export type NumberSettingType = {
44 /**
45 * Displays as a simple slider.
46 */
47 type: ExtensionSettingType.Number;
48 default?: number;
49 min?: number;
50 max?: number;
51};
52
53export type StringSettingType = {
54 /**
55 * Displays as a single line string input.
56 */
57 type: ExtensionSettingType.String;
58 default?: string;
59};
60
61export type MultilineTextInputSettingType = {
62 /**
63 * Displays as a multiple line string input.
64 */
65 type: ExtensionSettingType.MultilineString;
66 default?: string;
67};
68
69export type SelectSettingType = {
70 /**
71 * A dropdown to pick between one of many values.
72 */
73 type: ExtensionSettingType.Select;
74 options: SelectOption[];
75 default?: string;
76};
77
78export type MultiSelectSettingType = {
79 /**
80 * A dropdown to pick multiple values.
81 */
82 type: ExtensionSettingType.MultiSelect;
83 options: string[];
84 default?: string[];
85};
86
87export type ListSettingType = {
88 /**
89 * A list of strings that the user can add or remove from.
90 */
91 type: ExtensionSettingType.List;
92 default?: string[];
93};
94
95export type DictionarySettingType = {
96 /**
97 * A dictionary (key-value pair) that the user can add or remove from.
98 */
99 type: ExtensionSettingType.Dictionary;
100 default?: Record<string, string>;
101};
102
103export type CustomSettingType = {
104 /**
105 * A custom component.
106 * You can use the registerConfigComponent function in the Moonbase API to register a React component to render here.
107 */
108 type: ExtensionSettingType.Custom;
109 default?: any;
110};
111
112export enum ExtensionSettingsAdvice {
113 None = "none",
114 Reload = "reload",
115 Restart = "restart"
116}
117
118export type ExtensionSettingsManifest = {
119 /**
120 * A human friendly name for the setting.
121 */
122 displayName?: string;
123
124 /**
125 * A longer description for the setting.
126 * Markdown is not supported.
127 */
128 description?: string;
129
130 /**
131 * The "advice" to give upon changing this setting.
132 * Can be configured to reload the client, restart the client, or do nothing.
133 */
134 advice?: ExtensionSettingsAdvice;
135} & (
136 | BooleanSettingType
137 | NumberSettingType
138 | StringSettingType
139 | MultilineTextInputSettingType
140 | SelectSettingType
141 | MultiSelectSettingType
142 | ListSettingType
143 | DictionarySettingType
144 | CustomSettingType
145);