diff --git a/src/utils/cli.ts b/src/utils/cli.ts index f6621f1..5afdffb 100644 --- a/src/utils/cli.ts +++ b/src/utils/cli.ts @@ -173,7 +173,7 @@ export interface CliStatusTracker extends Disposable { export function createCliStatusTracker( outputChannel: LogOutputChannel, ): CliStatusTracker { - const status = createValueEmitter(); + const setupStatus = createValueEmitter(); const cliPath = createValueEmitter(); const outdated = createValueEmitter(); @@ -181,12 +181,14 @@ export function createCliStatusTracker( const newCli = await findLocalStack().catch(() => undefined); outputChannel.info(`[cli]: findLocalStack = ${newCli?.cliPath}`); - status.setValue( + setupStatus.setValue( newCli?.found && newCli.executable && newCli.upToDate ? "ok" : "setup_required", ); - cliPath.setValue(status.value() === "ok" ? newCli?.cliPath : undefined); + cliPath.setValue( + setupStatus.value() === "ok" ? newCli?.cliPath : undefined, + ); outdated.setValue( newCli?.upToDate !== undefined ? !newCli.upToDate : undefined, ); @@ -225,10 +227,10 @@ export function createCliStatusTracker( cliPath.onChange(callback); }, status() { - return status.value(); + return setupStatus.value(); }, onStatusChange(callback) { - status.onChange(callback); + setupStatus.onChange(callback); }, outdated() { return outdated.value(); diff --git a/src/utils/license.ts b/src/utils/license.ts index 4b61abc..6cba0f9 100644 --- a/src/utils/license.ts +++ b/src/utils/license.ts @@ -7,6 +7,7 @@ import { execLocalStack } from "./cli.ts"; import type { CliStatusTracker } from "./cli.ts"; import { createFileStatusTracker } from "./file-status-tracker.ts"; import type { StatusTracker } from "./file-status-tracker.ts"; +import { minDelay } from "./min-delay.ts"; /** * See https://github.com/localstack/localstack/blob/de861e1f656a52eaa090b061bd44fc1a7069715e/localstack-core/localstack/utils/files.py#L38-L55. @@ -115,7 +116,11 @@ export function createLicenseStatusTracker( return "waiting_for_dependencies"; } - const isLicenseValid = await checkIsLicenseValid(cliPath, outputChannel); + const isLicenseValid = await minDelay( + activateLicense(cliPath, outputChannel).then(() => + checkIsLicenseValid(cliPath, outputChannel), + ), + ); return isLicenseValid ? "ok" : "setup_required"; }, diff --git a/src/utils/localstack-instance.ts b/src/utils/localstack-instance.ts index fc083cf..9fe8cdc 100644 --- a/src/utils/localstack-instance.ts +++ b/src/utils/localstack-instance.ts @@ -59,7 +59,7 @@ export function createLocalStackInstanceStatusTracker( }); status.onChange((newStatus) => { - outputChannel.trace(`[localstack-instances-status] status=${newStatus}`); + outputChannel.trace(`[localstack-instance-status] status=${newStatus}`); if (newStatus === "running") { healthCheckStatusTracker.stop();