Skip to content

Commit 44a7613

Browse files
committed
export type as well as value
1 parent 71fc1d9 commit 44a7613

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

packages/core/src/shared/settings.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -620,21 +620,23 @@ export function fromExtensionManifest<T extends TypeDescriptor & Partial<Section
620620
*/
621621
export const toolkitPrompts = settingsProps['aws.suppressPrompts']
622622
export const ToolkitPromptSettings = getPromptSettings('aws.suppressPrompts')
623+
export type ToolkitPromptSettings = InstanceType<typeof ToolkitPromptSettings>
623624

624625
export const amazonQPrompts = settingsProps['amazonQ.suppressPrompts']
625626
export const AmazonQPromptSettings = getPromptSettings('amazonQ.suppressPrompts')
627+
export type AmazonQPromptSettings = InstanceType<typeof ToolkitPromptSettings>
626628
type promptSettingsKey = 'amazonQ.suppressPrompts' | 'aws.suppressPrompts'
627629

628-
function getPromptSettings(promptsKey: promptSettingsKey) {
630+
function getPromptSettings<P extends promptSettingsKey>(promptsKey: P) {
629631
const prompts = settingsProps[promptsKey]
630-
type promptName = keyof typeof prompts
632+
type promptName = keyof typeof prompts & string
631633
return class AnonymousPromptSettings extends Settings.define(
632634
promptsKey,
633635
toRecord(keys(prompts), () => Boolean)
634636
) {
635-
public isPromptEnabled(promptName: promptName & string) {
637+
public isPromptEnabled(promptName: promptName) {
636638
try {
637-
return !this._getOrThrow(promptName, false)
639+
return !this._getOrThrow(promptName, false as never)
638640
} catch (e) {
639641
this._log('prompt check for "%s" failed: %s', promptName, (e as Error).message)
640642
this.reset().catch((e) =>
@@ -645,9 +647,9 @@ function getPromptSettings(promptsKey: promptSettingsKey) {
645647
}
646648
}
647649

648-
public async disablePrompt(promptName: promptName & string) {
650+
public async disablePrompt(promptName: promptName) {
649651
if (this.isPromptEnabled(promptName)) {
650-
await this.update(promptName, true)
652+
await this.update(promptName, true as never)
651653
}
652654
}
653655

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ describe('PromptSetting', function () {
498498
it(scenario.desc, async () => {
499499
await settings.update(promptSettingKey, scenario.testValue)
500500
const before = settings.get(promptSettingKey, Object, {})
501-
const result = await sut.isPromptEnabled(promptName)
501+
const result = sut.isPromptEnabled(promptName)
502502

503503
assert.deepStrictEqual(result, scenario.expected)
504504
assert.deepStrictEqual(

0 commit comments

Comments
 (0)