@percy/sdk-utils 1.10.3 → 1.10.4

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.
package/dist/bundle.js CHANGED
@@ -24,43 +24,34 @@
24
24
  return logger.log(namespace, lvl, ...a);
25
25
  }
26
26
  }), {});
27
- } // Set and/or return the local loglevel
28
-
29
- const loglevel = logger.loglevel = lvl => {
30
- return loglevel.lvl = lvl || loglevel.lvl || process.env.PERCY_LOGLEVEL || 'info';
31
- }; // Track and send/write logs for the specified namespace and log level
32
-
33
-
34
- const log = logger.log = (ns, lvl, msg, meta) => {
35
- let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug'); // keep log history of full message
36
-
37
- let message = err ? msg.stack : msg.toString();
38
- let [debug, level, timestamp, error] = [ns, lvl, Date.now(), !!err];
39
- (log.history || (log.history = [])).push({
40
- debug,
41
- level,
42
- message,
43
- meta,
44
- timestamp,
45
- error
46
- }); // check if the specific level is within the local loglevel range
47
-
48
- if (LOG_LEVELS[lvl] != null && LOG_LEVELS[lvl] >= LOG_LEVELS[loglevel()]) {
49
- let debug = loglevel() === 'debug';
50
- let label = debug ? `percy:${ns}` : 'percy'; // colorize the label when possible for consistency with the CLI logger
51
-
52
- if (!process.env.__PERCY_BROWSERIFIED__) label = `\u001b[95m${label}\u001b[39m`;
53
- msg = `[${label}] ${err && debug && msg.stack || msg}`;
54
-
55
- if (process.env.__PERCY_BROWSERIFIED__) {
56
- // use console[warn|error|log] in browsers
57
- console[['warn', 'error'].includes(lvl) ? lvl : 'log'](msg);
58
- } else {
59
- // use process[stdout|stderr].write in node
60
- process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
27
+ }
28
+ Object.assign(logger, {
29
+ // Set and/or return the local loglevel
30
+ loglevel: function () {
31
+ let lvl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : logger.loglevel.lvl;
32
+ return logger.loglevel.lvl = lvl || process.env.PERCY_LOGLEVEL || 'info';
33
+ },
34
+ // Track and send/write logs for the specified namespace and log level
35
+ log: (ns, lvl, msg, meta) => {
36
+ let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug'); // check if the specific level is within the local loglevel range
37
+
38
+ if (LOG_LEVELS[lvl] != null && LOG_LEVELS[lvl] >= LOG_LEVELS[logger.loglevel()]) {
39
+ let debug = logger.loglevel() === 'debug';
40
+ let label = debug ? `percy:${ns}` : 'percy'; // colorize the label when possible for consistency with the CLI logger
41
+
42
+ if (!process.env.__PERCY_BROWSERIFIED__) label = `\u001b[95m${label}\u001b[39m`;
43
+ msg = `[${label}] ${err && debug && msg.stack || msg}`;
44
+
45
+ if (process.env.__PERCY_BROWSERIFIED__) {
46
+ // use console[warn|error|log] in browsers
47
+ console[['warn', 'error'].includes(lvl) ? lvl : 'log'](msg);
48
+ } else {
49
+ // use process[stdout|stderr].write in node
50
+ process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
51
+ }
61
52
  }
62
53
  }
63
- };
54
+ });
64
55
 
65
56
  // helper to create a version object from a string
66
57
  function toVersion(str) {
package/dist/logger.js CHANGED
@@ -17,44 +17,33 @@ function logger(namespace) {
17
17
  return Object.keys(LOG_LEVELS).reduce((ns, lvl) => Object.assign(ns, {
18
18
  [lvl]: (...a) => logger.log(namespace, lvl, ...a)
19
19
  }), {});
20
- } // Set and/or return the local loglevel
21
-
22
-
23
- const loglevel = logger.loglevel = lvl => {
24
- return loglevel.lvl = lvl || loglevel.lvl || process.env.PERCY_LOGLEVEL || 'info';
25
- }; // Track and send/write logs for the specified namespace and log level
26
-
27
-
28
- const log = logger.log = (ns, lvl, msg, meta) => {
29
- let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug'); // keep log history of full message
30
-
31
- let message = err ? msg.stack : msg.toString();
32
- let [debug, level, timestamp, error] = [ns, lvl, Date.now(), !!err];
33
- (log.history || (log.history = [])).push({
34
- debug,
35
- level,
36
- message,
37
- meta,
38
- timestamp,
39
- error
40
- }); // check if the specific level is within the local loglevel range
41
-
42
- if (LOG_LEVELS[lvl] != null && LOG_LEVELS[lvl] >= LOG_LEVELS[loglevel()]) {
43
- let debug = loglevel() === 'debug';
44
- let label = debug ? `percy:${ns}` : 'percy'; // colorize the label when possible for consistency with the CLI logger
45
-
46
- if (!process.env.__PERCY_BROWSERIFIED__) label = `\u001b[95m${label}\u001b[39m`;
47
- msg = `[${label}] ${err && debug && msg.stack || msg}`;
48
-
49
- if (process.env.__PERCY_BROWSERIFIED__) {
50
- // use console[warn|error|log] in browsers
51
- console[['warn', 'error'].includes(lvl) ? lvl : 'log'](msg);
52
- } else {
53
- // use process[stdout|stderr].write in node
54
- process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
20
+ }
21
+
22
+ Object.assign(logger, {
23
+ // Set and/or return the local loglevel
24
+ loglevel: (lvl = logger.loglevel.lvl) => {
25
+ return logger.loglevel.lvl = lvl || process.env.PERCY_LOGLEVEL || 'info';
26
+ },
27
+ // Track and send/write logs for the specified namespace and log level
28
+ log: (ns, lvl, msg, meta) => {
29
+ let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug'); // check if the specific level is within the local loglevel range
30
+
31
+ if (LOG_LEVELS[lvl] != null && LOG_LEVELS[lvl] >= LOG_LEVELS[logger.loglevel()]) {
32
+ let debug = logger.loglevel() === 'debug';
33
+ let label = debug ? `percy:${ns}` : 'percy'; // colorize the label when possible for consistency with the CLI logger
34
+
35
+ if (!process.env.__PERCY_BROWSERIFIED__) label = `\u001b[95m${label}\u001b[39m`;
36
+ msg = `[${label}] ${err && debug && msg.stack || msg}`;
37
+
38
+ if (process.env.__PERCY_BROWSERIFIED__) {
39
+ // use console[warn|error|log] in browsers
40
+ console[['warn', 'error'].includes(lvl) ? lvl : 'log'](msg);
41
+ } else {
42
+ // use process[stdout|stderr].write in node
43
+ process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
44
+ }
55
45
  }
56
46
  }
57
- };
58
-
47
+ });
59
48
  var _default = logger;
60
49
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percy/sdk-utils",
3
- "version": "1.10.3",
3
+ "version": "1.10.4",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -50,5 +50,5 @@
50
50
  ]
51
51
  }
52
52
  },
53
- "gitHead": "a9858d20a9b9708da0464c0617b32b2ee1c97433"
53
+ "gitHead": "16a9a410bfcb8eab51b86a08cff12d8d35e4747e"
54
54
  }
package/test/client.js CHANGED
@@ -16,6 +16,9 @@
16
16
  const utils = require$$0__default["default"];
17
17
  const helpers = {
18
18
  async setupTest() {
19
+ let {
20
+ logger = true
21
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
19
22
  utils.percy.version = '';
20
23
  delete utils.percy.config;
21
24
  delete utils.percy.enabled;
@@ -24,6 +27,8 @@
24
27
  delete utils.logger.loglevel.lvl;
25
28
  delete process.env.PERCY_LOGLEVEL;
26
29
  delete process.env.PERCY_SERVER_ADDRESS;
30
+ utils.logger.log = helpers.logger.__log__;
31
+ if (logger) helpers.logger.mock();
27
32
  await helpers.test('reset');
28
33
  },
29
34
 
@@ -40,8 +45,32 @@
40
45
 
41
46
  get testSnapshotURL() {
42
47
  return `${utils.percy.address}/test/snapshot`;
43
- }
48
+ },
49
+
50
+ logger: {
51
+ __log__: utils.logger.log,
52
+ loglevel: utils.logger.loglevel,
53
+ stdout: [],
54
+ stderr: [],
55
+
56
+ mock() {
57
+ helpers.logger.reset();
44
58
 
59
+ utils.logger.log = (ns, lvl, msg) => {
60
+ if (lvl === 'debug' && helpers.logger.loglevel.lvl !== 'debug') return;
61
+ msg = `[percy${lvl === 'debug' ? `:${ns}` : ''}] ${msg}`;
62
+ let io = lvl === 'info' ? 'stdout' : 'stderr';
63
+ helpers.logger[io].push(msg);
64
+ };
65
+ },
66
+
67
+ reset() {
68
+ helpers.logger.stdout = [];
69
+ helpers.logger.stderr = [];
70
+ helpers.logger.loglevel('info');
71
+ }
72
+
73
+ }
45
74
  };
46
75
  var helpers_1 = helpers;
47
76
 
package/test/helpers.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const utils = require('@percy/sdk-utils');
2
2
 
3
3
  const helpers = {
4
- async setupTest() {
4
+ async setupTest({ logger = true } = {}) {
5
5
  utils.percy.version = '';
6
6
  delete utils.percy.config;
7
7
  delete utils.percy.enabled;
@@ -10,6 +10,8 @@ const helpers = {
10
10
  delete utils.logger.loglevel.lvl;
11
11
  delete process.env.PERCY_LOGLEVEL;
12
12
  delete process.env.PERCY_SERVER_ADDRESS;
13
+ utils.logger.log = helpers.logger.__log__;
14
+ if (logger) helpers.logger.mock();
13
15
  await helpers.test('reset');
14
16
  },
15
17
 
@@ -26,6 +28,30 @@ const helpers = {
26
28
 
27
29
  get testSnapshotURL() {
28
30
  return `${utils.percy.address}/test/snapshot`;
31
+ },
32
+
33
+ logger: {
34
+ __log__: utils.logger.log,
35
+ loglevel: utils.logger.loglevel,
36
+ stdout: [],
37
+ stderr: [],
38
+
39
+ mock() {
40
+ helpers.logger.reset();
41
+
42
+ utils.logger.log = (ns, lvl, msg) => {
43
+ if (lvl === 'debug' && helpers.logger.loglevel.lvl !== 'debug') return;
44
+ msg = `[percy${lvl === 'debug' ? `:${ns}` : ''}] ${msg}`;
45
+ let io = (lvl === 'info') ? 'stdout' : 'stderr';
46
+ helpers.logger[io].push(msg);
47
+ };
48
+ },
49
+
50
+ reset() {
51
+ helpers.logger.stdout = [];
52
+ helpers.logger.stderr = [];
53
+ helpers.logger.loglevel('info');
54
+ }
29
55
  }
30
56
  };
31
57