@featurevisor/sdk 0.47.4 → 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.
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">59.25% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>16/27</span>
28
+ <span class='fraction'>27/27</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">54.54% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/11</span>
35
+ <span class='fraction'>11/11</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/9</span>
42
+ <span class='fraction'>9/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">57.69% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>15/26</span>
49
+ <span class='fraction'>26/26</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -168,9 +168,9 @@
168
168
  <span class="cline-any cline-neutral">&nbsp;</span>
169
169
  <span class="cline-any cline-neutral">&nbsp;</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-yes">2x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">1x</span>
173
+ <span class="cline-any cline-yes">2x</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
175
175
  <span class="cline-any cline-neutral">&nbsp;</span>
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -180,68 +180,68 @@
180
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
181
  <span class="cline-any cline-neutral">&nbsp;</span>
182
182
  <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-yes">1x</span>
183
+ <span class="cline-any cline-yes">2x</span>
184
184
  <span class="cline-any cline-neutral">&nbsp;</span>
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
186
  <span class="cline-any cline-neutral">&nbsp;</span>
187
187
  <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
188
+ <span class="cline-any cline-yes">4x</span>
189
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
- <span class="cline-any cline-no">&nbsp;</span>
190
+ <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
192
  <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-yes">1x</span>
194
+ <span class="cline-any cline-yes">1x</span>
195
195
  <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-no">&nbsp;</span>
196
+ <span class="cline-any cline-yes">1x</span>
197
+ <span class="cline-any cline-yes">1x</span>
198
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
200
- <span class="cline-any cline-no">&nbsp;</span>
199
+ <span class="cline-any cline-yes">1x</span>
200
+ <span class="cline-any cline-yes">1x</span>
201
201
  <span class="cline-any cline-neutral">&nbsp;</span>
202
202
  <span class="cline-any cline-neutral">&nbsp;</span>
203
203
  <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-yes">2x</span>
205
205
  <span class="cline-any cline-neutral">&nbsp;</span>
206
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
207
  <span class="cline-any cline-neutral">&nbsp;</span>
208
208
  <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-yes">17x</span>
210
- <span class="cline-any cline-yes">17x</span>
209
+ <span class="cline-any cline-yes">22x</span>
210
+ <span class="cline-any cline-yes">22x</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
212
  <span class="cline-any cline-neutral">&nbsp;</span>
213
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-no">&nbsp;</span>
214
+ <span class="cline-any cline-yes">1x</span>
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">35x</span>
219
- <span class="cline-any cline-yes">1x</span>
218
+ <span class="cline-any cline-yes">55x</span>
219
+ <span class="cline-any cline-yes">17x</span>
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">33x</span>
224
+ <span class="cline-any cline-yes">38x</span>
225
225
  <span class="cline-any cline-neutral">&nbsp;</span>
226
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">1x</span>
228
+ <span class="cline-any cline-yes">6x</span>
229
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
230
  <span class="cline-any cline-neutral">&nbsp;</span>
231
231
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">1x</span>
232
+ <span class="cline-any cline-yes">6x</span>
233
233
  <span class="cline-any cline-neutral">&nbsp;</span>
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
236
+ <span class="cline-any cline-yes">5x</span>
237
237
  <span class="cline-any cline-neutral">&nbsp;</span>
238
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
239
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">1x</span>
241
- <span class="cline-any cline-yes">17x</span>
242
- <span class="cline-any cline-yes">17x</span>
240
+ <span class="cline-any cline-yes">2x</span>
241
+ <span class="cline-any cline-yes">22x</span>
242
+ <span class="cline-any cline-yes">22x</span>
243
243
  <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-yes">17x</span>
244
+ <span class="cline-any cline-yes">22x</span>
245
245
  <span class="cline-any cline-neutral">&nbsp;</span>
246
246
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export type LogLevel = "debug" | "info" | "warn" | "error";
247
247
  &nbsp;
@@ -270,24 +270,24 @@ export const defaultLogLevels: LogLevel[] = [
270
270
  "error",
271
271
  ];
272
272
  &nbsp;
273
- export const defaultLogHandler: LogHandler = function <span class="fstat-no" title="function not covered" >defaultLogHandler(</span>
273
+ export const defaultLogHandler: LogHandler = function defaultLogHandler(
274
274
  level,
275
275
  message,
276
- details = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
276
+ details = {},
277
277
  ) {
278
- <span class="cstat-no" title="statement not covered" > switch (level) {</span>
278
+ switch (level) {
279
279
  case "debug":
280
- <span class="cstat-no" title="statement not covered" > console.log(loggerPrefix, message, details);</span>
281
- <span class="cstat-no" title="statement not covered" > break;</span>
280
+ console.log(loggerPrefix, message, details);
281
+ break;
282
282
  case "info":
283
- <span class="cstat-no" title="statement not covered" > console.info(loggerPrefix, message, details);</span>
284
- <span class="cstat-no" title="statement not covered" > break;</span>
283
+ console.info(loggerPrefix, message, details);
284
+ break;
285
285
  case "warn":
286
- <span class="cstat-no" title="statement not covered" > console.warn(loggerPrefix, message, details);</span>
287
- <span class="cstat-no" title="statement not covered" > break;</span>
286
+ console.warn(loggerPrefix, message, details);
287
+ break;
288
288
  case "error":
289
- <span class="cstat-no" title="statement not covered" > console.error(loggerPrefix, message, details);</span>
290
- <span class="cstat-no" title="statement not covered" > break;</span>
289
+ console.error(loggerPrefix, message, details);
290
+ break;
291
291
  }
292
292
  };
293
293
  &nbsp;
@@ -300,8 +300,8 @@ export class Logger {
300
300
  this.handle = options.handler as LogHandler;
301
301
  }
302
302
  &nbsp;
303
- <span class="fstat-no" title="function not covered" > setLevels(</span>levels: LogLevel[]) {
304
- <span class="cstat-no" title="statement not covered" > this.levels = levels;</span>
303
+ setLevels(levels: LogLevel[]) {
304
+ this.levels = levels;
305
305
  }
306
306
  &nbsp;
307
307
  log(level: LogLevel, message: LogMessage, details?: LogDetails) {
@@ -322,8 +322,8 @@ export class Logger {
322
322
  this.log("warn", message, details);
323
323
  }
324
324
  &nbsp;
325
- <span class="fstat-no" title="function not covered" > error(</span>message: LogMessage, details?: LogDetails) {
326
- <span class="cstat-no" title="statement not covered" > this.log("error", message, details);</span>
325
+ error(message: LogMessage, details?: LogDetails) {
326
+ this.log("error", message, details);
327
327
  }
328
328
  }
329
329
  &nbsp;
@@ -340,7 +340,7 @@ export function createLogger(options: CreateLoggerOptions = {}): Logger {
340
340
  <div class='footer quiet pad2 space-top1 center small'>
341
341
  Code coverage generated by
342
342
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
343
- at 2023-09-16T19:11:35.235Z
343
+ at 2023-09-16T19:49:33.532Z
344
344
  </div>
345
345
  <script src="prettify.js"></script>
346
346
  <script>
@@ -238,7 +238,7 @@ export function allGroupSegmentsAreMatched(
238
238
  <div class='footer quiet pad2 space-top1 center small'>
239
239
  Code coverage generated by
240
240
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
241
- at 2023-09-16T19:11:35.235Z
241
+ at 2023-09-16T19:49:33.532Z
242
242
  </div>
243
243
  <script src="prettify.js"></script>
244
244
  <script>
@@ -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 {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featurevisor/sdk",
3
- "version": "0.47.4",
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": "a0a4cfe96b9223e7bfca022425c851c451b52b89"
52
+ "gitHead": "150079539789fe0b61fa78dd9337788a4c176cb2"
53
53
  }
@@ -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
+ });