Skip to content

Commit a47cad3

Browse files
committed
feat: add schema for widgets.json
1 parent 43a7451 commit a47cad3

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

cmd/generateschema/main-generateschema.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
const WaveSchemaSettingsFileName = "schema/settings.json"
1818
const WaveSchemaConnectionsFileName = "schema/connections.json"
1919
const WaveSchemaAiPresetsFileName = "schema/aipresets.json"
20+
const WaveSchemaWidgetsFileName = "schema/widgets.json"
2021

2122
func generateSchema(template any, dir string) error {
2223
settingsSchema := jsonschema.Reflect(template)
@@ -52,4 +53,10 @@ func main() {
5253
if err != nil {
5354
log.Fatalf("ai presets schema error: %v", err)
5455
}
56+
57+
widgetsTemplate := make(map[string]wconfig.WidgetConfigType)
58+
err = generateSchema(&widgetsTemplate, WaveSchemaWidgetsFileName)
59+
if err != nil {
60+
log.Fatalf("widgets schema error: %v", err)
61+
}
5562
}

frontend/app/view/codeeditor/schemaendpoints.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const allFilepaths: Map<string, Array<string>> = new Map();
1414
allFilepaths.set(`${getWebServerEndpoint()}/schema/settings.json`, [`${getApi().getConfigDir()}/settings.json`]);
1515
allFilepaths.set(`${getWebServerEndpoint()}/schema/connections.json`, [`${getApi().getConfigDir()}/connections.json`]);
1616
allFilepaths.set(`${getWebServerEndpoint()}/schema/aipresets.json`, [`${getApi().getConfigDir()}/presets/ai.json`]);
17+
allFilepaths.set(`${getWebServerEndpoint()}/schema/widgets.json`, [`${getApi().getConfigDir()}/widgets.json`]);
1718

1819
async function getSchemaEndpointInfo(endpoint: string): Promise<EndpointInfo> {
1920
let schema: Object;

schema/widgets.json

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$defs": {
4+
"BlockDef": {
5+
"properties": {
6+
"files": {
7+
"additionalProperties": {
8+
"$ref": "#/$defs/FileDef"
9+
},
10+
"type": "object"
11+
},
12+
"meta": {
13+
"$ref": "#/$defs/MetaMapType"
14+
}
15+
},
16+
"additionalProperties": false,
17+
"type": "object"
18+
},
19+
"FileDef": {
20+
"properties": {
21+
"content": {
22+
"type": "string"
23+
},
24+
"meta": {
25+
"type": "object"
26+
}
27+
},
28+
"additionalProperties": false,
29+
"type": "object"
30+
},
31+
"MetaMapType": {
32+
"type": "object"
33+
},
34+
"WidgetConfigType": {
35+
"properties": {
36+
"display:order": {
37+
"type": "number"
38+
},
39+
"display:hidden": {
40+
"type": "boolean"
41+
},
42+
"icon": {
43+
"type": "string"
44+
},
45+
"color": {
46+
"type": "string"
47+
},
48+
"label": {
49+
"type": "string"
50+
},
51+
"description": {
52+
"type": "string"
53+
},
54+
"magnified": {
55+
"type": "boolean"
56+
},
57+
"blockdef": {
58+
"$ref": "#/$defs/BlockDef"
59+
}
60+
},
61+
"additionalProperties": false,
62+
"type": "object",
63+
"required": [
64+
"blockdef"
65+
]
66+
}
67+
},
68+
"additionalProperties": {
69+
"$ref": "#/$defs/WidgetConfigType"
70+
},
71+
"type": "object"
72+
}

0 commit comments

Comments
 (0)