From fc8b9915476d86ba117877bb5df309923b419213 Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Sat, 4 Oct 2025 08:48:09 -0400 Subject: [PATCH 1/6] don't depend on process.env --- src/application-logger.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/application-logger.ts b/src/application-logger.ts index a4ae490..e2bbee2 100644 --- a/src/application-logger.ts +++ b/src/application-logger.ts @@ -4,8 +4,15 @@ export const loggerPrefix = '[Eppo SDK]'; // Create a Pino logger instance export const logger = pino({ - // eslint-disable-next-line no-restricted-globals - level: process.env.LOG_LEVEL ?? (process.env.NODE_ENV === 'production' ? 'warn' : 'info'), - // https://getpino.io/#/docs/browser - browser: { disabled: true }, + // Use any specified log level, or warn in production, info otherwise + level: + /* eslint-disable no-restricted-globals */ + typeof process !== 'undefined' && process.env.LOG_LEVEL + ? process.env.LOG_LEVEL + : typeof process !== 'undefined' && process.env.NODE_ENV === 'production' + ? 'warn' + : 'info', + /* eslint-enable no-restricted-globals */ + + browser: { disabled: true }, // See https://getpino.io/#/docs/browser }); From 5fc183ac8502d88c4f590e71f820e60c4bb67aaf Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Sat, 4 Oct 2025 08:52:44 -0400 Subject: [PATCH 2/6] warn level default for browser too --- src/application-logger.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/application-logger.ts b/src/application-logger.ts index e2bbee2..f5b9283 100644 --- a/src/application-logger.ts +++ b/src/application-logger.ts @@ -4,12 +4,12 @@ export const loggerPrefix = '[Eppo SDK]'; // Create a Pino logger instance export const logger = pino({ - // Use any specified log level, or warn in production, info otherwise + // Use any specified log level, or warn in production/browser, info otherwise level: /* eslint-disable no-restricted-globals */ typeof process !== 'undefined' && process.env.LOG_LEVEL ? process.env.LOG_LEVEL - : typeof process !== 'undefined' && process.env.NODE_ENV === 'production' + : typeof process === 'undefined' || process.env.NODE_ENV === 'production' ? 'warn' : 'info', /* eslint-enable no-restricted-globals */ From 92fd01f7b31f44072afc994589020c889c2c5ef8 Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Sat, 4 Oct 2025 08:57:46 -0400 Subject: [PATCH 3/6] patch version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 75c5eef..d8c1f37 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eppo/js-client-sdk-common", - "version": "4.15.2", + "version": "4.15.3", "description": "Common library for Eppo JavaScript SDKs (web, react native, and node)", "main": "dist/index.js", "files": [ From 7b05f6e527f129744070bf35e9f180e8901996ec Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Sat, 4 Oct 2025 09:21:20 -0400 Subject: [PATCH 4/6] follow pino convention --- src/client/eppo-client.ts | 6 +++--- src/client/eppo-precomputed-client.ts | 2 +- src/events/event-delivery.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/client/eppo-client.ts b/src/client/eppo-client.ts index e7d9c6d..5179b11 100644 --- a/src/client/eppo-client.ts +++ b/src/client/eppo-client.ts @@ -757,13 +757,13 @@ export default class EppoClient { try { this.logBanditAction(banditEvent); } catch (err: any) { - logger.error('Error logging bandit event', err); + logger.error(err, 'Error logging bandit event'); } evaluationDetails.banditAction = action; } } catch (err: any) { - logger.error('Error determining bandit action', err); + logger.error(err, 'Error determining bandit action'); if (!this.isGracefulFailureMode) { throw err; } @@ -877,7 +877,7 @@ export default class EppoClient { // Record in the assignment cache, if active, to deduplicate subsequent repeat assignments this.banditAssignmentCache?.set(banditAssignmentCacheProperties); } catch (err) { - logger.warn('Error encountered logging bandit action', err); + logger.warn(err, 'Error encountered logging bandit action'); } } diff --git a/src/client/eppo-precomputed-client.ts b/src/client/eppo-precomputed-client.ts index 590ed87..5e4145c 100644 --- a/src/client/eppo-precomputed-client.ts +++ b/src/client/eppo-precomputed-client.ts @@ -519,7 +519,7 @@ export default class EppoPrecomputedClient { // Record in the assignment cache, if active, to deduplicate subsequent repeat assignments this.banditAssignmentCache?.set(banditAssignmentCacheProperties); } catch (err) { - logger.warn('Error encountered logging bandit action', err); + logger.warn(err, 'Error encountered logging bandit action'); } } diff --git a/src/events/event-delivery.ts b/src/events/event-delivery.ts index 310afd2..1ad56d2 100644 --- a/src/events/event-delivery.ts +++ b/src/events/event-delivery.ts @@ -34,7 +34,7 @@ export default class EventDelivery implements IEventDelivery { return { failedEvents: batch }; } } catch (e: any) { - logger.warn(`Failed to upload event batch`, e); + logger.warn(e, `Failed to upload event batch`); return { failedEvents: batch }; } } From 165588e34a7126c1bdaa29e9dced50365c38eb3c Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Sat, 4 Oct 2025 09:26:39 -0400 Subject: [PATCH 5/6] adjust to pino convention --- src/client/eppo-client.ts | 10 +++++----- src/client/eppo-precomputed-client.ts | 2 +- src/events/event-delivery.ts | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/client/eppo-client.ts b/src/client/eppo-client.ts index 5179b11..5810452 100644 --- a/src/client/eppo-client.ts +++ b/src/client/eppo-client.ts @@ -756,14 +756,14 @@ export default class EppoClient { try { this.logBanditAction(banditEvent); - } catch (err: any) { - logger.error(err, 'Error logging bandit event'); + } catch (err) { + logger.error({ err }, 'Error logging bandit event'); } evaluationDetails.banditAction = action; } } catch (err: any) { - logger.error(err, 'Error determining bandit action'); + logger.error({ err }, 'Error determining bandit action'); if (!this.isGracefulFailureMode) { throw err; } @@ -772,7 +772,7 @@ export default class EppoClient { // Update the flag evaluation code to indicate that evaluationDetails.flagEvaluationCode = 'BANDIT_ERROR'; } - evaluationDetails.flagEvaluationDescription = `Error evaluating bandit action: ${err.message}`; + evaluationDetails.flagEvaluationDescription = `Error evaluating bandit action: ${err?.message}`; } return { variation, action, evaluationDetails }; } @@ -877,7 +877,7 @@ export default class EppoClient { // Record in the assignment cache, if active, to deduplicate subsequent repeat assignments this.banditAssignmentCache?.set(banditAssignmentCacheProperties); } catch (err) { - logger.warn(err, 'Error encountered logging bandit action'); + logger.warn({ err }, 'Error encountered logging bandit action'); } } diff --git a/src/client/eppo-precomputed-client.ts b/src/client/eppo-precomputed-client.ts index 5e4145c..1909594 100644 --- a/src/client/eppo-precomputed-client.ts +++ b/src/client/eppo-precomputed-client.ts @@ -519,7 +519,7 @@ export default class EppoPrecomputedClient { // Record in the assignment cache, if active, to deduplicate subsequent repeat assignments this.banditAssignmentCache?.set(banditAssignmentCacheProperties); } catch (err) { - logger.warn(err, 'Error encountered logging bandit action'); + logger.warn({ err }, 'Error encountered logging bandit action'); } } diff --git a/src/events/event-delivery.ts b/src/events/event-delivery.ts index 1ad56d2..c97161a 100644 --- a/src/events/event-delivery.ts +++ b/src/events/event-delivery.ts @@ -33,8 +33,8 @@ export default class EventDelivery implements IEventDelivery { } else { return { failedEvents: batch }; } - } catch (e: any) { - logger.warn(e, `Failed to upload event batch`); + } catch (err) { + logger.warn({ err }, `Failed to upload event batch`); return { failedEvents: batch }; } } From 0e82418e7788c3a480f37daba397fe8ae2d679f5 Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Sat, 4 Oct 2025 18:35:17 -0400 Subject: [PATCH 6/6] adjust formatting --- src/application-logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/application-logger.ts b/src/application-logger.ts index f5b9283..5aa9f9c 100644 --- a/src/application-logger.ts +++ b/src/application-logger.ts @@ -5,8 +5,8 @@ export const loggerPrefix = '[Eppo SDK]'; // Create a Pino logger instance export const logger = pino({ // Use any specified log level, or warn in production/browser, info otherwise + /* eslint-disable no-restricted-globals */ level: - /* eslint-disable no-restricted-globals */ typeof process !== 'undefined' && process.env.LOG_LEVEL ? process.env.LOG_LEVEL : typeof process === 'undefined' || process.env.NODE_ENV === 'production'