Added support for automatic segregation of Debug/Release events
This commit is contained in:
parent
47d063b181
commit
aa75f78fbb
4 changed files with 35 additions and 7 deletions
|
@ -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
4
package-lock.json
generated
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
32
src/index.ts
32
src/index.ts
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue