tianji-client-sdk
Version:
97 lines (96 loc) • 3.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.reportWebsiteEvent = exports.trackPageView = exports.initWebsiteTracking = exports.identifyWebsiteUser = void 0;
exports.initTianjiTracker = initTianjiTracker;
exports.reportEvent = reportEvent;
exports.identify = identify;
const load_script_1 = __importDefault(require("load-script"));
const pure_1 = require("./pure");
Object.defineProperty(exports, "identifyWebsiteUser", { enumerable: true, get: function () { return pure_1.identifyWebsiteUser; } });
Object.defineProperty(exports, "initWebsiteTracking", { enumerable: true, get: function () { return pure_1.initWebsiteTracking; } });
Object.defineProperty(exports, "trackPageView", { enumerable: true, get: function () { return pure_1.trackPageView; } });
Object.defineProperty(exports, "reportWebsiteEvent", { enumerable: true, get: function () { return pure_1.reportWebsiteEvent; } });
async function initTianjiTracker(options) {
if (typeof window === 'undefined') {
console.warn('This function should be called in browser environment!');
return;
}
const trackerName = options.customTrackerName ?? 'tracker.js';
const attrs = {
'data-website-id': options.websiteId,
};
(0, pure_1.initWebsiteTracking)({
serverUrl: options.url,
websiteId: options.websiteId,
});
const tianji = window.tianji;
if (tianji) {
// if tianji is already initialized, skip
console.warn('Tianji is already initialized, skipping initialization.');
return;
}
if (options.autoTrack === false) {
attrs['data-auto-track'] = 'false';
}
if (Array.isArray(options.domains)) {
attrs['data-domains'] = options.domains.join(',');
}
if (options.disableTrack === true) {
attrs['data-do-not-track'] = 'true';
}
return new Promise((resolve, reject) => {
(0, load_script_1.default)(`${options.url}/${trackerName}`, {
async: true,
attrs,
}, (err, script) => {
if (err) {
reject(err);
return;
}
resolve(script);
});
});
}
/**
* @deprecated use reportWebsiteEvent instead
*/
function reportEvent(eventName, data = {}) {
if (typeof window === 'undefined') {
console.warn('This function should be called in browser environment!');
return;
}
const tianji = window.tianji;
if (tianji) {
if (!tianji.track) {
console.warn('tianji.track is not ready');
return;
}
tianji.track(eventName, data);
}
else {
(0, pure_1.reportWebsiteEvent)(eventName, data);
}
}
/**
* @deprecated use identifyWebsiteUser instead
*/
function identify(data) {
if (typeof window === 'undefined') {
console.warn('This function should be called in browser environment!');
return;
}
const tianji = window.tianji;
if (tianji) {
if (!tianji.identify) {
console.warn('tianji.identify is not ready');
return;
}
tianji.identify(data);
}
else {
(0, pure_1.identifyWebsiteUser)(data);
}
}