Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
'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