@ninetailed/experience.js-plugin-ssr
Version:
Ninetailed SDK plugin for SSR
52 lines (45 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var Cookies = require('js-cookie');
var experience_jsShared = require('@ninetailed/experience.js-shared');
var experience_jsPluginAnalytics = require('@ninetailed/experience.js-plugin-analytics');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var Cookies__default = /*#__PURE__*/_interopDefaultLegacy(Cookies);
var _a, _b;
class NinetailedSsrPlugin extends experience_jsPluginAnalytics.NinetailedPlugin {
constructor({
cookie
} = {}) {
super();
this.name = 'ninetailed:ssr';
this.initialize = ({
instance
}) => {
const anonymousId = Cookies__default["default"].get(experience_jsShared.NINETAILED_ANONYMOUS_ID_COOKIE);
if (anonymousId) {
instance.storage.setItem(experience_jsShared.ANONYMOUS_ID, anonymousId);
}
};
this[_a] = ({
payload
}) => {
if (payload.profile) {
const cookieAttributes = {
expires: this.cookieExpires || 365
};
if (this.cookieDomain) {
cookieAttributes.domain = this.cookieDomain;
}
Cookies__default["default"].set(experience_jsShared.NINETAILED_ANONYMOUS_ID_COOKIE, payload.profile.id, cookieAttributes);
}
};
this[_b] = () => {
Cookies__default["default"].remove(experience_jsShared.NINETAILED_ANONYMOUS_ID_COOKIE);
};
this.cookieDomain = cookie === null || cookie === void 0 ? void 0 : cookie.domain;
this.cookieExpires = cookie === null || cookie === void 0 ? void 0 : cookie.expires;
}
}
_a = experience_jsShared.PROFILE_CHANGE, _b = experience_jsShared.PROFILE_RESET;
exports.NinetailedSsrPlugin = NinetailedSsrPlugin;
exports["default"] = NinetailedSsrPlugin;