@@ -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