Skip to content

Commit a503d92

Browse files
authored
Fix cfn environment naming (#200)
1 parent b3d588c commit a503d92

File tree

12 files changed

+89
-81
lines changed

12 files changed

+89
-81
lines changed

src/environments/EnvironmentParser.ts renamed to src/cfnEnvironments/CfnEnvironmentParser.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { OnStackFailure } from '@aws-sdk/client-cloudformation';
22
import { z } from 'zod';
33
import { DocumentType } from '../document/Document';
4-
import { ParseEnvironmentFilesParams, DeploymentConfig } from './EnvironmentRequestType';
4+
import { ParseCfnEnvironmentFilesParams, DeploymentConfig } from './CfnEnvironmentRequestType';
55

66
const DocumentInfoSchema = z.object({
77
type: z.enum(DocumentType),
88
content: z.string(),
99
fileName: z.string(),
1010
});
1111

12-
const ParseEnvironmentFilesParamsSchema = z.object({
12+
const ParseCfnEnvironmentFilesParamsSchema = z.object({
1313
documents: z.array(DocumentInfoSchema),
1414
});
1515

@@ -26,8 +26,8 @@ const DeploymentConfigSchema = z
2626
message: 'At least one property must be provided',
2727
});
2828

29-
export function parseEnvironmentFileParams(input: unknown): ParseEnvironmentFilesParams {
30-
return ParseEnvironmentFilesParamsSchema.parse(input);
29+
export function parseCfnEnvironmentFileParams(input: unknown): ParseCfnEnvironmentFilesParams {
30+
return ParseCfnEnvironmentFilesParamsSchema.parse(input);
3131
}
3232

3333
export function parseDeploymentConfig(input: unknown): DeploymentConfig {

src/environments/EnvironmentRequestType.ts renamed to src/cfnEnvironments/CfnEnvironmentRequestType.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@ export type DeploymentConfig = {
1717
onStackFailure?: OnStackFailure;
1818
};
1919

20-
export type ParsedEnvironmentFile = {
20+
export type ParsedCfnEnvironmentFile = {
2121
deploymentConfig: DeploymentConfig;
2222
fileName: string;
2323
};
2424

25-
export type ParseEnvironmentFilesParams = {
25+
export type ParseCfnEnvironmentFilesParams = {
2626
documents: DocumentInfo[];
2727
};
2828

29-
export type ParseEnvironmentFilesResult = {
30-
parsedFiles: ParsedEnvironmentFile[];
29+
export type ParseCfnEnvironmentFilesResult = {
30+
parsedFiles: ParsedCfnEnvironmentFile[];
3131
};
3232

3333
export const ParseEnvironmentFilesRequest = new RequestType<
34-
ParseEnvironmentFilesParams,
35-
ParseEnvironmentFilesResult,
34+
ParseCfnEnvironmentFilesParams,
35+
ParseCfnEnvironmentFilesResult,
3636
void
3737
>('aws/cfn/environment/files/parse');
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
import { load } from 'js-yaml';
22
import { RequestHandler } from 'vscode-languageserver';
3-
import { DocumentType } from '../document/Document';
4-
import { parseDeploymentConfig, parseEnvironmentFileParams } from '../environments/EnvironmentParser';
3+
import { parseDeploymentConfig, parseCfnEnvironmentFileParams } from '../cfnEnvironments/CfnEnvironmentParser';
54
import {
6-
ParsedEnvironmentFile,
7-
ParseEnvironmentFilesParams,
8-
ParseEnvironmentFilesResult,
9-
} from '../environments/EnvironmentRequestType';
5+
ParsedCfnEnvironmentFile,
6+
ParseCfnEnvironmentFilesParams,
7+
ParseCfnEnvironmentFilesResult,
8+
} from '../cfnEnvironments/CfnEnvironmentRequestType';
9+
import { DocumentType } from '../document/Document';
1010
import { TelemetryService } from '../telemetry/TelemetryService';
1111
import { handleLspError } from '../utils/Errors';
1212
import { parseWithPrettyError } from '../utils/ZodErrorWrapper';
1313

14-
export function parseEnvironmentFilesHandler(): RequestHandler<
15-
ParseEnvironmentFilesParams,
16-
ParseEnvironmentFilesResult,
14+
export function parseCfnEnvironmentFilesHandler(): RequestHandler<
15+
ParseCfnEnvironmentFilesParams,
16+
ParseCfnEnvironmentFilesResult,
1717
void
1818
> {
19-
const telemetry = TelemetryService.instance.get('EnvironmentHandler');
19+
const telemetry = TelemetryService.instance.get('CfnEnvironmentHandler');
2020

21-
return (rawParams): ParseEnvironmentFilesResult => {
22-
return telemetry.measure('parseEnvironmentFiles', () => {
21+
return (rawParams): ParseCfnEnvironmentFilesResult => {
22+
return telemetry.measure('parseCfnEnvironmentFiles', () => {
2323
try {
24-
const parsedFiles: ParsedEnvironmentFile[] = [];
24+
const parsedFiles: ParsedCfnEnvironmentFile[] = [];
2525

26-
const params = parseWithPrettyError(parseEnvironmentFileParams, rawParams);
26+
const params = parseWithPrettyError(parseCfnEnvironmentFileParams, rawParams);
2727

2828
for (const document of params.documents) {
2929
try {
@@ -43,7 +43,7 @@ export function parseEnvironmentFilesHandler(): RequestHandler<
4343
deploymentConfig: deploymentConfig,
4444
});
4545
} catch {
46-
telemetry.count('environmentFile.malformed', 1);
46+
telemetry.count('cfnEnvironmentFile.malformed', 1);
4747
}
4848
}
4949

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { Connection, RequestHandler } from 'vscode-languageserver';
2+
import {
3+
ParseCfnEnvironmentFilesParams,
4+
ParseCfnEnvironmentFilesResult,
5+
ParseEnvironmentFilesRequest,
6+
} from '../cfnEnvironments/CfnEnvironmentRequestType';
7+
8+
export class LspCfnEnvironmentHandlers {
9+
constructor(private readonly connection: Connection) {}
10+
11+
onParseCfnEnvironmentFiles(
12+
handler: RequestHandler<ParseCfnEnvironmentFilesParams, ParseCfnEnvironmentFilesResult, void>,
13+
) {
14+
this.connection.onRequest(ParseEnvironmentFilesRequest.method, handler);
15+
}
16+
}

src/protocol/LspComponents.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { LspAuthHandlers } from './LspAuthHandlers';
2+
import { LspCfnEnvironmentHandlers } from './LspCfnEnvironmentHandlers';
23
import { LspCommunication } from './LspCommunication';
34
import { LspDiagnostics } from './LspDiagnostics';
45
import { LspDocuments } from './LspDocuments';
5-
import { LspEnvironmentHandlers } from './LspEnvironmentHandlers';
66
import { LspHandlers } from './LspHandlers';
77
import { LspRelatedResourcesHandlers } from './LspRelatedResourcesHandlers';
88
import { LspResourceHandlers } from './LspResourceHandlers';
@@ -19,7 +19,7 @@ export class LspComponents {
1919
public readonly handlers: LspHandlers,
2020
public readonly authHandlers: LspAuthHandlers,
2121
public readonly stackHandlers: LspStackHandlers,
22-
public readonly environmentHandlers: LspEnvironmentHandlers,
22+
public readonly cfnEnvironmentHandlers: LspCfnEnvironmentHandlers,
2323
public readonly resourceHandlers: LspResourceHandlers,
2424
public readonly relatedResourcesHandlers: LspRelatedResourcesHandlers,
2525
public readonly s3Handlers: LspS3Handlers,

src/protocol/LspConnection.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import { InitializedParams } from 'vscode-languageserver-protocol';
99
import { ExtensionName } from '../utils/ExtensionConfig';
1010
import { LspAuthHandlers } from './LspAuthHandlers';
1111
import { LspCapabilities } from './LspCapabilities';
12+
import { LspCfnEnvironmentHandlers } from './LspCfnEnvironmentHandlers';
1213
import { LspCommunication } from './LspCommunication';
1314
import { LspComponents } from './LspComponents';
1415
import { LspDiagnostics } from './LspDiagnostics';
1516
import { LspDocuments } from './LspDocuments';
16-
import { LspEnvironmentHandlers } from './LspEnvironmentHandlers';
1717
import { LspHandlers } from './LspHandlers';
1818
import { LspRelatedResourcesHandlers } from './LspRelatedResourcesHandlers';
1919
import { LspResourceHandlers } from './LspResourceHandlers';
@@ -36,7 +36,7 @@ export class LspConnection {
3636
private readonly handlers: LspHandlers;
3737
private readonly authHandlers: LspAuthHandlers;
3838
private readonly stackHandlers: LspStackHandlers;
39-
private readonly environmentHandlers: LspEnvironmentHandlers;
39+
private readonly cfnEnvironmentHandlers: LspCfnEnvironmentHandlers;
4040
private readonly resourceHandlers: LspResourceHandlers;
4141
private readonly relatedResourcesHandlers: LspRelatedResourcesHandlers;
4242
private readonly s3Handlers: LspS3Handlers;
@@ -61,7 +61,7 @@ export class LspConnection {
6161
this.handlers = new LspHandlers(this.connection);
6262
this.authHandlers = new LspAuthHandlers(this.connection);
6363
this.stackHandlers = new LspStackHandlers(this.connection);
64-
this.environmentHandlers = new LspEnvironmentHandlers(this.connection);
64+
this.cfnEnvironmentHandlers = new LspCfnEnvironmentHandlers(this.connection);
6565
this.resourceHandlers = new LspResourceHandlers(this.connection);
6666
this.relatedResourcesHandlers = new LspRelatedResourcesHandlers(this.connection);
6767
this.s3Handlers = new LspS3Handlers(this.connection);
@@ -96,7 +96,7 @@ export class LspConnection {
9696
this.handlers,
9797
this.authHandlers,
9898
this.stackHandlers,
99-
this.environmentHandlers,
99+
this.cfnEnvironmentHandlers,
100100
this.resourceHandlers,
101101
this.relatedResourcesHandlers,
102102
this.s3Handlers,

src/protocol/LspEnvironmentHandlers.ts

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/server/CfnServer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { InitializedParams } from 'vscode-languageserver-protocol';
22
import { iamCredentialsDeleteHandler, iamCredentialsUpdateHandler } from '../handlers/AuthHandler';
3+
import { parseCfnEnvironmentFilesHandler } from '../handlers/CfnEnvironmentHandler';
34
import { codeActionHandler } from '../handlers/CodeActionHandler';
45
import { codeLensHandler } from '../handlers/CodeLensHandler';
56
import { completionHandler } from '../handlers/CompletionHandler';
67
import { configurationHandler } from '../handlers/ConfigurationHandler';
78
import { definitionHandler } from '../handlers/DefinitionHandler';
89
import { didChangeHandler, didCloseHandler, didOpenHandler, didSaveHandler } from '../handlers/DocumentHandler';
910
import { documentSymbolHandler } from '../handlers/DocumentSymbolHandler';
10-
import { parseEnvironmentFilesHandler } from '../handlers/EnvironmentHandler';
1111
import { executionHandler } from '../handlers/ExecutionHandler';
1212
import { hoverHandler } from '../handlers/HoverHandler';
1313
import { initializedHandler } from '../handlers/Initialize';
@@ -127,7 +127,7 @@ export class CfnServer {
127127
this.lsp.stackHandlers.onClearStackEvents(clearStackEventsHandler(this.components));
128128
this.lsp.stackHandlers.onDescribeStack(describeStackHandler(this.components));
129129

130-
this.lsp.environmentHandlers.onParseEnvironmentFiles(parseEnvironmentFilesHandler());
130+
this.lsp.cfnEnvironmentHandlers.onParseCfnEnvironmentFiles(parseCfnEnvironmentFilesHandler());
131131

132132
this.lsp.relatedResourcesHandlers.onGetAuthoredResourceTypes(getAuthoredResourceTypesHandler(this.components));
133133
this.lsp.relatedResourcesHandlers.onGetRelatedResourceTypes(getRelatedResourceTypesHandler(this.components));

tools/telemetry-generator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ import { LspS3Handlers } from '../src/protocol/LspS3Handlers';
6969
import { ExtendedInitializeParams } from '../src/server/InitParams';
7070
import { FeatureFlagProvider } from '../src/featureFlag/FeatureFlagProvider';
7171
import { RelationshipSchemaService } from '../src/services/RelationshipSchemaService';
72-
import { LspEnvironmentHandlers } from '../src/protocol/LspEnvironmentHandlers';
72+
import { LspCfnEnvironmentHandlers } from '../src/protocol/LspCfnEnvironmentHandlers';
7373

7474
const argv = yargs(hideBin(process.argv))
7575
.option('templates', {
@@ -185,7 +185,7 @@ function main() {
185185
stubInterface<LspHandlers>(),
186186
createMockAuthHandlers(),
187187
stubInterface<LspStackHandlers>(),
188-
stubInterface<LspEnvironmentHandlers>(),
188+
stubInterface<LspCfnEnvironmentHandlers>(),
189189
stubInterface<LspResourceHandlers>(),
190190
stubInterface<LspRelatedResourcesHandlers>(),
191191
stubInterface<LspS3Handlers>(),

tst/unit/environments/EnvironmentParser.test.ts renamed to tst/unit/cfnEnvironments/CfnEnvironmentParser.test.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { OnStackFailure } from '@aws-sdk/client-cloudformation';
22
import { describe, it, expect } from 'vitest';
33
import { ZodError } from 'zod';
4+
import {
5+
parseCfnEnvironmentFileParams,
6+
parseDeploymentConfig,
7+
} from '../../../src/cfnEnvironments/CfnEnvironmentParser';
48
import { DocumentType } from '../../../src/document/Document';
5-
import { parseEnvironmentFileParams, parseDeploymentConfig } from '../../../src/environments/EnvironmentParser';
69

7-
describe('environmentParser', () => {
8-
describe('parseEnvironmentFileParams', () => {
10+
describe('cfnEnvironmentParser', () => {
11+
describe('parseCfnEnvironmentFileParams', () => {
912
it('should parse valid environment file params', () => {
1013
const input = {
1114
documents: [
@@ -17,7 +20,7 @@ describe('environmentParser', () => {
1720
],
1821
};
1922

20-
const result = parseEnvironmentFileParams(input);
23+
const result = parseCfnEnvironmentFileParams(input);
2124

2225
expect(result).toEqual({
2326
documents: [
@@ -33,15 +36,15 @@ describe('environmentParser', () => {
3336
it('should throw ZodError for missing documents', () => {
3437
const input = {};
3538

36-
expect(() => parseEnvironmentFileParams(input)).toThrow(ZodError);
39+
expect(() => parseCfnEnvironmentFileParams(input)).toThrow(ZodError);
3740
});
3841

3942
it('should handle empty documents array', () => {
4043
const input = {
4144
documents: [],
4245
};
4346

44-
const result = parseEnvironmentFileParams(input);
47+
const result = parseCfnEnvironmentFileParams(input);
4548
expect(result.documents).toEqual([]);
4649
});
4750

@@ -56,7 +59,7 @@ describe('environmentParser', () => {
5659
],
5760
};
5861

59-
expect(() => parseEnvironmentFileParams(input)).toThrow(ZodError);
62+
expect(() => parseCfnEnvironmentFileParams(input)).toThrow(ZodError);
6063
});
6164

6265
it('should throw ZodError for missing document properties', () => {
@@ -70,7 +73,7 @@ describe('environmentParser', () => {
7073
],
7174
};
7275

73-
expect(() => parseEnvironmentFileParams(input)).toThrow(ZodError);
76+
expect(() => parseCfnEnvironmentFileParams(input)).toThrow(ZodError);
7477
});
7578
});
7679

0 commit comments

Comments
 (0)