@wxcc-desktop/sdk 1.2.6 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +18 -391
  2. package/dist/index.js +1 -0
  3. package/dist/types/index.d.ts +21 -0
  4. package/dist/types/jsapi/actions-jsapi.d.ts +33 -0
  5. package/dist/types/jsapi/agent-contact-jsapi.d.ts +430 -0
  6. package/dist/types/jsapi/agent-state-info-jsapi.d.ts +88 -0
  7. package/dist/types/jsapi/common/_logger.d.ts +4 -0
  8. package/dist/types/jsapi/common/_service-checker.d.ts +12 -0
  9. package/dist/types/jsapi/common/_service-events.d.ts +31 -0
  10. package/dist/types/jsapi/config-jsapi.d.ts +26 -0
  11. package/dist/types/jsapi/dialer-jsapi.d.ts +73 -0
  12. package/dist/types/jsapi/i18n-jsapi.d.ts +23 -0
  13. package/dist/types/jsapi/logger-jsapi.d.ts +19 -0
  14. package/dist/types/jsapi/screenpop-jsapi.d.ts +29 -0
  15. package/dist/types/jsapi/shortcut-key-jsapi.d.ts +67 -0
  16. package/dist/types/sdk.d.ts +1 -0
  17. package/package.json +5 -60
  18. package/.eslintignore +0 -5
  19. package/.eslintrc.js +0 -22
  20. package/.prettierignore +0 -5
  21. package/.prettierrc +0 -5
  22. package/README_PUBLISH.md +0 -36
  23. package/jenkins-automation/MergePipeline.groovy +0 -143
  24. package/jest.config.js +0 -15
  25. package/sonar-project.properties +0 -17
  26. package/src/[sandbox]/README.md +0 -55
  27. package/src/[sandbox]/assets/i18n/de/app.json +0 -6
  28. package/src/[sandbox]/assets/i18n/en/app.json +0 -6
  29. package/src/[sandbox]/assets/i18n/widget-using-js-api/de/widget-using-js-api.json +0 -5
  30. package/src/[sandbox]/assets/i18n/widget-using-js-api/en/widget-using-js-api.json +0 -5
  31. package/src/[sandbox]/favicon.ico +0 -0
  32. package/src/[sandbox]/index.html +0 -9
  33. package/src/[sandbox]/sandbox-config.ts +0 -23
  34. package/src/[sandbox]/sandbox-mock.ts +0 -218
  35. package/src/[sandbox]/sandbox.ts +0 -164
  36. package/src/[sandbox]/widget-using-js-api.ts +0 -658
  37. package/src/global.d.ts +0 -5
  38. package/src/index.ts +0 -101
  39. package/src/jsapi/actions-jsapi.test.ts +0 -155
  40. package/src/jsapi/actions-jsapi.ts +0 -410
  41. package/src/jsapi/agent-contact-jsapi.test.ts +0 -217
  42. package/src/jsapi/agent-contact-jsapi.ts +0 -275
  43. package/src/jsapi/agent-state-info-jsapi.test.ts +0 -176
  44. package/src/jsapi/agent-state-info-jsapi.ts +0 -288
  45. package/src/jsapi/common/_logger.test.ts +0 -16
  46. package/src/jsapi/common/_logger.ts +0 -9
  47. package/src/jsapi/common/_service-checker.test.ts +0 -44
  48. package/src/jsapi/common/_service-checker.ts +0 -28
  49. package/src/jsapi/common/_service-events.test.ts +0 -122
  50. package/src/jsapi/common/_service-events.ts +0 -156
  51. package/src/jsapi/config-jsapi.test.ts +0 -78
  52. package/src/jsapi/config-jsapi.ts +0 -106
  53. package/src/jsapi/dialer-jsapi.test.ts +0 -101
  54. package/src/jsapi/dialer-jsapi.ts +0 -116
  55. package/src/jsapi/i18n-jsapi.test.ts +0 -62
  56. package/src/jsapi/i18n-jsapi.ts +0 -77
  57. package/src/jsapi/logger-jsapi.test.ts +0 -45
  58. package/src/jsapi/logger-jsapi.ts +0 -62
  59. package/src/jsapi/screenpop-jsapi.test.ts +0 -80
  60. package/src/jsapi/screenpop-jsapi.ts +0 -100
  61. package/src/jsapi/shortcut-key-jsapi.test.ts +0 -88
  62. package/src/jsapi/shortcut-key-jsapi.ts +0 -112
  63. package/src/sdk.ts +0 -3
  64. package/src/tsconfig.json +0 -18
  65. package/tsconfig.json +0 -13
  66. package/webpack.config.dev.server.ts +0 -12
  67. package/webpack.config.ts +0 -134
@@ -1,78 +0,0 @@
1
- import { AgentxServices, SERVICE } from "@wxcc-desktop/sdk-types";
2
- import { ConfigJsApi, createConfigJsApi } from "./config-jsapi";
3
-
4
- jest.mock("@wxcc-desktop/sdk-types", () => {
5
- const agentx_services_mock = {
6
- SERVICE: {
7
- isInited: false,
8
- init: async (accessToken: string) => {
9
- agentx_services_mock.SERVICE.isInited = true;
10
- }
11
- } as AgentxServices
12
- };
13
- return agentx_services_mock;
14
- });
15
-
16
- describe("Config JSAPI", () => {
17
- let config: ConfigJsApi;
18
-
19
- beforeEach(() => {
20
- config = createConfigJsApi(SERVICE);
21
-
22
- // deferred service mock init
23
- setTimeout(() => (SERVICE as AgentxServices).init("fake-token"));
24
- });
25
-
26
- it("creates", () => {
27
- expect(config).toBeDefined();
28
- expect(config["logger"]).toBeDefined();
29
- });
30
-
31
- it("inits", async () => {
32
- let isInited = false;
33
- const listener = () => {
34
- isInited = true;
35
- config.removeEventListener("inited", listener);
36
- };
37
- config.addEventListener("inited", listener);
38
-
39
- await config.init();
40
-
41
- expect(isInited).toBeTruthy();
42
- });
43
-
44
- it("cleanups", async () => {
45
- await config.init();
46
-
47
- let isCleaned = false;
48
- const listener = () => {
49
- isCleaned = true;
50
- config.removeEventListener("cleaned", listener);
51
- };
52
- config.addEventListener("cleaned", listener);
53
-
54
- config.cleanup();
55
-
56
- expect(isCleaned).toBeTruthy();
57
- });
58
-
59
- it("gets client locale", async () => {
60
- const windowNavigatorLanguagesMock = jest.spyOn(window.navigator, "language", "get");
61
- windowNavigatorLanguagesMock.mockReturnValue("en-US");
62
-
63
- expect(config.clientLocale).toBe("en-US");
64
- });
65
-
66
- it("waits", async () => {
67
- let waiter = false;
68
- const waitCb = () => {
69
- return waiter;
70
- };
71
-
72
- setTimeout(() => (waiter = true));
73
-
74
- await config["waitUntil"](() => waitCb());
75
-
76
- expect(waiter).toBeTruthy();
77
- });
78
- });
@@ -1,106 +0,0 @@
1
- import { AgentxService } from "@wxcc-desktop/sdk-types";
2
- import EventEmitter from "event-emitter";
3
- import { logger } from "../sdk";
4
- import { createJsApiLogger } from "./common/_logger";
5
-
6
- const SERVICE_INITED_CHECK_TIMEOUT = 1000 / 30;
7
-
8
- type Listeners = {
9
- //
10
- inited: () => void; // Fires after Desktop.config.init(...)
11
- cleaned: () => void; // Fires after Desktop.config.cleanup(...)
12
- };
13
- type Events = keyof Listeners;
14
-
15
- export class ConfigJsApi {
16
- private readonly emitter = EventEmitter();
17
-
18
- private readonly logger: ReturnType<typeof createJsApiLogger>;
19
-
20
- private agentxSERVICE?: AgentxService;
21
-
22
- private async waitUntil(cb: () => boolean) {
23
- if (typeof cb === "function") {
24
- /// Delay
25
- await new Promise(resolve => setTimeout(resolve, SERVICE_INITED_CHECK_TIMEOUT));
26
-
27
- // Check
28
- const res = cb();
29
- // Iterate
30
- !res && (await this.waitUntil(cb));
31
- }
32
- }
33
-
34
- constructor(config: { logger: ReturnType<typeof createJsApiLogger>; SERVICE: AgentxService }) {
35
- this.logger = config.logger;
36
- this.agentxSERVICE = config.SERVICE;
37
- }
38
-
39
- private async checkService(SERVICE: AgentxService) {
40
- if (SERVICE) {
41
- if (!SERVICE.isInited) {
42
- this.logger.warn("SERVICE is not inited. Awaiting it's initAgentxServices(...)...");
43
-
44
- // Awaiting service becomes inited
45
- await this.waitUntil(() => SERVICE!.isInited);
46
- }
47
-
48
- this.logger.info("SERVICE is inited. Continuing...");
49
-
50
- // Notify all => config ready
51
- this.emit("inited");
52
- //
53
- } else {
54
- this.logger.error("SERVICE is not defiend...");
55
- }
56
- }
57
-
58
- private emit<T extends Events>(eventName: T, ...args: Parameters<Listeners[T]>) {
59
- this.emitter.emit(eventName, ...args);
60
- }
61
-
62
- async init() {
63
- /**
64
- * WARNING! Temporary injecting SERVICE into constructor via global object
65
- */
66
- if (this.agentxSERVICE) {
67
- await this.checkService(this.agentxSERVICE);
68
- } else {
69
- this.logger.error("SERVICE is not defined...");
70
- }
71
- }
72
-
73
- cleanup() {
74
- this.agentxSERVICE = undefined;
75
-
76
- // Notify all => config cleaned
77
- this.emit("cleaned");
78
-
79
- this.logger.info(`Cleaned`);
80
- }
81
-
82
- get clientLocale() {
83
- if (window.navigator.languages != undefined) {
84
- return window.navigator.languages[0];
85
- }
86
- return window.navigator.language;
87
- }
88
-
89
- // Events
90
- addEventListener<T extends Events>(eventName: T, listener: Listeners[T]) {
91
- this.emitter.on(eventName, listener);
92
- }
93
-
94
- removeEventListener<T extends Events>(eventName: T, listener: Listeners[T]) {
95
- this.emitter.off(eventName, listener);
96
- }
97
- }
98
-
99
- const configJsApiLogger = createJsApiLogger(logger, "[Config JSAPI] =>");
100
-
101
- // Standalone init
102
- export const createConfigJsApi = (SERVICE: AgentxService) =>
103
- new ConfigJsApi({
104
- logger: configJsApiLogger,
105
- SERVICE
106
- });
@@ -1,101 +0,0 @@
1
- import { AgentxServices, SERVICE } from "@wxcc-desktop/sdk-types";
2
- import { createDialerJsApi } from "./dialer-jsapi";
3
-
4
- jest.mock("@wxcc-desktop/sdk-types", () => {
5
- const agentx_services_mock = {
6
- SERVICE: {
7
- isInited: false,
8
- init: async (accessToken: string) => {
9
- agentx_services_mock.SERVICE.isInited = true;
10
- },
11
- aqm: ({
12
- dialer: {
13
- startOutdial: jest.fn().mockImplementation(async p => p),
14
- updateCadVariables: jest.fn().mockImplementation(async p => p),
15
- eOutdialFailed: {
16
- listen: jest.fn(),
17
- listenOnce: jest.fn()
18
- }
19
- }
20
- } as unknown) as AgentxServices["aqm"]
21
- } as AgentxServices
22
- };
23
- return agentx_services_mock;
24
- });
25
-
26
- describe("Dialer JSAPI", () => {
27
- let dialer: ReturnType<typeof createDialerJsApi>;
28
-
29
- beforeEach(() => {
30
- (SERVICE as AgentxServices).init("fake-token");
31
-
32
- dialer = createDialerJsApi();
33
-
34
- dialer.init(SERVICE);
35
- });
36
-
37
- it("creates", () => {
38
- expect(dialer).toBeDefined();
39
- expect(dialer["logger"]).toBeDefined();
40
- expect(dialer["serviceChecker"]).toBeDefined();
41
- expect(dialer["aqmEvents"]).toBeDefined();
42
- });
43
-
44
- it("inits", () => {
45
- expect(dialer["checkService"]()).toBeTruthy();
46
- expect(dialer["aqmEvents"].isInited).toBeTruthy();
47
- });
48
-
49
- it("checks service", () => {
50
- dialer["serviceChecker"].check = jest.fn();
51
- dialer["checkService"]();
52
-
53
- expect(dialer["serviceChecker"].check).toHaveBeenCalled();
54
- });
55
-
56
- it("calls", async () => {
57
- const r = { test: "TEST" } as any;
58
-
59
- {
60
- const p = await dialer.startOutdial(r);
61
- expect(SERVICE.aqm.dialer.startOutdial).toHaveBeenCalledWith(r);
62
- expect(p).toEqual(r);
63
- }
64
-
65
- {
66
- const p = await dialer.updateCadVariables(r);
67
- expect(SERVICE.aqm.dialer.updateCadVariables).toHaveBeenCalledWith(r);
68
- expect(p).toEqual(r);
69
- }
70
- });
71
-
72
- it("listens", () => {
73
- const listener = () => {};
74
- dialer.addEventListener("eOutdialFailed", listener);
75
- expect(dialer["aqmEvents"]["listeners"].size).toBe(1);
76
- expect(SERVICE.aqm.dialer.eOutdialFailed.listen).toHaveBeenCalledWith(listener);
77
- dialer.removeEventListener("eOutdialFailed", listener);
78
- expect(dialer["aqmEvents"]["listeners"].size).toBe(0);
79
- });
80
-
81
- it("listensOnce", () => {
82
- const listener = () => {};
83
- dialer.addOnceEventListener("eOutdialFailed", listener);
84
- expect(dialer["aqmEvents"]["listenersOnce"].size).toBe(1);
85
- expect(SERVICE.aqm.dialer.eOutdialFailed.listenOnce).toHaveBeenCalledWith(listener);
86
- dialer.removeOnceEventListener("eOutdialFailed", listener);
87
- expect(dialer["aqmEvents"]["listenersOnce"].size).toBe(0);
88
- });
89
-
90
- it("removesAllListeners", () => {
91
- const listener1 = () => {};
92
- const listener2 = () => {};
93
- dialer.addEventListener("eOutdialFailed", listener1);
94
- dialer.addOnceEventListener("eOutdialFailed", listener2);
95
- expect(dialer["aqmEvents"]["listeners"].size).toBe(1);
96
- expect(dialer["aqmEvents"]["listenersOnce"].size).toBe(1);
97
- dialer.removeAllEventListeners();
98
- expect(dialer["aqmEvents"]["listeners"].size).toBe(0);
99
- expect(dialer["aqmEvents"]["listenersOnce"].size).toBe(0);
100
- });
101
- });
@@ -1,116 +0,0 @@
1
- import { AgentxService, Service } from "@wxcc-desktop/sdk-types";
2
- import { logger } from "../sdk";
3
- import { createJsApiLogger } from "./common/_logger";
4
- import { createServiceChecker } from "./common/_service-checker";
5
- import { AqmServiceEntityEvents, createServiceEvents } from "./common/_service-events";
6
-
7
- type Listeners = {
8
- eOutdialFailed: Parameters<AgentxService["aqm"]["dialer"]["eOutdialFailed"]["listen"]>[0];
9
- };
10
-
11
- type AqmDialerEvents = AqmServiceEntityEvents<Listeners>;
12
-
13
- type Config = {
14
- logger: ReturnType<typeof createJsApiLogger>;
15
- serviceChecker: ReturnType<typeof createServiceChecker>;
16
- aqmEvents: AqmDialerEvents;
17
- };
18
-
19
- export class DialerJsApi {
20
- private readonly logger: Config["logger"];
21
- private readonly serviceChecker: Config["serviceChecker"];
22
- private readonly aqmEvents: Config["aqmEvents"];
23
-
24
- private SERVICE?: AgentxService;
25
-
26
- private checkService() {
27
- return this.serviceChecker.check(this.SERVICE);
28
- }
29
-
30
- constructor(config: Config) {
31
- this.logger = config.logger;
32
- this.aqmEvents = config.aqmEvents;
33
- this.serviceChecker = config.serviceChecker;
34
- }
35
-
36
- //
37
- init(SERVICE?: AgentxService) {
38
- if (SERVICE) {
39
- this.SERVICE = SERVICE;
40
- }
41
-
42
- if (!this.checkService()) {
43
- return;
44
- }
45
-
46
- this.aqmEvents.init({
47
- aqmServiceEntity: this.SERVICE!.aqm.dialer,
48
- aqmServiceEntityString: "SERVICE.aqm.dialer"
49
- });
50
-
51
- this.logger.info("Inited");
52
- }
53
-
54
- cleanup() {
55
- this.aqmEvents.cleanup();
56
-
57
- this.SERVICE = undefined;
58
-
59
- this.logger.info("Cleaned");
60
- }
61
-
62
- // data calls
63
- async startOutdial(p: { data: Service.Aqm.Dialer.tasks }) {
64
- if (!this.checkService()) {
65
- return;
66
- }
67
- return this.SERVICE?.aqm.dialer.startOutdial(p);
68
- }
69
-
70
- async updateCadVariables(p: { interactionId: string; data: Service.Aqm.Dialer.updateCadPayLoad }) {
71
- if (!this.checkService()) {
72
- return;
73
- }
74
- return this.SERVICE?.aqm.dialer.updateCadVariables(p);
75
- }
76
-
77
- // data events
78
- addEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
79
- if (!this.checkService()) {
80
- return;
81
- }
82
- this.aqmEvents.addEventListener(eventName, listener);
83
- }
84
-
85
- addOnceEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
86
- if (!this.checkService()) {
87
- return;
88
- }
89
- this.aqmEvents.addOnceEventListener(eventName, listener);
90
- }
91
-
92
- removeEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
93
- this.aqmEvents.removeEventListener(eventName, listener);
94
- }
95
-
96
- removeOnceEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
97
- this.aqmEvents.removeOnceEventListener(eventName, listener);
98
- }
99
-
100
- removeAllEventListeners() {
101
- this.aqmEvents.removeAllEventListeners();
102
- }
103
- }
104
-
105
- const dialerJsApiLogger = createJsApiLogger(logger, "[Dialer JSAPI] =>");
106
- const aqmServiceDialerJsApiLogger = createJsApiLogger(dialerJsApiLogger, "[AqmServiceEvents: Dialer] =>");
107
-
108
- // Standalone init
109
- export const createDialerJsApi = () =>
110
- new DialerJsApi({
111
- logger: dialerJsApiLogger,
112
- aqmEvents: createServiceEvents<Listeners>({
113
- logger: aqmServiceDialerJsApiLogger
114
- }),
115
- serviceChecker: createServiceChecker({ logger: dialerJsApiLogger })
116
- });
@@ -1,62 +0,0 @@
1
- import { AgentxServices, SERVICE } from "@wxcc-desktop/sdk-types";
2
- import { createI18NJsApi } from "./i18n-jsapi";
3
-
4
- jest.mock("@wxcc-desktop/sdk-types", () => {
5
- const agentx_services_mock = {
6
- SERVICE: {
7
- isInited: true,
8
- i18n: ({
9
- DEFAULT_INIT_OPTIONS: {
10
- TEST: true
11
- }
12
- } as unknown) as AgentxServices["i18n"]
13
- } as AgentxServices
14
- };
15
- return agentx_services_mock;
16
- });
17
-
18
- describe("I18n", () => {
19
- let i18n: ReturnType<typeof createI18NJsApi>;
20
- beforeEach(() => {
21
- i18n = createI18NJsApi();
22
- i18n.init(SERVICE);
23
- });
24
-
25
- it("creates", () => {
26
- expect(i18n).toBeDefined();
27
- expect(i18n["logger"]).toBeDefined();
28
- expect(i18n["serviceChecker"]).toBeDefined();
29
- });
30
-
31
- it("inits", () => {
32
- expect(i18n["checkService"]()).toBeTruthy();
33
- });
34
-
35
- it("checks service", () => {
36
- i18n["serviceChecker"].check = jest.fn();
37
- i18n["checkService"]();
38
-
39
- expect(i18n["serviceChecker"].check).toHaveBeenCalled();
40
- });
41
-
42
- it("creates i18next instance", () => {
43
- const i18next = i18n.createInstance();
44
-
45
- expect(i18next).toBeDefined();
46
- });
47
-
48
- it("creates mixin instance", () => {
49
- const i18next = i18n.createInstance();
50
- const i18nMixin = i18n.createMixin({ i18n: i18next });
51
-
52
- expect(i18nMixin).toBeDefined();
53
- });
54
-
55
- it("gets default options", () => {
56
- expect(i18n.DEFAULT_INIT_OPTIONS).toEqual({ TEST: true });
57
- });
58
-
59
- it("merges init options", () => {
60
- expect(i18n.getMergedInitOptions({ debug: true }, { lng: "en-US" })).toEqual({ debug: true, lng: "en-US" });
61
- });
62
- });
@@ -1,77 +0,0 @@
1
- import { I18N } from "@uuip/unified-ui-platform-sdk";
2
- import { AgentxService } from "@wxcc-desktop/sdk-types";
3
- import { logger } from "../sdk";
4
- import { createJsApiLogger } from "./common/_logger";
5
- import { createServiceChecker } from "./common/_service-checker";
6
-
7
- type Config = {
8
- logger: ReturnType<typeof createJsApiLogger>;
9
- serviceChecker: ReturnType<typeof createServiceChecker>;
10
- };
11
-
12
- export class I18NJsApi {
13
- private readonly logger: Config["logger"];
14
-
15
- private readonly serviceChecker: Config["serviceChecker"];
16
-
17
- private SERVICE?: AgentxService;
18
-
19
- private checkService() {
20
- return this.serviceChecker.check(this.SERVICE);
21
- }
22
-
23
- constructor(config: Config) {
24
- this.logger = config.logger;
25
- this.serviceChecker = config.serviceChecker;
26
- }
27
-
28
- init(SERVICE?: AgentxService) {
29
- if (SERVICE) {
30
- this.SERVICE = SERVICE;
31
- }
32
-
33
- if (!this.checkService()) {
34
- return;
35
- }
36
-
37
- this.logger.info("Inited");
38
- }
39
-
40
- cleanup() {
41
- this.SERVICE = undefined;
42
-
43
- this.logger.info("Cleaned");
44
- }
45
-
46
- // i18next instance
47
- createInstance(createServiceOptions?: I18N.CreateServiceOptions) {
48
- return I18N.createService(createServiceOptions);
49
- }
50
-
51
- // i18next instance powered LitElement mixin
52
- createMixin(createMixinOptions: I18N.CreateMixinOptions) {
53
- return I18N.createMixin(createMixinOptions);
54
- }
55
-
56
- get DEFAULT_INIT_OPTIONS() {
57
- if (!this.checkService()) {
58
- return;
59
- }
60
- return this.SERVICE?.i18n.DEFAULT_INIT_OPTIONS;
61
- }
62
-
63
- getMergedInitOptions(...initOptions: I18N.InitOptions[]) {
64
- return I18N.mergeServiceInitOptions(...initOptions);
65
- }
66
- }
67
-
68
- const i18nJsApiLogger = createJsApiLogger(logger, "[I18N JSAPI] =>");
69
-
70
- // Standalone init
71
- export const createI18NJsApi = () =>
72
- new I18NJsApi({
73
- // LOGGER
74
- logger: i18nJsApiLogger,
75
- // CHECK
76
- serviceChecker: createServiceChecker({ logger: i18nJsApiLogger })
77
- });
@@ -1,45 +0,0 @@
1
- import { Logger } from "@uuip/unified-ui-platform-sdk";
2
- import { createLoggerJsApi, LoggerJsApi } from "./logger-jsapi";
3
-
4
- describe("Logger JSAPI", () => {
5
- let logger: LoggerJsApi;
6
-
7
- beforeEach(() => {
8
- logger = createLoggerJsApi();
9
- });
10
-
11
- it("creates", () => {
12
- expect(logger).toBeDefined();
13
- expect(logger["logger"]).toBeDefined();
14
- });
15
-
16
- it("createLogger", () => {
17
- const clientLogger = logger.createLogger("TEST1");
18
-
19
- expect(clientLogger.prefix).toBe("TEST1");
20
- });
21
-
22
- it("get logs", () => {
23
- const clientLogger = logger.createLogger("TEST2");
24
-
25
- clientLogger.info("ttt");
26
-
27
- expect(logger.getLogsCollection("TEST2")?.length).toBe(1);
28
- expect(logger.getLogsJsonUrl("TEST2")).toContain("data:text/plain;charset=utf-8,");
29
- expect(logger.getLogsTextUrl("TEST2")).toContain("data:text/plain;charset=utf-8,");
30
- });
31
-
32
- it("browser downloads", () => {
33
- const clientLogger = logger.createLogger("TEST3");
34
-
35
- clientLogger.info("bbb");
36
-
37
- const Logger_POOL_browserDownloadPrefixedLogsJson = jest.spyOn(Logger.POOL, "browserDownloadPrefixedLogsJson");
38
- logger.browserDownloadLogsJson("TEST3");
39
- expect(Logger_POOL_browserDownloadPrefixedLogsJson).toHaveBeenCalledWith("TEST3");
40
-
41
- const Logger_POOL_browserDownloadPrefixedLogsText = jest.spyOn(Logger.POOL, "browserDownloadPrefixedLogsText");
42
- logger.browserDownloadLogsText("TEST3");
43
- expect(Logger_POOL_browserDownloadPrefixedLogsText).toHaveBeenCalledWith("TEST3");
44
- });
45
- });
@@ -1,62 +0,0 @@
1
- import { createLogger, Logger } from "@uuip/unified-ui-platform-sdk";
2
- import { logger } from "../sdk";
3
- import { createJsApiLogger } from "./common/_logger";
4
-
5
- type Config = { logger: ReturnType<typeof createJsApiLogger> };
6
-
7
- export class LoggerJsApi {
8
- private readonly logger: Config["logger"];
9
- private readonly clientLoggers: Map<string, Logger.Service> = new Map<string, Logger.Service>();
10
-
11
- constructor(config: Config) {
12
- this.logger = config.logger;
13
- }
14
-
15
- createLogger(prefix: string) {
16
- const clientLogger = createLogger(prefix);
17
- this.clientLoggers.set(prefix, clientLogger);
18
- this.logger.info(`Client logger created: "${prefix}"`);
19
- return clientLogger;
20
- }
21
-
22
- cleanupLogs(prefix: string) {
23
- if (this.clientLoggers.has(prefix)) {
24
- Logger.POOL.cleanupPrefixedLogs(prefix);
25
- }
26
- }
27
-
28
- browserDownloadLogsJson(prefix: string) {
29
- if (this.clientLoggers.has(prefix)) {
30
- Logger.POOL.browserDownloadPrefixedLogsJson(prefix);
31
- }
32
- }
33
-
34
- browserDownloadLogsText(prefix: string) {
35
- if (this.clientLoggers.has(prefix)) {
36
- Logger.POOL.browserDownloadPrefixedLogsText(prefix);
37
- }
38
- }
39
-
40
- getLogsCollection(prefix: string) {
41
- if (this.clientLoggers.has(prefix)) {
42
- return Logger.POOL.getPrefixedLogsCollection(prefix);
43
- }
44
- }
45
-
46
- getLogsJsonUrl(prefix: string) {
47
- if (this.clientLoggers.has(prefix)) {
48
- return Logger.POOL.getPrefixedLogsJsonUrl(prefix);
49
- }
50
- }
51
-
52
- getLogsTextUrl(prefix: string) {
53
- if (this.clientLoggers.has(prefix)) {
54
- return Logger.POOL.getPrefixedLogsTextUrl(prefix);
55
- }
56
- }
57
- }
58
-
59
- const loggerJsApiLogger = createJsApiLogger(logger, "[Logger JSAPI] =>");
60
-
61
- // Standalone init
62
- export const createLoggerJsApi = () => new LoggerJsApi({ logger: loggerJsApiLogger });