From fd8edd0475286363e119ad817af5dd54d45583c2 Mon Sep 17 00:00:00 2001 From: Michael Xiao Date: Mon, 7 Oct 2024 13:06:32 -0400 Subject: [PATCH] Override meta.adapterName (#271) --- src/cache/index.ts | 21 +++++++++++++++++++++ src/cache/response.ts | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/cache/index.ts b/src/cache/index.ts index 44092f98..f2f1c03b 100644 --- a/src/cache/index.ts +++ b/src/cache/index.ts @@ -152,6 +152,27 @@ const calculateKey = ({ return `${endpointName}-${transportName}-${paramsKey}` } +export const calculateAdapterName = ( + adapterName: string, + data: Record, +): string => { + if (Object.keys(data).length === 0) { + logger.trace('Cannot generate Adapter Name without data, using default') + return adapterName + } + + if (data && typeof data !== 'object') { + logger.trace('Cannot generate Adapter Name without valid data, using default') + return adapterName + } + + if (data['adapterNameOverride'] && typeof data['adapterNameOverride'] === 'string') { + return data['adapterNameOverride'].toUpperCase() + } else { + return adapterName + } +} + export const calculateFeedId = ( { adapterSettings, diff --git a/src/cache/response.ts b/src/cache/response.ts index 9e8af79f..2fe961e4 100644 --- a/src/cache/response.ts +++ b/src/cache/response.ts @@ -17,7 +17,7 @@ import { TypeFromDefinition, } from '../validation/input-params' import { validator } from '../validation/utils' -import { Cache, calculateCacheKey, calculateFeedId } from './' +import { Cache, calculateCacheKey, calculateFeedId, calculateAdapterName } from './' import * as cacheMetrics from './metrics' const logger = makeLogger('ResponseCache') @@ -99,7 +99,7 @@ export class ResponseCache< this.adapterSettings.EXPERIMENTAL_METRICS_ENABLED ) { response.meta = { - adapterName: this.adapterName, + adapterName: calculateAdapterName(this.adapterName, r.params), metrics: { feedId: calculateFeedId( {