@embrace-io/web-sdk
Version:
1 lines • 2.18 kB
Source Map (JSON)
{"version":3,"file":"PageAPI.cjs","names":["NoOpPageManager","ProxyPageManager","createSafeProxy","diag"],"sources":["../../../../src/api-page/api/PageAPI/PageAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { PageManager } from '../../manager/index.ts';\nimport { NoOpPageManager, ProxyPageManager } from '../../manager/index.ts';\n\n/**\n * Public interface for PageAPI including SDK-internal methods.\n */\nexport interface PageAPIInstance extends PageManager {\n /** @internal SDK use only */\n setGlobalPageManager(pageManager: PageManager): void;\n /** @internal SDK use only */\n getPageManager(): PageManager;\n}\n\nconst NOOP_PAGE_MANAGER = new NoOpPageManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class PageAPI {\n private static _instance?: PageAPIInstance;\n\n public static getInstance(): PageAPIInstance {\n if (!PageAPI._instance) {\n const proxyManager = new ProxyPageManager();\n\n const safeManager = createSafeProxy(\n proxyManager,\n NOOP_PAGE_MANAGER,\n diag.createComponentLogger({ namespace: 'PageAPI' }),\n INTERNAL_METHODS,\n );\n\n PageAPI._instance = Object.assign(safeManager, {\n setGlobalPageManager(pageManager: PageManager): void {\n proxyManager.setDelegate(pageManager);\n },\n getPageManager(): PageManager {\n return proxyManager;\n },\n }) as PageAPIInstance;\n }\n\n return PageAPI._instance;\n }\n\n public static resetInstance(): void {\n PageAPI._instance = undefined;\n }\n}\n"],"mappings":";;;;;;AAeA,MAAM,oBAAoB,IAAIA,yDAAAA,gBAAgB;AAC9C,MAAM,mCAAmB,IAAI,IAAI,CAAC,eAAe,aAAa,CAAC;AAE/D,IAAa,UAAb,MAAa,QAAQ;CACnB,OAAe;CAEf,OAAc,cAA+B;EAC3C,IAAI,CAAC,QAAQ,WAAW;GACtB,MAAM,eAAe,IAAIC,2DAAAA,iBAAiB;GAE1C,MAAM,cAAcC,8CAAAA,gBAClB,cACA,mBACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,UAAU,CAAC,GACnD,gBACF;GAEA,QAAQ,YAAY,OAAO,OAAO,aAAa;IAC7C,qBAAqB,aAAgC;KACnD,aAAa,YAAY,WAAW;IACtC;IACA,iBAA8B;KAC5B,OAAO;IACT;GACF,CAAC;EACH;EAEA,OAAO,QAAQ;CACjB;CAEA,OAAc,gBAAsB;EAClC,QAAQ,YAAY,KAAA;CACtB;AACF"}