From 23fc049a1a9c5edb8630a894e2d32538c1be1467 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Sat, 21 Oct 2023 08:42:31 +0000 Subject: [PATCH 1/2] chore(commons): fix double ua detection --- .../commons/src/awsSdk/userAgentMiddleware.ts | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/commons/src/awsSdk/userAgentMiddleware.ts b/packages/commons/src/awsSdk/userAgentMiddleware.ts index 5ed76d1f1e..4081bc8955 100644 --- a/packages/commons/src/awsSdk/userAgentMiddleware.ts +++ b/packages/commons/src/awsSdk/userAgentMiddleware.ts @@ -30,14 +30,25 @@ const customUserAgentMiddleware = (feature: string) => { }; }; +/** + * @internal + * Checks if the middleware stack already has the Powertools UA middleware + */ +const hasPowertools = (middlewareStack: string[]): boolean => { + let found = false; + for (const middleware of middlewareStack) { + if (middleware.includes('addPowertoolsToUserAgent')) { + found = true; + } + } + + return found; +}; + const addUserAgentMiddleware = (client: unknown, feature: string): void => { try { if (isSdkClient(client)) { - if ( - client.middlewareStack - .identify() - .includes('addPowertoolsToUserAgent: POWERTOOLS,USER_AGENT') - ) { + if (hasPowertools(client.middlewareStack.identify())) { return; } client.middlewareStack.addRelativeTo( @@ -49,8 +60,8 @@ const addUserAgentMiddleware = (client: unknown, feature: string): void => { `The client provided does not match the expected interface` ); } - } catch (e) { - console.warn('Failed to add user agent middleware', e); + } catch (error) { + console.warn('Failed to add user agent middleware', error); } }; From 48caaa96346a6e4427322a0f52552977cc09d176 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Sat, 21 Oct 2023 08:50:37 +0000 Subject: [PATCH 2/2] chore(commons): fix unit test --- packages/commons/tests/unit/awsSdk.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/commons/tests/unit/awsSdk.test.ts b/packages/commons/tests/unit/awsSdk.test.ts index fd02efd9ab..4ec4a75b99 100644 --- a/packages/commons/tests/unit/awsSdk.test.ts +++ b/packages/commons/tests/unit/awsSdk.test.ts @@ -30,7 +30,9 @@ describe('Helpers: awsSdk', () => { // Prepare const client = { middlewareStack: { - identify: () => 'addPowertoolsToUserAgent: POWERTOOLS,USER_AGENT', + identify: () => [ + 'addPowertoolsToUserAgent: after getUserAgentMiddleware', + ], addRelativeTo: jest.fn(), }, send: jest.fn(),