UNPKG

@ninetailed/experience.js-plugin-ssr

Version:
43 lines (40 loc) 1.35 kB
import Cookies from 'js-cookie'; import { NINETAILED_ANONYMOUS_ID_COOKIE, ANONYMOUS_ID, PROFILE_CHANGE, PROFILE_RESET } from '@ninetailed/experience.js-shared'; import { NinetailedPlugin } from '@ninetailed/experience.js-plugin-analytics'; class NinetailedSsrPlugin extends NinetailedPlugin { constructor({ cookie } = {}) { super(); this.name = 'ninetailed:ssr'; this.cookieDomain = void 0; this.cookieExpires = void 0; this.initialize = ({ instance }) => { const anonymousId = Cookies.get(NINETAILED_ANONYMOUS_ID_COOKIE); if (anonymousId) { instance.storage.setItem(ANONYMOUS_ID, anonymousId); } }; this[PROFILE_CHANGE] = ({ payload }) => { if (payload.profile) { const cookieAttributes = { expires: this.cookieExpires || 365 }; if (this.cookieDomain) { cookieAttributes.domain = this.cookieDomain; } Cookies.set(NINETAILED_ANONYMOUS_ID_COOKIE, payload.profile.id, cookieAttributes); } }; this[PROFILE_RESET] = () => { Cookies.remove(NINETAILED_ANONYMOUS_ID_COOKIE); }; this.cookieDomain = cookie == null ? void 0 : cookie.domain; this.cookieExpires = cookie == null ? void 0 : cookie.expires; } } export { NinetailedSsrPlugin, NinetailedSsrPlugin as default };