From 95f97105474100e681c2c8765d9e04daaf3e0a2a Mon Sep 17 00:00:00 2001 From: Noah Richardson Date: Fri, 19 Jul 2024 09:37:35 -0400 Subject: [PATCH] fix: read browser locale and is debug on first event `shared.ts` currently reads the default browser locale and is debug on import, which causes issueswhen imported in a server component. This moves the reads for those to whenever the first event issent and those values are actually required, which is typically on the client. fix #7 --- packages/angular/package.json | 2 +- packages/browser/CHANGELOG.md | 4 ++++ packages/browser/package.json | 2 +- packages/react/CHANGELOG.md | 4 ++++ packages/react/package.json | 2 +- packages/shared.ts | 34 ++++++++++++++++++++++++---------- packages/web/CHANGELOG.md | 4 ++++ packages/web/package.json | 2 +- 8 files changed, 40 insertions(+), 14 deletions(-) diff --git a/packages/angular/package.json b/packages/angular/package.json index a9ca122..bed0228 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@aptabase/angular", - "version": "0.0.1", + "version": "0.0.2", "description": "Angular SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps", "scripts": { "ng": "ng", diff --git a/packages/browser/CHANGELOG.md b/packages/browser/CHANGELOG.md index e43c092..1ea7c10 100644 --- a/packages/browser/CHANGELOG.md +++ b/packages/browser/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.2 + +- Move browser locale and is debug reads from import to first event to better support SSR + ## 0.1.1 - Support for custom API path diff --git a/packages/browser/package.json b/packages/browser/package.json index 45ea55a..c620e5f 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@aptabase/browser", - "version": "0.1.1", + "version": "0.1.2", "type": "module", "description": "Browser Extension SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps", "main": "./dist/index.cjs", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index a76f0e8..d48bb3e 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.4 + +- Move browser locale and is debug reads from import to first event to better support SSR + ## 0.3.3 - Rename `apiPath` to `apiUrl` diff --git a/packages/react/package.json b/packages/react/package.json index 90aff10..b64eb09 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@aptabase/react", - "version": "0.3.3", + "version": "0.3.4", "type": "module", "description": "React SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps", "main": "./dist/index.cjs", diff --git a/packages/shared.ts b/packages/shared.ts index b1bce6b..242e378 100644 --- a/packages/shared.ts +++ b/packages/shared.ts @@ -1,5 +1,5 @@ -const defaultLocale = getBrowserLocale(); -const defaultIsDebug = getIsDebug(); +let defaultLocale: string | undefined; +let defaultIsDebug: boolean | undefined; const isInBrowser = typeof window !== 'undefined' && typeof window.fetch !== 'undefined'; const isInBrowserExtension = typeof chrome !== 'undefined' && !!chrome.runtime?.id; @@ -103,8 +103,8 @@ export async function sendEvent(opts: { sessionId: opts.sessionId, eventName: opts.eventName, systemProps: { - locale: opts.locale ?? defaultLocale, - isDebug: opts.isDebug ?? defaultIsDebug, + locale: opts.locale ?? getBrowserLocale(), + isDebug: opts.isDebug ?? getIsDebug(), appVersion: opts.appVersion ?? '', sdkVersion: opts.sdkVersion, }, @@ -123,25 +123,39 @@ export async function sendEvent(opts: { } function getBrowserLocale(): string | undefined { + if (defaultLocale) { + return defaultLocale; + } + if (typeof navigator === 'undefined') { return undefined; } if (navigator.languages.length > 0) { - return navigator.languages[0]; + defaultLocale = navigator.languages[0]; + } else { + defaultLocale = navigator.language; } - return navigator.language; + return defaultLocale; } function getIsDebug(): boolean { + if (defaultIsDebug !== undefined) { + return defaultIsDebug; + } + if (process.env['NODE_ENV'] === 'development') { - return true; + defaultIsDebug = true; + return defaultIsDebug; } if (typeof location === 'undefined') { - return false; + defaultIsDebug = false; + return defaultIsDebug; } - return location.hostname === 'localhost'; -} + defaultIsDebug = location.hostname === 'localhost'; + + return defaultIsDebug; +} \ No newline at end of file diff --git a/packages/web/CHANGELOG.md b/packages/web/CHANGELOG.md index d2c29ab..f003bda 100644 --- a/packages/web/CHANGELOG.md +++ b/packages/web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.3 + +- Move browser locale and is debug reads from import to first event to better support SSR + ## 0.4.2 - Fix error when running on chrome diff --git a/packages/web/package.json b/packages/web/package.json index 26e9de5..31a9639 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@aptabase/web", - "version": "0.4.2", + "version": "0.4.3", "type": "module", "description": "JavaScript SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps", "main": "./dist/index.cjs",