Skip to content

Commit 4498a73

Browse files
committed
avoid using same function for experiment
1 parent e16fe17 commit 4498a73

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

packages/core/src/shared/settings.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ export class ToolkitPromptSettings
628628
implements PromptSettings
629629
{
630630
public isPromptEnabled(promptName: toolkitPromptName) {
631-
return isEnabled(this, promptName)
631+
return isPromptEnabled(this, promptName)
632632
}
633633

634634
public async disablePrompt(promptName: toolkitPromptName): Promise<void> {
@@ -654,7 +654,7 @@ export class AmazonQPromptSettings
654654
implements PromptSettings
655655
{
656656
public isPromptEnabled(promptName: amazonQPromptName): boolean {
657-
return isEnabled(this, promptName)
657+
return isPromptEnabled(this, promptName)
658658
}
659659

660660
public async disablePrompt(promptName: amazonQPromptName): Promise<void> {
@@ -694,7 +694,7 @@ type ExperimentName = keyof typeof experiments
694694
* ### Usage:
695695
* ```
696696
* function myExperimentalFeature(): void {
697-
* if (!(settings.isExperimentEnabled('myExperimentalFeature'))) {
697+
* if (!( settings.isExperimentEnabled('myExperimentalFeature'))) {
698698
* return
699699
* }
700700
*
@@ -713,7 +713,14 @@ export class Experiments extends Settings.define(
713713
toRecord(keys(experiments), () => Boolean)
714714
) {
715715
public isExperimentEnabled(name: ExperimentName): boolean {
716-
return isEnabled(this, name)
716+
try {
717+
return this._getOrThrow(name, false)
718+
} catch (error) {
719+
this._log(`experiment check for ${name} failed: %s`, error)
720+
this.reset().catch((e) => getLogger().error(`failed to reset experiment settings: %O`, e))
721+
722+
return false
723+
}
717724
}
718725

719726
static #instance: Experiments
@@ -929,14 +936,14 @@ export async function openSettingsId<K extends keyof SettingsProps>(key: K): Pro
929936
await vscode.commands.executeCommand('workbench.action.openSettings', `@id:${key}`)
930937
}
931938

932-
function isEnabled<
939+
function isPromptEnabled<
933940
S extends {
934941
_getOrThrow(key: P & string, defaultValue: boolean): boolean
935942
_log(message: string, ...args: any[]): void
936943
update(key: P & string, value: boolean): Promise<boolean>
937944
reset(): Promise<void>
938-
},
939-
P extends AllPromptNames | ExperimentName,
945+
} & PromptSettings,
946+
P extends AllPromptNames,
940947
>(settings: S, promptName: P) {
941948
try {
942949
return !settings._getOrThrow(promptName, false)

0 commit comments

Comments
 (0)