salsify-experiences-sdk
Version:
SDK to be used by commerce websites to implement product experiences.
50 lines • 1.77 kB
JavaScript
;
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