Added support for automatic segregation of Debug/Release events

This commit is contained in:
goenning 2023-05-20 22:23:19 +01:00
parent 47d063b181
commit aa75f78fbb
4 changed files with 35 additions and 7 deletions

View file

@ -1,3 +1,7 @@
## 0.1.2
- Added support for automatic segregation of Debug/Release events
## 0.1.1
- Refactor on session generator

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "@aptabase/web",
"version": "0.1.1",
"version": "0.1.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@aptabase/web",
"version": "0.1.1",
"version": "0.1.2",
"license": "MIT",
"devDependencies": {
"@rollup/plugin-replace": "5.0.2",

View file

@ -1,6 +1,6 @@
{
"name": "@aptabase/web",
"version": "0.1.1",
"version": "0.1.2",
"private": false,
"type": "module",
"description": "JavaScript SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps",

View file

@ -4,6 +4,7 @@ import { newSessionId } from "./session";
const sdkVersion = "aptabase-web@env.PKG_VERSION";
export type AptabaseOptions = {
host?: string;
appVersion?: string;
};
@ -11,30 +12,52 @@ let _appKey = "";
let _locale = "";
let _apiUrl = "";
let _sessionId = newSessionId();
let _isDebug = false;
let _options: AptabaseOptions | undefined;
const regions: { [region: string]: string } = {
const _hosts: { [region: string]: string } = {
US: "https://us.aptabase.com",
EU: "https://eu.aptabase.com",
DEV: "http://localhost:3000",
SH: "",
};
function getBaseUrl(
region: string,
options?: AptabaseOptions
): string | undefined {
if (region === "SH") {
if (!options?.host) {
console.warn(
`Host parameter must be defined when using Self-Hosted App Key. Tracking will be disabled.`
);
return;
}
return options.host;
}
return _hosts[region];
}
export function init(appKey: string, options?: AptabaseOptions) {
_appKey = appKey;
_options = options;
const parts = appKey.split("-");
if (parts.length !== 3) {
if (parts.length !== 3 || _hosts[parts[1]] === undefined) {
console.warn(
`The Aptabase App Key "${appKey}" is invalid. Tracking will be disabled.`
);
return;
}
const region = parts[1];
const baseUrl = regions[region] ?? regions.DEV;
const baseUrl = getBaseUrl(parts[1], options);
_apiUrl = `${baseUrl}/api/v0/event`;
if (typeof location !== "undefined") {
_isDebug = location.hostname === "localhost";
}
if (typeof navigator !== "undefined") {
_locale =
navigator.languages && navigator.languages.length
@ -54,6 +77,7 @@ export function trackEvent(
sessionId: _sessionId,
eventName: eventName,
systemProps: {
isDebug: _isDebug,
locale: _locale,
appVersion: _options?.appVersion ?? "",
sdkVersion,