Skip to content

Commit 829166b

Browse files
committed
refactor: move throttle up
1 parent 424d7a0 commit 829166b

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

packages/core/src/auth/auth.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { SsoClient } from './sso/clients'
2121
import { getLogger } from '../shared/logger'
2222
import { CredentialsProviderManager } from './providers/credentialsProviderManager'
2323
import { asString, CredentialsId, CredentialsProvider, fromString } from './providers/credentials'
24-
import { keyedDebounce, once } from '../shared/utilities/functionUtils'
24+
import { keyedDebounce, once, throttle } from '../shared/utilities/functionUtils'
2525
import { CredentialsSettings } from './credentials/utils'
2626
import {
2727
extractDataFromSection,
@@ -248,8 +248,8 @@ export class Auth implements AuthService, ConnectionManager {
248248
this.#onDidChangeActiveConnection.fire(undefined)
249249
}
250250

251-
@withTelemetryContext({ name: 'listConnections', class: authClassName })
252-
public async listConnections(): Promise<Connection[]> {
251+
@withTelemetryContext({ name: 'listConnections', class: authClassName, emit: true })
252+
private async listConnectionsDefault(): Promise<Connection[]> {
253253
await loadIamProfilesIntoStore(this.store, this.iamProfileProvider)
254254

255255
const connections = await Promise.all(
@@ -259,6 +259,8 @@ export class Auth implements AuthService, ConnectionManager {
259259
return connections
260260
}
261261

262+
public listConnections = throttle(() => this.listConnectionsDefault(), 500)
263+
262264
/**
263265
* Gathers all local profiles plus any AWS accounts/roles associated with SSO ("IAM Identity
264266
* Center", "IdC") connections.

packages/core/src/auth/providers/credentialsProviderManager.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
*/
55

66
import { getLogger } from '../../shared/logger'
7-
import { AwsLoadCredentials, telemetry } from '../../shared/telemetry/telemetry'
7+
import { telemetry } from '../../shared/telemetry/telemetry'
88
import { withTelemetryContext } from '../../shared/telemetry/util'
9-
import { cancellableDebounce } from '../../shared/utilities/functionUtils'
109
import {
1110
asString,
1211
CredentialsProvider,
@@ -26,7 +25,7 @@ export class CredentialsProviderManager {
2625
private readonly providerFactories: CredentialsProviderFactory[] = []
2726
private readonly providers: CredentialsProvider[] = []
2827

29-
@withTelemetryContext({ name: 'getAllCredentialsProvider', class: credentialsProviderManagerClassName, emit: true })
28+
@withTelemetryContext({ name: 'getAllCredentialsProvider', class: credentialsProviderManagerClassName })
3029
public async getAllCredentialsProviders(): Promise<CredentialsProvider[]> {
3130
let providers: CredentialsProvider[] = []
3231

@@ -52,7 +51,7 @@ export class CredentialsProviderManager {
5251
continue
5352
}
5453

55-
void this.emitWithDebounce({
54+
telemetry.aws_loadCredentials.emit({
5655
credentialSourceId: credentialsProviderToTelemetryType(providerType),
5756
value: refreshed.length,
5857
})
@@ -61,10 +60,7 @@ export class CredentialsProviderManager {
6160

6261
return providers
6362
}
64-
private emitWithDebounce = cancellableDebounce(
65-
(m: AwsLoadCredentials) => telemetry.aws_loadCredentials.emit(m),
66-
100
67-
).promise
63+
6864
/**
6965
* Returns a map of `CredentialsProviderId` string-forms to object-forms,
7066
* from all credential sources. Only available providers are returned.

0 commit comments

Comments
 (0)