Repository URL to install this package:
|
Version:
2.0.3 ▾
|
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
var storage = require('../../helpers/storage.js');
var helpers = require('../avo/helpers.js');
// https://github.com/avohq/js-avo-inspector/blob/5227cdb5f9b0d6582d72309da4ddf03f00390183/src/AvoBatcher.ts#L140
// https://github.com/avohq/js-avo-inspector/blob/3d68fef23a0f52702c15dc30735f0ca73cb605fd/src/AvoSessionTracker.ts#L104
// https://github.com/avohq/js-avo-inspector/blob/3d68fef23a0f52702c15dc30735f0ca73cb605fd/src/AvoSessionTracker.ts#L108
var LOCAL_STORAGE_ITEM_NAME_REGEXES = [/AvoInstallationId/, /AvoInspectorEvents/, /AvoInspectorSessionTimestamp/, /AvoInspectorSessionId/];
/**
* Loads the optional Avo Inspector dependency.
* @returns {object|null} - The Avo Inspector or null if not available.
*/
var loadAvoInspector = function loadAvoInspector() {
try {
// eslint-disable-next-line global-require
return require('avo-inspector');
} catch (e) {
return null;
}
}; // avo-inspector is an optional peer dependency, since not all consumers opt in for it
var Inspector = loadAvoInspector();
/**
* Initializes Avo Inspector.
*
* @async
* @private
* @param {TrackingApiOptions} options - The API client's options
* @return {Promise.<boolean>}
* @throws {TypeError} Thrown when avo-inspector package is missing or if the Avo Inspector API key is not present.
*/
// eslint-disable-next-line require-await
var initAvoInspector = /*#__PURE__*/function () {
var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(options) {
var clientId, _options$clientVersio, clientVersion, _options$env, env, _env$doodleEnv, doodleEnv, _env$avoApiKey, avoApiKey, avoEnv;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
clientId = options.clientId, _options$clientVersio = options.clientVersion, clientVersion = _options$clientVersio === void 0 ? '' : _options$clientVersio, _options$env = options.env, env = _options$env === void 0 ? {} : _options$env;
_env$doodleEnv = env.doodleEnv, doodleEnv = _env$doodleEnv === void 0 ? '' : _env$doodleEnv, _env$avoApiKey = env.avoApiKey, avoApiKey = _env$avoApiKey === void 0 ? '' : _env$avoApiKey;
if (Inspector) {
_context.next = 6;
break;
}
throw new Error('Please install avo-inspector package on the consuming app of @doodle/tracking');
case 6:
if (avoApiKey) {
_context.next = 10;
break;
}
throw new TypeError('Please provide an Avo Inspector API key so @doodle/tracking can initialize its client');
case 10:
avoEnv = helpers.mapDoodleEnvToAvoEnv(doodleEnv);
options.avoInspector = new Inspector.AvoInspector({
appName: clientId,
version: clientVersion || "".concat(doodleEnv, "-0.0.0"),
apiKey: avoApiKey,
env: avoEnv
});
return _context.abrupt("return", true);
case 13:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function initAvoInspector(_x) {
return _ref.apply(this, arguments);
};
}();
/**
* Removes the Avo Inspector items from local storage.
*/
var removeAvoInspectorLocalStorageItems = function removeAvoInspectorLocalStorageItems() {
storage.removeLocalStorageItems(LOCAL_STORAGE_ITEM_NAME_REGEXES);
};
/**
* Removes Avo Inspector.
*
* @async
* @private
* @param {TrackingApiOptions} options - The API client's options
* @return {Promise.<boolean>}
*/
// eslint-disable-next-line no-unused-vars,require-await
var removeAvoInspector = /*#__PURE__*/function () {
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(options) {
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
// Unset the inspector
Inspector = null;
options.avoInspector = null; // Cleanup stored items
removeAvoInspectorLocalStorageItems();
return _context2.abrupt("return", true);
case 4:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function removeAvoInspector(_x2) {
return _ref2.apply(this, arguments);
};
}();
exports.initAvoInspector = initAvoInspector;
exports.loadAvoInspector = loadAvoInspector;
exports.removeAvoInspector = removeAvoInspector;
exports.removeAvoInspectorLocalStorageItems = removeAvoInspectorLocalStorageItems;
//# sourceMappingURL=init.js.map