UNPKG

salsify-experiences-sdk

Version:

SDK to be used by commerce websites to implement product experiences.

50 lines 1.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLogger = void 0; const log_service_transport_1 = __importDefault(require("./log-service-transport")); const devTools_1 = require("../devTools"); const version_1 = require("../../version"); const runtime_1 = require("../runtime"); const createLogger = (context, settings) => new DefaultLogger(context, settings); exports.createLogger = createLogger; class DefaultLogger { #context; #settings; #transport; constructor(context, settings) { this.#context = context; this.#settings = settings; this.#transport = new log_service_transport_1.default(this.#context, this.#settings); } log(code, properties = {}) { const context = { version: version_1.SDK_VERSION }; if ((0, runtime_1.inBrowser)()) { context['page'] = { url: window.location.href, title: window.document.title, scrollPosition: window.scrollY, }; } else { context['serverSide'] = true; } if ((0, devTools_1.useConsoleLogger)()) { // eslint-disable-next-line no-console console.log(`SXP SDK:`, { clientId: this.#context.clientId, sessionId: this.#context.sessionId, pageSessionId: this.#context.pageSessionId, code, properties, context, }); } else { this.#transport.log(code, properties, context); } } } //# sourceMappingURL=index.js.map