UNPKG

@airwallex/node-sdk

Version:

Airwallex Node.js SDK

53 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AnalyticsClient = exports.ANALYTICS_CODES = void 0; const tslib_1 = require("tslib"); const uuid_1 = require("uuid"); const os_1 = tslib_1.__importDefault(require("os")); const package_json_1 = tslib_1.__importDefault(require("../../package.json")); const apiConstants_1 = require("../constants/apiConstants"); const httpClient_1 = require("./httpClient"); const maskHelper_1 = require("../utils/maskHelper"); exports.ANALYTICS_CODES = { latency: 'LATENCY', }; const DEFAULT_COMMON_DATA = { appName: 'airwallex-node-sdk', sessionId: (0, uuid_1.v4)(), deviceId: 'deviceId', platform: os_1.default.platform(), accountId: 'accountId', appVersion: package_json_1.default.version, apiVersion: apiConstants_1.API_VERSION, networkType: 'net4g', env: 'demo', }; const EXTERNAL_METRICS_URL = '/airtracker/logs'; class AnalyticsClient { constructor(basePath, config, httpClient = new httpClient_1.HttpClientImpl(basePath, config)) { this.analyticsInstance = httpClient; this.enableTelemetry = config.enableTelemetry !== false; this.commonData = { ...DEFAULT_COMMON_DATA, env: config.env, }; } async sendTelemetry(eventName, data) { this._sendLog({ ...(0, maskHelper_1.maskSensitiveData)(data), eventName }); } async _sendLog(payload) { if (!this.enableTelemetry) { return; } this.analyticsInstance .post(EXTERNAL_METRICS_URL, { commonData: this.commonData, data: [{ ...payload, severity: 'info' }], }) .catch(() => { console.log('Failed to send analytics log'); }); } } exports.AnalyticsClient = AnalyticsClient; //# sourceMappingURL=analyticsClient.js.map