@featurevisor/sdk 0.47.3 → 0.47.5

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.
@@ -237,42 +237,42 @@ FN:38,(anonymous_4)
237
237
  FN:44,(anonymous_5)
238
238
  FN:49,(anonymous_6)
239
239
  FNF:7
240
- FNH:5
241
- FNDA:17,(anonymous_0)
242
- FNDA:6,(anonymous_1)
243
- FNDA:1,(anonymous_2)
244
- FNDA:0,(anonymous_3)
245
- FNDA:0,(anonymous_4)
240
+ FNH:7
241
+ FNDA:25,(anonymous_0)
242
+ FNDA:20,(anonymous_1)
243
+ FNDA:7,(anonymous_2)
244
+ FNDA:2,(anonymous_3)
245
+ FNDA:2,(anonymous_4)
246
246
  FNDA:14,(anonymous_5)
247
247
  FNDA:6,(anonymous_6)
248
- DA:7,1
249
- DA:11,17
250
- DA:15,6
251
- DA:16,5
252
- DA:19,6
253
- DA:23,1
254
- DA:24,0
255
- DA:27,1
256
- DA:29,1
257
- DA:30,1
258
- DA:35,0
259
- DA:36,0
260
- DA:38,0
261
- DA:39,0
248
+ DA:7,2
249
+ DA:11,25
250
+ DA:15,20
251
+ DA:16,17
252
+ DA:19,20
253
+ DA:23,7
254
+ DA:24,1
255
+ DA:27,6
256
+ DA:29,6
257
+ DA:30,6
258
+ DA:35,2
259
+ DA:36,1
260
+ DA:38,1
261
+ DA:39,2
262
262
  DA:45,14
263
263
  DA:46,9
264
264
  DA:49,5
265
265
  DA:50,6
266
266
  LF:18
267
- LH:13
268
- BRDA:15,0,0,5
269
- BRDA:23,1,0,0
270
- BRDA:29,2,0,1
271
- BRDA:35,3,0,0
272
- BRDA:35,3,1,0
267
+ LH:18
268
+ BRDA:15,0,0,17
269
+ BRDA:23,1,0,1
270
+ BRDA:29,2,0,6
271
+ BRDA:35,3,0,1
272
+ BRDA:35,3,1,1
273
273
  BRDA:45,4,0,9
274
274
  BRF:6
275
- BRH:3
275
+ BRH:6
276
276
  end_of_record
277
277
  TN:
278
278
  SF:src/feature.ts
@@ -1077,57 +1077,57 @@ FN:76,(anonymous_6)
1077
1077
  FN:80,(anonymous_7)
1078
1078
  FN:85,createLogger
1079
1079
  FNF:9
1080
- FNH:6
1081
- FNDA:0,defaultLogHandler
1082
- FNDA:17,(anonymous_1)
1083
- FNDA:0,(anonymous_2)
1084
- FNDA:35,(anonymous_3)
1085
- FNDA:33,(anonymous_4)
1086
- FNDA:1,(anonymous_5)
1087
- FNDA:1,(anonymous_6)
1088
- FNDA:0,(anonymous_7)
1089
- FNDA:17,createLogger
1090
- DA:16,1
1091
- DA:18,1
1092
- DA:28,1
1093
- DA:33,0
1094
- DA:35,0
1095
- DA:36,0
1096
- DA:38,0
1097
- DA:39,0
1098
- DA:41,0
1099
- DA:42,0
1100
- DA:44,0
1101
- DA:45,0
1102
- DA:49,1
1103
- DA:54,17
1104
- DA:55,17
1105
- DA:59,0
1106
- DA:63,35
1107
- DA:64,1
1108
- DA:69,33
1109
- DA:73,1
1110
- DA:77,1
1111
- DA:81,0
1112
- DA:85,1
1113
- DA:86,17
1114
- DA:87,17
1115
- DA:89,17
1080
+ FNH:9
1081
+ FNDA:4,defaultLogHandler
1082
+ FNDA:22,(anonymous_1)
1083
+ FNDA:1,(anonymous_2)
1084
+ FNDA:55,(anonymous_3)
1085
+ FNDA:38,(anonymous_4)
1086
+ FNDA:6,(anonymous_5)
1087
+ FNDA:6,(anonymous_6)
1088
+ FNDA:5,(anonymous_7)
1089
+ FNDA:22,createLogger
1090
+ DA:16,2
1091
+ DA:18,2
1092
+ DA:28,2
1093
+ DA:33,4
1094
+ DA:35,1
1095
+ DA:36,1
1096
+ DA:38,1
1097
+ DA:39,1
1098
+ DA:41,1
1099
+ DA:42,1
1100
+ DA:44,1
1101
+ DA:45,1
1102
+ DA:49,2
1103
+ DA:54,22
1104
+ DA:55,22
1105
+ DA:59,1
1106
+ DA:63,55
1107
+ DA:64,17
1108
+ DA:69,38
1109
+ DA:73,6
1110
+ DA:77,6
1111
+ DA:81,5
1112
+ DA:85,2
1113
+ DA:86,22
1114
+ DA:87,22
1115
+ DA:89,22
1116
1116
  LF:26
1117
- LH:15
1118
- BRDA:31,0,0,0
1119
- BRDA:33,1,0,0
1120
- BRDA:33,1,1,0
1121
- BRDA:33,1,2,0
1122
- BRDA:33,1,3,0
1123
- BRDA:63,2,0,1
1117
+ LH:26
1118
+ BRDA:31,0,0,4
1119
+ BRDA:33,1,0,1
1120
+ BRDA:33,1,1,1
1121
+ BRDA:33,1,2,1
1122
+ BRDA:33,1,3,1
1123
+ BRDA:63,2,0,17
1124
1124
  BRDA:85,3,0,16
1125
- BRDA:86,4,0,17
1126
- BRDA:86,4,1,17
1127
- BRDA:87,5,0,17
1128
- BRDA:87,5,1,16
1125
+ BRDA:86,4,0,22
1126
+ BRDA:86,4,1,18
1127
+ BRDA:87,5,0,22
1128
+ BRDA:87,5,1,17
1129
1129
  BRF:11
1130
- BRH:6
1130
+ BRH:11
1131
1131
  end_of_record
1132
1132
  TN:
1133
1133
  SF:src/segments.ts
package/dist/index.js.gz CHANGED
Binary file
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featurevisor/sdk",
3
- "version": "0.47.3",
3
+ "version": "0.47.5",
4
4
  "description": "Featurevisor SDK for Node.js and the browser",
5
5
  "main": "dist/index.js",
6
6
  "module": "lib/index.js",
@@ -49,5 +49,5 @@
49
49
  "compare-versions": "^6.0.0-rc.1",
50
50
  "murmurhash": "^2.0.1"
51
51
  },
52
- "gitHead": "8683c2e3569337c375800524996eb7048fac9254"
52
+ "gitHead": "150079539789fe0b61fa78dd9337788a4c176cb2"
53
53
  }
@@ -0,0 +1,100 @@
1
+ import { Emitter } from "./emitter";
2
+
3
+ describe("sdk :: Emitter", () => {
4
+ let emitter: Emitter;
5
+
6
+ beforeEach(() => {
7
+ emitter = new Emitter();
8
+ });
9
+
10
+ describe("addListener", () => {
11
+ it("should add a listener", () => {
12
+ const fn = jest.fn();
13
+
14
+ emitter.addListener("ready", fn);
15
+
16
+ expect(emitter["_listeners"]["ready"]).toEqual([fn]);
17
+ });
18
+
19
+ it("should add multiple listeners", () => {
20
+ const fn1 = jest.fn();
21
+ const fn2 = jest.fn();
22
+
23
+ emitter.addListener("ready", fn1);
24
+ emitter.addListener("ready", fn2);
25
+
26
+ expect(emitter["_listeners"]["ready"]).toEqual([fn1, fn2]);
27
+ });
28
+
29
+ it("should add multiple listeners for different events", () => {
30
+ const fn1 = jest.fn();
31
+ const fn2 = jest.fn();
32
+
33
+ emitter.addListener("ready", fn1);
34
+ emitter.addListener("update", fn2);
35
+
36
+ expect(emitter["_listeners"]["ready"]).toEqual([fn1]);
37
+ expect(emitter["_listeners"]["update"]).toEqual([fn2]);
38
+ });
39
+ });
40
+
41
+ describe("removeListener", () => {
42
+ it("should remove a listener", () => {
43
+ const fn = jest.fn();
44
+
45
+ emitter.addListener("ready", fn);
46
+ emitter.removeListener("ready", fn);
47
+ emitter.removeListener("update", fn);
48
+
49
+ expect(emitter["_listeners"]["ready"]).toEqual([]);
50
+ });
51
+
52
+ it("should remove multiple listeners", () => {
53
+ const fn1 = jest.fn();
54
+ const fn2 = jest.fn();
55
+
56
+ emitter.addListener("ready", fn1);
57
+ emitter.addListener("ready", fn2);
58
+ emitter.removeListener("ready", fn1);
59
+ emitter.removeListener("ready", fn2);
60
+
61
+ expect(emitter["_listeners"]["ready"]).toEqual([]);
62
+ });
63
+
64
+ it("should remove multiple listeners for different events", () => {
65
+ const fn1 = jest.fn();
66
+ const fn2 = jest.fn();
67
+
68
+ emitter.addListener("ready", fn1);
69
+ emitter.addListener("update", fn2);
70
+ emitter.removeListener("ready", fn1);
71
+ emitter.removeListener("update", fn2);
72
+
73
+ expect(emitter["_listeners"]["ready"]).toEqual([]);
74
+ expect(emitter["_listeners"]["update"]).toEqual([]);
75
+ });
76
+ });
77
+
78
+ describe("removeAllListeners", () => {
79
+ it("should remove all listeners", () => {
80
+ const fn1 = jest.fn();
81
+ const fn2 = jest.fn();
82
+
83
+ emitter.addListener("ready", fn1);
84
+ emitter.addListener("update", fn2);
85
+ emitter.removeAllListeners();
86
+ });
87
+
88
+ it("should remove all listeners for a specific event", () => {
89
+ const fn1 = jest.fn();
90
+ const fn2 = jest.fn();
91
+
92
+ emitter.addListener("ready", fn1);
93
+ emitter.addListener("update", fn2);
94
+ emitter.removeAllListeners("ready");
95
+
96
+ expect(emitter["_listeners"]["ready"]).toEqual([]);
97
+ expect(emitter["_listeners"]["update"]).toEqual([fn2]);
98
+ });
99
+ });
100
+ });
@@ -0,0 +1,154 @@
1
+ /* eslint-disable no-global-assign */
2
+
3
+ import { createLogger } from "./logger";
4
+
5
+ describe("logger", () => {
6
+ it("should log", () => {
7
+ const logger = createLogger({
8
+ levels: ["debug", "info", "warn", "error"],
9
+ handler: jest.fn(),
10
+ });
11
+
12
+ logger.debug("debug");
13
+ logger.info("info");
14
+ logger.warn("warn");
15
+ logger.error("error");
16
+
17
+ expect(logger).toBeDefined();
18
+ expect(logger.debug).toBeDefined();
19
+ expect(logger.info).toBeDefined();
20
+ expect(logger.warn).toBeDefined();
21
+ expect(logger.error).toBeDefined();
22
+ expect(logger.setLevels).toBeDefined();
23
+ expect(logger.log).toBeDefined();
24
+ expect(logger.log).toBeInstanceOf(Function);
25
+ expect(logger.debug).toBeInstanceOf(Function);
26
+ expect(logger.info).toBeInstanceOf(Function);
27
+ expect(logger.warn).toBeInstanceOf(Function);
28
+ expect(logger.error).toBeInstanceOf(Function);
29
+ expect(logger.setLevels).toBeInstanceOf(Function);
30
+ });
31
+
32
+ it("should log with custom levels", () => {
33
+ const logger = createLogger({
34
+ levels: ["debug", "info"],
35
+ handler: jest.fn(),
36
+ });
37
+
38
+ logger.debug("debug");
39
+ logger.info("info");
40
+ logger.warn("warn");
41
+ logger.error("error");
42
+
43
+ expect(logger).toBeDefined();
44
+ expect(logger.debug).toBeDefined();
45
+ expect(logger.info).toBeDefined();
46
+ expect(logger.warn).toBeDefined();
47
+ expect(logger.error).toBeDefined();
48
+ expect(logger.setLevels).toBeDefined();
49
+ expect(logger.log).toBeDefined();
50
+ expect(logger.log).toBeInstanceOf(Function);
51
+ expect(logger.debug).toBeInstanceOf(Function);
52
+ expect(logger.info).toBeInstanceOf(Function);
53
+ expect(logger.warn).toBeInstanceOf(Function);
54
+ expect(logger.error).toBeInstanceOf(Function);
55
+ expect(logger.setLevels).toBeInstanceOf(Function);
56
+ });
57
+
58
+ it("should log with default handler", () => {
59
+ const logs: any[] = [];
60
+
61
+ const realConsole = console;
62
+ const customConsole = {
63
+ log: (...args) => logs.push(args),
64
+ info: (...args) => logs.push(args),
65
+ warn: (...args) => logs.push(args),
66
+ error: (...args) => logs.push(args),
67
+ };
68
+
69
+ console = customConsole as unknown as Console; // eslint-ignore-line
70
+
71
+ const logger = createLogger({});
72
+
73
+ logger.setLevels(["debug", "info", "warn", "error"]);
74
+
75
+ logger.debug("debug");
76
+ logger.info("info");
77
+ logger.warn("warn");
78
+ logger.error("error");
79
+
80
+ expect(logger).toBeDefined();
81
+ expect(logger.debug).toBeDefined();
82
+ expect(logger.info).toBeDefined();
83
+ expect(logger.warn).toBeDefined();
84
+ expect(logger.error).toBeDefined();
85
+ expect(logger.setLevels).toBeDefined();
86
+ expect(logger.log).toBeDefined();
87
+ expect(logger.log).toBeInstanceOf(Function);
88
+ expect(logger.debug).toBeInstanceOf(Function);
89
+ expect(logger.info).toBeInstanceOf(Function);
90
+ expect(logger.warn).toBeInstanceOf(Function);
91
+ expect(logger.error).toBeInstanceOf(Function);
92
+ expect(logger.setLevels).toBeInstanceOf(Function);
93
+
94
+ expect(logs.length).toBe(4);
95
+
96
+ console = realConsole; // eslint-ignore-line
97
+ });
98
+
99
+ it("should log with custom handler", () => {
100
+ const handler = jest.fn();
101
+ const logger = createLogger({
102
+ levels: ["debug", "info", "warn", "error"],
103
+ handler,
104
+ });
105
+
106
+ logger.debug("debug");
107
+ logger.info("info");
108
+ logger.warn("warn");
109
+ logger.error("error");
110
+
111
+ expect(logger).toBeDefined();
112
+ expect(logger.debug).toBeDefined();
113
+ expect(logger.info).toBeDefined();
114
+ expect(logger.warn).toBeDefined();
115
+ expect(logger.error).toBeDefined();
116
+ expect(logger.setLevels).toBeDefined();
117
+ expect(logger.log).toBeDefined();
118
+ expect(logger.log).toBeInstanceOf(Function);
119
+ expect(logger.debug).toBeInstanceOf(Function);
120
+ expect(logger.info).toBeInstanceOf(Function);
121
+ expect(logger.warn).toBeInstanceOf(Function);
122
+ expect(logger.error).toBeInstanceOf(Function);
123
+ expect(logger.setLevels).toBeInstanceOf(Function);
124
+ expect(handler).toHaveBeenCalledTimes(4);
125
+ });
126
+
127
+ it("should log with custom levels and handler", () => {
128
+ const handler = jest.fn();
129
+ const logger = createLogger({
130
+ levels: ["debug", "info"],
131
+ handler,
132
+ });
133
+
134
+ logger.debug("debug");
135
+ logger.info("info");
136
+ logger.warn("warn");
137
+ logger.error("error");
138
+
139
+ expect(logger).toBeDefined();
140
+ expect(logger.debug).toBeDefined();
141
+ expect(logger.info).toBeDefined();
142
+ expect(logger.warn).toBeDefined();
143
+ expect(logger.error).toBeDefined();
144
+ expect(logger.setLevels).toBeDefined();
145
+ expect(logger.log).toBeDefined();
146
+ expect(logger.log).toBeInstanceOf(Function);
147
+ expect(logger.debug).toBeInstanceOf(Function);
148
+ expect(logger.info).toBeInstanceOf(Function);
149
+ expect(logger.warn).toBeInstanceOf(Function);
150
+ expect(logger.error).toBeInstanceOf(Function);
151
+ expect(logger.setLevels).toBeInstanceOf(Function);
152
+ expect(handler).toHaveBeenCalledTimes(2);
153
+ });
154
+ });