UNPKG

@embrace-io/web-sdk

Version:
54 lines (53 loc) 1.82 kB
import { generateUUID } from "../../utils/generateUUID.js"; import { EMBRACE_EXTERNAL_USER_ID_KEY, EMBRACE_USER_ID_STORAGE_KEY } from "./constants.js"; import { isUserId } from "./types.js"; import { diag } from "@opentelemetry/api"; //#region src/managers/EmbraceUserManager/EmbraceUserManager.ts var EmbraceUserManager = class { _diag; _storage; _embraceUserId = null; constructor({ diag: diagParam, storage }) { this._diag = diagParam ?? diag.createComponentLogger({ namespace: "EmbraceUserManager" }); this._storage = storage; this._initialSetup(); } getEmbraceUserId() { return this._embraceUserId || this._generateNewEmbraceUserId(); } setEmbraceUserId(userId) { this._embraceUserId = userId; this._storage.setItem(EMBRACE_USER_ID_STORAGE_KEY, userId); } clearEmbraceUserId() { this._embraceUserId = null; this._storage.removeItem(EMBRACE_USER_ID_STORAGE_KEY); } _initialSetup() { const embraceUserId = this._storage.getItem(EMBRACE_USER_ID_STORAGE_KEY); if (!embraceUserId) this._diag.debug("No existing user found in storage, creating a new one"); else if (isUserId(embraceUserId)) this._embraceUserId = embraceUserId; else { this._diag.warn("Invalid embrace user id, generating a new one"); this.clearEmbraceUserId(); } if (!this._embraceUserId) this._embraceUserId = this._generateNewEmbraceUserId(); } _generateNewEmbraceUserId() { const newUserId = generateUUID(); this.setEmbraceUserId(newUserId); return newUserId; } getUserId() { return this._storage.getItem(EMBRACE_EXTERNAL_USER_ID_KEY); } setUserId(userId) { this._storage.setItem(EMBRACE_EXTERNAL_USER_ID_KEY, userId); } clearUserId() { this._storage.removeItem(EMBRACE_EXTERNAL_USER_ID_KEY); } }; //#endregion export { EmbraceUserManager }; //# sourceMappingURL=EmbraceUserManager.js.map