From fccd2d2a5ddfcc0bc1101e6c0521ca436b83583e Mon Sep 17 00:00:00 2001 From: Vladimir Klimontovich Date: Wed, 29 Nov 2023 15:47:42 -0500 Subject: [PATCH] trivial: @jitsu/js - send env (node or browser) along with library version --- libs/jitsu-js/src/analytics-plugin.ts | 10 ++++++++-- types/protocols/analytics.d.ts | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libs/jitsu-js/src/analytics-plugin.ts b/libs/jitsu-js/src/analytics-plugin.ts index 7a8ac63fd..7b627b397 100644 --- a/libs/jitsu-js/src/analytics-plugin.ts +++ b/libs/jitsu-js/src/analytics-plugin.ts @@ -292,7 +292,12 @@ export function isInBrowser() { return typeof document !== "undefined" && typeof window !== "undefined"; } -function adjustPayload(payload: any, config: JitsuOptions, storage: PersistentStorage): AnalyticsClientEvent { +function adjustPayload( + payload: any, + config: JitsuOptions, + storage: PersistentStorage, + s2s: boolean +): AnalyticsClientEvent { const runtime: RuntimeFacade = config.runtime || (isInBrowser() ? windowRuntime(config) : emptyRuntime(config)); const url = runtime.pageUrl(); const parsedUrl = safeCall(() => new URL(url), undefined); @@ -305,6 +310,7 @@ function adjustPayload(payload: any, config: JitsuOptions, storage: PersistentSt library: { name: jitsuLibraryName, version: jitsuVersion, + env: s2s ? "node" : "browser", }, userAgent: runtime.userAgent(), locale: runtime.language(), @@ -504,7 +510,7 @@ async function send( // if (jitsuConfig.debug) { // console.log(`[JITSU] Sending event to ${url}: `, JSON.stringify(payload, null, 2)); // } - const adjustedPayload = adjustPayload(payload, jitsuConfig, store); + const adjustedPayload = adjustPayload(payload, jitsuConfig, store, s2s); const authHeader = jitsuConfig.writeKey ? { "X-Write-Key": jitsuConfig.writeKey } : {}; let fetchResult; diff --git a/types/protocols/analytics.d.ts b/types/protocols/analytics.d.ts index ac056cd3c..620d77d01 100644 --- a/types/protocols/analytics.d.ts +++ b/types/protocols/analytics.d.ts @@ -126,6 +126,8 @@ interface AnalyticsContext { library?: { name: string; version: string; + //allow to add custom fields + [key: string]: any; }; traits?: { crossDomainId?: string } & JSONObject;