diff --git a/changelog.d/+target-selection.fixed.md b/changelog.d/+target-selection.fixed.md new file mode 100644 index 00000000..e0d17339 --- /dev/null +++ b/changelog.d/+target-selection.fixed.md @@ -0,0 +1 @@ +Fixed a bug where mirrord was not respecting target selected in the mirrord config. diff --git a/src/api.ts b/src/api.ts index 58f31751..03326eaa 100644 --- a/src/api.ts +++ b/src/api.ts @@ -371,7 +371,7 @@ export class MirrordAPI { * * Has 60 seconds timeout */ - async binaryExecute(target: UserSelection, configFile: string | null, executable: string | null, configEnv: EnvVars): Promise { + async binaryExecute(target: UserSelection | undefined, configFile: string | null, executable: string | null, configEnv: EnvVars): Promise { tickMirrordForTeamsCounter(); tickFeedbackCounter(); tickDiscordCounter(); @@ -387,9 +387,9 @@ export class MirrordAPI { reject("timeout"); }, 120 * 1000); - const args = makeMirrordArgs(target.path ?? "targetless", configFile, executable); + const args = makeMirrordArgs(target?.path, configFile, executable); let env: EnvVars; - if (target.namespace) { + if (target?.namespace) { // eslint-disable-next-line @typescript-eslint/naming-convention env = { MIRRORD_TARGET_NAMESPACE: target.namespace, ...configEnv }; } else { diff --git a/src/debugger.ts b/src/debugger.ts index d7c70276..2a33f359 100644 --- a/src/debugger.ts +++ b/src/debugger.ts @@ -110,7 +110,7 @@ async function main( let mirrordApi = new MirrordAPI(cliPath); config.env ||= {}; - let target: UserSelection = {}; + let target: UserSelection | undefined = undefined; let configPath = await MirrordConfigManager.getInstance().resolveMirrordConfig(folder, config); const verifiedConfig = await mirrordApi.verifyConfig(configPath, config.env); diff --git a/src/targetQuickPick.ts b/src/targetQuickPick.ts index 9e81435f..fa3f82e8 100644 --- a/src/targetQuickPick.ts +++ b/src/targetQuickPick.ts @@ -51,7 +51,7 @@ const TARGET_SELECTION_PAGES: (TargetQuickPickPage & {targetType: string})[] = [ * An item in the @see TargetQuickPick. */ type TargetQuickPickItem = vscode.QuickPickItem & ( - { type: 'target', value?: string } | // select target + { type: 'target', value: string } | // select target { type: 'namespace', value: string } | // switch to another namespace { type: 'page', value: TargetQuickPickPage } // switch to another page (e.g select pod -> select deployment) ); @@ -62,6 +62,7 @@ type TargetQuickPickItem = vscode.QuickPickItem & ( const TARGETLESS_ITEM: TargetQuickPickItem = { type: 'target', label: 'No Target (\"targetless\")', + value: 'targetless', }; /** @@ -75,10 +76,8 @@ export type TargetFetcher = (namespace?: string) => Thenable; export type UserSelection = { /** * Selected target. - * - * undefined if targetless. */ - path?: string, + path: string, /** * Selected namespace. * @@ -313,7 +312,7 @@ export class TargetQuickPick { .withDisableAction("promptTargetless") .info(); - return { namespace: this.lsOutput.current_namespace }; + return { path: 'targetless', namespace: this.lsOutput.current_namespace }; } } }