@ninetailed/experience.js-plugin-ssr
Version:
Ninetailed SDK plugin for SSR
43 lines (40 loc) • 1.35 kB
JavaScript
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 };