Skip to content

Commit 4c5213d

Browse files
committed
Add support for optional configSections
Closes #7
1 parent 88e7cac commit 4c5213d

File tree

3 files changed

+60
-32
lines changed

3 files changed

+60
-32
lines changed

src/constants.ts

Lines changed: 52 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,87 +3,110 @@ import { PluginSnippets } from "./types";
33
export const pluginSnippets: PluginSnippets = {
44
CachingGuidancePlugin: {
55
instance: "devproxy-plugin-caching-guidance",
6-
config: "devproxy-plugin-caching-guidance-config"
6+
config: {
7+
name: "devproxy-plugin-caching-guidance-config",
8+
required: true
9+
}
710
},
811
CrudApiPlugin: {
912
instance: "devproxy-plugin-crud-api",
10-
config: "devproxy-plugin-crud-api-config"
13+
config: {
14+
name: "devproxy-plugin-crud-api-config",
15+
required: true
16+
},
1117
},
1218
DevToolsPlugin: {
1319
instance: "devproxy-plugin-dev-tools",
14-
config: "devproxy-plugin-dev-tools-config"
20+
config: {
21+
name: "devproxy-plugin-dev-tools-config",
22+
required: true
23+
},
1524
},
1625
ExecutionSummaryPlugin: {
1726
instance: "devproxy-plugin-execution-summary",
18-
config: "devproxy-plugin-execution-summary-config"
27+
config: {
28+
name: "devproxy-plugin-execution-summary-config",
29+
required: true
30+
}
1931
},
2032
GenericRandomErrorPlugin: {
2133
instance: "devproxy-plugin-generic-random-error",
22-
config: "devproxy-plugin-generic-random-error-config"
34+
config: {
35+
name: "devproxy-plugin-generic-random-error-config",
36+
required: true
37+
}
2338
},
2439
GraphBetaSupportGuidancePlugin: {
25-
instance: "devproxy-plugin-graph-beta-support-guidance",
26-
config: null
40+
instance: "devproxy-plugin-graph-beta-support-guidance"
2741
},
2842
GraphClientRequestIdGuidancePlugin: {
29-
instance: "devproxy-plugin-graph-client-request-id-guidance",
30-
config: null
43+
instance: "devproxy-plugin-graph-client-request-id-guidance"
3144
},
3245
GraphMockResponsePlugin: {
33-
instance: "devproxy-plugin-graph-mock-response",
34-
config: null
46+
instance: "devproxy-plugin-graph-mock-response"
3547
},
3648
GraphRandomErrorPlugin: {
3749
instance: "devproxy-plugin-graph-random-error",
38-
config: "devproxy-plugin-graph-random-error-config"
50+
config: {
51+
name: "devproxy-plugin-graph-random-error-config",
52+
required: true
53+
}
3954
},
4055
GraphSdkGuidancePlugin: {
4156
instance: "devproxy-plugin-graph-sdk-guidance",
42-
config: null
4357
},
4458
GraphSelectGuidancePlugin: {
4559
instance: "devproxy-plugin-graph-select-guidance",
46-
config: null
4760
},
4861
LatencyPlugin: {
4962
instance: "devproxy-plugin-latency",
50-
config: "devproxy-plugin-latency-config"
63+
config: {
64+
name: "devproxy-plugin-latency-config",
65+
required: true
66+
}
5167
},
5268
MinimalPermissionsGuidancePlugin:
5369
{
5470
instance: "devproxy-plugin-minimal-permissions-guidance",
55-
config: "devproxy-plugin-minimal-permissions-guidance-config"
71+
config: {
72+
name: "devproxy-plugin-minimal-permissions-guidance-config",
73+
required: false
74+
}
5675
},
5776
MinimalPermissionsPlugin: {
5877
instance: "devproxy-plugin-minimal-permissions",
59-
config: "devproxy-plugin-minimal-permissions-config"
78+
config: {
79+
name: "devproxy-plugin-minimal-permissions-config",
80+
required: true
81+
}
6082
},
6183
MockGeneratorPlugin: {
62-
instance: "devproxy-plugin-mock-generator",
63-
config: null
84+
instance: "devproxy-plugin-mock-generator"
6485
},
6586
MockResponsePlugin: {
6687
instance: "devproxy-plugin-mock-response",
67-
config: "devproxy-plugin-mock-response-config"
88+
config: {
89+
name: "devproxy-plugin-mock-response-config",
90+
required: true
91+
}
6892
},
6993
ODataPagingGuidancePlugin: {
70-
instance: "devproxy-plugin-odata-paging-guidance",
71-
config: null
94+
instance: "devproxy-plugin-odata-paging-guidance"
7295
},
7396
ODSPSearchGuidancePlugin: {
74-
instance: "devproxy-plugin-odsp-search-guidance",
75-
config: null
97+
instance: "devproxy-plugin-odsp-search-guidance"
7698
},
7799
OpenAPIDocGeneratorPlugin: {
78-
instance: "devproxy-plugin-openapi-doc-generator",
79-
config: null
100+
instance: "devproxy-plugin-openapi-doc-generator"
80101
},
81102
RateLimitingPlugin: {
82103
instance: "devproxy-plugin-rate-limiting",
83-
config: "devproxy-plugin-rate-limiting-config"
104+
config: {
105+
name: "devproxy-plugin-rate-limiting-config",
106+
required: true
107+
}
84108
},
85109
RetryAfterPlugin: {
86-
instance: "devproxy-plugin-retry-after",
87-
config: null
110+
instance: "devproxy-plugin-retry-after"
88111
}
89112
};

src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ const updateDiagnostics = (
107107
const pluginName = (pluginNameNode?.value as parse.LiteralNode)
108108
.value as string;
109109
const pluginSnippet = pluginSnippets[pluginName];
110-
const requiresConfig = pluginSnippet.config !== null;
110+
const requiresConfig = pluginSnippet.config ? pluginSnippet.config.required : false;
111111

112112
if (requiresConfig) {
113113
// check to see if the plugin has a config section
@@ -140,7 +140,7 @@ const updateDiagnostics = (
140140
diagnostics.push(
141141
new vscode.Diagnostic(
142142
getRangeFromASTNode(configSectionNode.value),
143-
`${configSectionName} config section is missing. Use '${pluginSnippet.config}' snippet to create one.`,
143+
`${configSectionName} config section is missing. Use '${pluginSnippet.config?.name}' snippet to create one.`,
144144
vscode.DiagnosticSeverity.Error
145145
)
146146
);

src/types.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
export type PluginSnippets = {
22
[key: string]: {
33
instance: string;
4-
config: string | null;
4+
config?: PluginConfig;
55
};
6+
};
7+
8+
export type PluginConfig = {
9+
name: string;
10+
required: boolean;
611
};

0 commit comments

Comments
 (0)