@jsenv/plugin-supervisor 1.5.32 → 1.6.1

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.
@@ -1159,7 +1159,38 @@ window.__supervisor__ = (() => {
1159
1159
  }
1160
1160
  return exception;
1161
1161
  };
1162
- window.addEventListener("error", errorEvent => {
1162
+ const addEventListenerCalledLast = (object, eventNameListened, eventCallback) => {
1163
+ const eventCallbackSet = new Set();
1164
+ object.addEventListener(eventNameListened, event => {
1165
+ for (const callback of eventCallbackSet) {
1166
+ callback(event);
1167
+ }
1168
+ eventCallback(event);
1169
+ });
1170
+ const addEventListener = object.addEventListener;
1171
+ const removeEventListener = object.removeEventListener;
1172
+ object.addEventListener = function (eventName, callback) {
1173
+ if (eventName === eventNameListened) {
1174
+ eventCallbackSet.add(callback);
1175
+ return;
1176
+ }
1177
+ addEventListener.call(this, eventName, callback);
1178
+ };
1179
+ object.removeEventListener = function (eventName, callback) {
1180
+ if (eventName === eventNameListened) {
1181
+ eventCallbackSet.delete(callback);
1182
+ return;
1183
+ }
1184
+ removeEventListener.call(this, eventName, callback);
1185
+ };
1186
+ };
1187
+ addEventListenerCalledLast(window, "error", errorEvent => {
1188
+ if (errorEvent.defaultPrevented) {
1189
+ if (logs) {
1190
+ console.log("ignore prevented error event", errorEvent);
1191
+ }
1192
+ return;
1193
+ }
1163
1194
  if (!errorEvent.isTrusted) {
1164
1195
  // ignore custom error event (not sent by browser)
1165
1196
  if (logs) {
@@ -1188,7 +1219,7 @@ window.__supervisor__ = (() => {
1188
1219
  });
1189
1220
  supervisor.reportException(exception);
1190
1221
  });
1191
- window.addEventListener("unhandledrejection", event => {
1222
+ addEventListenerCalledLast(window, "unhandledrejection", event => {
1192
1223
  if (event.defaultPrevented) {
1193
1224
  return;
1194
1225
  }
@@ -27,15 +27,23 @@ if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false') || has
27
27
  flagForceColor = 1;
28
28
  }
29
29
  function envForceColor() {
30
- if ('FORCE_COLOR' in env) {
31
- if (env.FORCE_COLOR === 'true') {
32
- return 1;
33
- }
34
- if (env.FORCE_COLOR === 'false') {
35
- return 0;
36
- }
37
- return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
30
+ if (!('FORCE_COLOR' in env)) {
31
+ return;
32
+ }
33
+ if (env.FORCE_COLOR === 'true') {
34
+ return 1;
35
+ }
36
+ if (env.FORCE_COLOR === 'false') {
37
+ return 0;
38
+ }
39
+ if (env.FORCE_COLOR.length === 0) {
40
+ return 1;
41
+ }
42
+ const level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
43
+ if (![0, 1, 2, 3].includes(level)) {
44
+ return;
38
45
  }
46
+ return level;
39
47
  }
40
48
  function translateLevel(level) {
41
49
  if (level === 0) {
@@ -91,10 +99,10 @@ function _supportsColor(haveStream, {
91
99
  return 1;
92
100
  }
93
101
  if ('CI' in env) {
94
- if ('GITHUB_ACTIONS' in env || 'GITEA_ACTIONS' in env) {
102
+ if (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {
95
103
  return 3;
96
104
  }
97
- if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
105
+ if (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
98
106
  return 1;
99
107
  }
100
108
  return min;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/plugin-supervisor",
3
- "version": "1.5.32",
3
+ "version": "1.6.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  "dependencies": {
29
29
  "@jsenv/ast": "6.4.1",
30
30
  "@jsenv/urls": "2.5.4",
31
- "@jsenv/sourcemap": "1.2.28",
31
+ "@jsenv/sourcemap": "1.2.29",
32
32
  "launch-editor": "2.9.1"
33
33
  },
34
34
  "scripts": {
@@ -1256,7 +1256,42 @@ window.__supervisor__ = (() => {
1256
1256
  }
1257
1257
  return exception;
1258
1258
  };
1259
- window.addEventListener("error", (errorEvent) => {
1259
+ const addEventListenerCalledLast = (
1260
+ object,
1261
+ eventNameListened,
1262
+ eventCallback,
1263
+ ) => {
1264
+ const eventCallbackSet = new Set();
1265
+ object.addEventListener(eventNameListened, (event) => {
1266
+ for (const callback of eventCallbackSet) {
1267
+ callback(event);
1268
+ }
1269
+ eventCallback(event);
1270
+ });
1271
+ const addEventListener = object.addEventListener;
1272
+ const removeEventListener = object.removeEventListener;
1273
+ object.addEventListener = function (eventName, callback) {
1274
+ if (eventName === eventNameListened) {
1275
+ eventCallbackSet.add(callback);
1276
+ return;
1277
+ }
1278
+ addEventListener.call(this, eventName, callback);
1279
+ };
1280
+ object.removeEventListener = function (eventName, callback) {
1281
+ if (eventName === eventNameListened) {
1282
+ eventCallbackSet.delete(callback);
1283
+ return;
1284
+ }
1285
+ removeEventListener.call(this, eventName, callback);
1286
+ };
1287
+ };
1288
+ addEventListenerCalledLast(window, "error", (errorEvent) => {
1289
+ if (errorEvent.defaultPrevented) {
1290
+ if (logs) {
1291
+ console.log("ignore prevented error event", errorEvent);
1292
+ }
1293
+ return;
1294
+ }
1260
1295
  if (!errorEvent.isTrusted) {
1261
1296
  // ignore custom error event (not sent by browser)
1262
1297
  if (logs) {
@@ -1279,7 +1314,7 @@ window.__supervisor__ = (() => {
1279
1314
  });
1280
1315
  supervisor.reportException(exception);
1281
1316
  });
1282
- window.addEventListener("unhandledrejection", (event) => {
1317
+ addEventListenerCalledLast(window, "unhandledrejection", (event) => {
1283
1318
  if (event.defaultPrevented) {
1284
1319
  return;
1285
1320
  }