Skip to content

Commit 977af16

Browse files
committed
Inheritance
1 parent 9a1d964 commit 977af16

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

packages/core/src/amazonqFeatureDev/errors.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,60 +3,60 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import { SafeMessageError, ToolkitError } from '../shared/errors'
6+
import { SafeMessageToolkitError, ToolkitError } from '../shared/errors'
77
import { featureName } from './constants'
88
import { uploadCodeError } from './userFacingText'
99
import { i18n } from '../shared/i18n-helper'
1010

11-
export class ConversationIdNotFoundError extends ToolkitError implements SafeMessageError {
11+
export class ConversationIdNotFoundError extends SafeMessageToolkitError {
1212
constructor() {
1313
super(i18n('AWS.amazonq.featureDev.error.conversationIdNotFoundError'), {
1414
code: 'ConversationIdNotFound',
1515
})
1616
}
1717
}
1818

19-
export class TabIdNotFoundError extends ToolkitError implements SafeMessageError {
19+
export class TabIdNotFoundError extends SafeMessageToolkitError {
2020
constructor() {
2121
super(i18n('AWS.amazonq.featureDev.error.tabIdNotFoundError'), {
2222
code: 'TabIdNotFound',
2323
})
2424
}
2525
}
2626

27-
export class WorkspaceFolderNotFoundError extends ToolkitError implements SafeMessageError {
27+
export class WorkspaceFolderNotFoundError extends SafeMessageToolkitError {
2828
constructor() {
2929
super(i18n('AWS.amazonq.featureDev.error.workspaceFolderNotFoundError'), {
3030
code: 'WorkspaceFolderNotFound',
3131
})
3232
}
3333
}
3434

35-
export class UserMessageNotFoundError extends ToolkitError implements SafeMessageError {
35+
export class UserMessageNotFoundError extends SafeMessageToolkitError {
3636
constructor() {
3737
super(i18n('AWS.amazonq.featureDev.error.userMessageNotFoundError'), {
3838
code: 'MessageNotFound',
3939
})
4040
}
4141
}
4242

43-
export class SelectedFolderNotInWorkspaceFolderError extends ToolkitError implements SafeMessageError {
43+
export class SelectedFolderNotInWorkspaceFolderError extends SafeMessageToolkitError {
4444
constructor() {
4545
super(i18n('AWS.amazonq.featureDev.error.selectedFolderNotInWorkspaceFolderError'), {
4646
code: 'SelectedFolderNotInWorkspaceFolder',
4747
})
4848
}
4949
}
5050

51-
export class PromptRefusalException extends ToolkitError implements SafeMessageError {
51+
export class PromptRefusalException extends SafeMessageToolkitError {
5252
constructor() {
5353
super(i18n('AWS.amazonq.featureDev.error.promptRefusalException'), {
5454
code: 'PromptRefusalException',
5555
})
5656
}
5757
}
5858

59-
export class NoChangeRequiredException extends ToolkitError implements SafeMessageError {
59+
export class NoChangeRequiredException extends SafeMessageToolkitError {
6060
constructor() {
6161
super(i18n('AWS.amazonq.featureDev.error.noChangeRequiredException'), {
6262
code: 'NoChangeRequiredException',
@@ -65,51 +65,51 @@ export class NoChangeRequiredException extends ToolkitError implements SafeMessa
6565
}
6666

6767
// To prevent potential security issues, message passed in should be predictably safe for telemetry
68-
export class FeatureDevServiceError extends ToolkitError implements SafeMessageError {
68+
export class FeatureDevServiceError extends SafeMessageToolkitError {
6969
constructor(message: string, code: string) {
7070
super(message, { code })
7171
}
7272
}
7373

74-
export class PrepareRepoFailedError extends ToolkitError implements SafeMessageError {
74+
export class PrepareRepoFailedError extends SafeMessageToolkitError {
7575
constructor() {
7676
super(i18n('AWS.amazonq.featureDev.error.prepareRepoFailedError'), {
7777
code: 'PrepareRepoFailed',
7878
})
7979
}
8080
}
8181

82-
export class UploadCodeError extends ToolkitError implements SafeMessageError {
82+
export class UploadCodeError extends SafeMessageToolkitError {
8383
constructor(statusCode: string) {
8484
super(uploadCodeError, { code: `UploadCode-${statusCode}` })
8585
}
8686
}
8787

88-
export class UploadURLExpired extends ToolkitError implements SafeMessageError {
88+
export class UploadURLExpired extends SafeMessageToolkitError {
8989
constructor() {
9090
super(i18n('AWS.amazonq.featureDev.error.uploadURLExpired'), { code: 'UploadURLExpired' })
9191
}
9292
}
9393

94-
export class IllegalStateTransition extends ToolkitError implements SafeMessageError {
94+
export class IllegalStateTransition extends SafeMessageToolkitError {
9595
constructor() {
9696
super(i18n('AWS.amazonq.featureDev.error.illegalStateTransition'), { code: 'IllegalStateTransition' })
9797
}
9898
}
9999

100-
export class ContentLengthError extends ToolkitError implements SafeMessageError {
100+
export class ContentLengthError extends SafeMessageToolkitError {
101101
constructor() {
102102
super(i18n('AWS.amazonq.featureDev.error.contentLengthError'), { code: ContentLengthError.name })
103103
}
104104
}
105105

106-
export class ZipFileError extends ToolkitError implements SafeMessageError {
106+
export class ZipFileError extends SafeMessageToolkitError {
107107
constructor() {
108108
super(i18n('AWS.amazonq.featureDev.error.zipFileError'), { code: ZipFileError.name })
109109
}
110110
}
111111

112-
export class CodeIterationLimitError extends ToolkitError implements SafeMessageError {
112+
export class CodeIterationLimitError extends SafeMessageToolkitError {
113113
constructor() {
114114
super(i18n('AWS.amazonq.featureDev.error.codeIterationLimitError'), { code: CodeIterationLimitError.name })
115115
}

packages/core/src/shared/errors.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,11 @@ export function getTelemetryResult(error: unknown | undefined): Result {
368368
return 'Failed'
369369
}
370370

371-
export class SafeMessageError extends Error {}
371+
export class SafeMessageToolkitError extends ToolkitError {
372+
public constructor(message: string, info: ErrorInformation = {}) {
373+
super(message, info)
374+
}
375+
}
372376

373377
/**
374378
* This function constructs a string similar to error.printStackTrace() for telemetry,
@@ -388,7 +392,7 @@ export function getStackTraceForError(error: Error): string {
388392
}
389393
seenExceptions.add(err)
390394

391-
if (error instanceof SafeMessageError) {
395+
if (error instanceof SafeMessageToolkitError) {
392396
lines.push(`${prefix}${err.constructor.name}: ${err.message}`)
393397
} else {
394398
lines.push(`${prefix}${err.constructor.name}`)

packages/core/src/test/shared/errors.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import {
2020
tryRun,
2121
UnknownError,
2222
getErrorId,
23-
SafeMessageError,
2423
getStackTraceForError,
24+
SafeMessageToolkitError,
2525
} from '../../shared/errors'
2626
import { CancellationError } from '../../shared/utilities/timeoutUtils'
2727
import { UnauthorizedException } from '@aws-sdk/client-sso'
@@ -351,7 +351,7 @@ describe('Telemetry', function () {
351351
})
352352

353353
describe('getStackTraceForError', () => {
354-
class SafeError extends ToolkitError implements SafeMessageError {}
354+
class SafeError extends SafeMessageToolkitError {}
355355
class UnsafeError extends ToolkitError {}
356356

357357
it('includes message for safe exceptions', () => {

0 commit comments

Comments
 (0)