@embrace-io/web-sdk
Version:
32 lines (31 loc) • 1.14 kB
JavaScript
import { createSafeProxy } from "../../../utils/createSafeProxy/createSafeProxy.js";
import { NoOpPageManager } from "../../manager/NoOpPageManager/NoOpPageManager.js";
import { ProxyPageManager } from "../../manager/ProxyPageManager/ProxyPageManager.js";
import { diag } from "@opentelemetry/api";
//#region src/api-page/api/PageAPI/PageAPI.ts
const NOOP_PAGE_MANAGER = new NoOpPageManager();
const INTERNAL_METHODS = /* @__PURE__ */ new Set(["setDelegate", "getDelegate"]);
var PageAPI = class PageAPI {
static _instance;
static getInstance() {
if (!PageAPI._instance) {
const proxyManager = new ProxyPageManager();
const safeManager = createSafeProxy(proxyManager, NOOP_PAGE_MANAGER, diag.createComponentLogger({ namespace: "PageAPI" }), INTERNAL_METHODS);
PageAPI._instance = Object.assign(safeManager, {
setGlobalPageManager(pageManager) {
proxyManager.setDelegate(pageManager);
},
getPageManager() {
return proxyManager;
}
});
}
return PageAPI._instance;
}
static resetInstance() {
PageAPI._instance = void 0;
}
};
//#endregion
export { PageAPI };
//# sourceMappingURL=PageAPI.js.map