Skip to content

Commit 41dc15b

Browse files
committed
feat: Separated core parameters and other parameters in ipc messages to make processing easier
1 parent 987e69e commit 41dc15b

5 files changed

Lines changed: 62 additions & 16 deletions

File tree

src/messages/import-request-data-schema.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,16 @@
55
"type": "object",
66
"properties": {
77
"config": {
8-
"$ref": "resource-schema.json"
8+
"type": "object",
9+
"properties": {
10+
"core": {
11+
"$ref": "resource-schema.json"
12+
},
13+
"parameters": {
14+
"type": "object"
15+
}
16+
},
17+
"required": ["core", "parameters"]
918
}
1019
},
1120
"required": ["config"]

src/messages/import-response-data-schema.json

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,28 @@
55
"type": "object",
66
"properties": {
77
"request": {
8-
"$ref": "resource-schema.json"
8+
"type": "object",
9+
"properties": {
10+
"core": {
11+
"$ref": "resource-schema.json"
12+
},
13+
"parameters": {
14+
"type": "object"
15+
}
16+
}
917
},
1018
"result": {
1119
"type": "array",
1220
"items": {
13-
"$ref": "resource-schema.json"
21+
"type": "object",
22+
"properties": {
23+
"core": {
24+
"$ref": "resource-schema.json"
25+
},
26+
"parameters": {
27+
"type": "object"
28+
}
29+
}
1430
}
1531
}
1632
},

src/messages/plan-request-data-schema.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
"title": "Plan Request Schema Data",
55
"type": "object",
66
"properties": {
7-
"desired": {
7+
"core": {
88
"$ref": "resource-schema.json"
99
},
10+
"desired": {
11+
"type": "object",
12+
"description": "The desired parameters specified by the user. A null desired means this config was not specified (for deletes). Pass an empty object {} for no parameters."
13+
},
1014
"state": {
11-
"$ref": "resource-schema.json"
15+
"type": "object",
16+
"description": "The desired parameters specified by the user. A null state means this config was not specified (non-stateful). Pass an empty object {} for no parameters."
1217
},
1318
"isStateful": {
1419
"type": "boolean",

src/messages/validate-request-data-schema.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,15 @@
77
"configs": {
88
"type": "array",
99
"items": {
10-
"$ref": "resource-schema.json"
10+
"type": "object",
11+
"properties": {
12+
"core": {
13+
"$ref": "resource-schema.json"
14+
},
15+
"parameters": {
16+
"type": "object"
17+
}
18+
}
1119
}
1220
}
1321
},

src/types/index.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,17 @@ export interface IpcMessageV2 {
3838
data: unknown | null;
3939
}
4040

41+
/**
42+
* Processed resource that is in a format suitable for sending. The core parameters (such as type and name) and other parameters
43+
* are separate for easier processing.
44+
*/
45+
export interface ResourceJson {
46+
core: ResourceConfig;
47+
parameters: Record<string, unknown>;
48+
}
49+
4150
export interface ValidateRequestData {
42-
configs: ResourceConfig[];
51+
configs: Array<ResourceJson>;
4352
}
4453

4554
export interface ValidateResponseData {
@@ -53,8 +62,9 @@ export interface ValidateResponseData {
5362
}
5463

5564
export interface PlanRequestData {
56-
desired: ResourceConfig | undefined
57-
state: ResourceConfig | undefined
65+
core: ResourceConfig;
66+
desired?: Record<string, unknown>;
67+
state?: Record<string, unknown>;
5868
isStateful: boolean
5969
}
6070

@@ -102,12 +112,13 @@ export interface GetResourceInfoResponseData {
102112
}
103113

104114
export interface ImportRequestData {
105-
config: ResourceConfig;
115+
core: ResourceConfig;
116+
parameters: Record<string, unknown>;
106117
}
107118

108119
export interface ImportResponseData {
109-
request: ResourceConfig;
110-
result: ResourceConfig[];
120+
request: ResourceJson
121+
result: Array<ResourceJson>,
111122
}
112123

113124
export interface ApplyRequestData {
@@ -134,10 +145,7 @@ export interface ResourceDefinition {
134145
export interface InitializeRequestData {}
135146

136147
export interface InitializeResponseData {
137-
resourceDefinitions: Array<{
138-
type: string;
139-
dependencies: string[];
140-
}>;
148+
resourceDefinitions: Array<ResourceDefinition>;
141149
}
142150

143151
export interface SudoRequestData {

0 commit comments

Comments
 (0)