@jsenv/plugin-supervisor 1.6.17 → 1.7.0

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.
@@ -983,11 +983,12 @@ window.__supervisor__ = (() => {
983
983
  const {
984
984
  trace = {}
985
985
  } = cause;
986
- const dataToRender = cause.code === "MODULE_NOT_FOUND" ? cause : exception;
986
+ const preferCause = cause.code === "MODULE_NOT_FOUND" || cause.code === "PROTOCOL_NOT_SUPPORTED";
987
+ const dataToRender = preferCause ? cause : exception;
987
988
  root.querySelector(".text").innerHTML = stringifyStack({
988
989
  codeFrame: trace.codeFrame ? generateClickableText(trace.codeFrame) : "",
989
990
  name: dataToRender.name,
990
- message: cause.code === "MODULE_NOT_FOUND" ? generateClickableText(dataToRender.reason) : dataToRender.message ? generateClickableText(dataToRender.message) : "",
991
+ message: preferCause ? generateClickableText(cause.reason) : dataToRender.message ? generateClickableText(dataToRender.message) : "",
991
992
  stackTrace: dataToRender.stackTrace ? generateClickableText(dataToRender.stackTrace) : ""
992
993
  });
993
994
  if (cause && dataToRender === exception) {
@@ -892,34 +892,37 @@ const jsenvPluginSupervisor = ({
892
892
  url
893
893
  } = kitchen.resolve(file, kitchen.context.rootDirectoryUrl);
894
894
  file = url;
895
- const getErrorCauseInfo = () => {
896
- const urlInfo = kitchen.graph.getUrlInfo(file);
897
- if (!urlInfo) {
895
+ const urlInfoVisitedSet = new Set();
896
+ const getErrorCausingRuntimeError = urlInfo => {
897
+ if (urlInfoVisitedSet.has(urlInfo)) {
898
898
  return null;
899
899
  }
900
+ urlInfoVisitedSet.add(urlInfo);
900
901
  const {
901
902
  error
902
903
  } = urlInfo;
903
904
  if (error) {
904
905
  return error;
905
906
  }
906
- // search in direct dependencies (404 or 500)
907
907
  for (const referenceToOther of urlInfo.referenceToOthersSet) {
908
908
  const referencedUrlInfo = referenceToOther.urlInfo;
909
- if (referencedUrlInfo.error) {
910
- return referencedUrlInfo.error;
909
+ const referencedCause = getErrorCausingRuntimeError(referencedUrlInfo);
910
+ if (referencedCause) {
911
+ return referencedCause;
911
912
  }
912
913
  }
913
914
  return null;
914
915
  };
915
- const causeInfo = getErrorCauseInfo();
916
- const body = JSON.stringify(causeInfo ? {
917
- code: causeInfo.code,
918
- name: causeInfo.name,
919
- message: causeInfo.message,
920
- reason: causeInfo.reason,
921
- stack: errorBaseUrl ? "stack mocked for snapshot" : causeInfo.stack,
922
- trace: causeInfo.trace
916
+ const urlInfo = kitchen.graph.getUrlInfo(file);
917
+ const errorCausingRuntimeError = urlInfo ? getErrorCausingRuntimeError(urlInfo) : null;
918
+ const body = JSON.stringify(errorCausingRuntimeError ? {
919
+ code: errorCausingRuntimeError.code,
920
+ name: errorCausingRuntimeError.name,
921
+ message: errorCausingRuntimeError.message,
922
+ reason: errorCausingRuntimeError.reason,
923
+ stack: errorBaseUrl ? "stack mocked for snapshot" : errorCausingRuntimeError.stack,
924
+ trace: errorCausingRuntimeError.trace,
925
+ isJsenvCookingError: errorCausingRuntimeError.isJsenvCookingError
923
926
  } : null, null, " ");
924
927
  return {
925
928
  status: 200,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/plugin-supervisor",
3
- "version": "1.6.17",
3
+ "version": "1.7.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,10 +34,14 @@
34
34
  "prepublishOnly": "npm run build"
35
35
  },
36
36
  "dependencies": {
37
- "@jsenv/ast": "6.7.1",
38
- "@jsenv/sourcemap": "1.3.7"
37
+ "@jsenv/ast": "6.7.2",
38
+ "@jsenv/sourcemap": "1.3.8"
39
39
  },
40
40
  "devDependencies": {
41
- "@jsenv/urls": "2.7.4"
41
+ "@jsenv/urls": "../../tooling/urls",
42
+ "@jsenv/snapshot": "../../tooling/snapshot",
43
+ "@jsenv/filesystem": "../../backend/filesystem",
44
+ "@jsenv/humanize": "../../tooling/humanize",
45
+ "@jsenv/core": "../../../"
42
46
  }
43
47
  }
@@ -982,19 +982,20 @@ window.__supervisor__ = (() => {
982
982
  const renderException = () => {
983
983
  const { cause = {} } = exception;
984
984
  const { trace = {} } = cause;
985
- const dataToRender =
986
- cause.code === "MODULE_NOT_FOUND" ? cause : exception;
985
+ const preferCause =
986
+ cause.code === "MODULE_NOT_FOUND" ||
987
+ cause.code === "PROTOCOL_NOT_SUPPORTED";
988
+ const dataToRender = preferCause ? cause : exception;
987
989
  root.querySelector(".text").innerHTML = stringifyStack({
988
990
  codeFrame: trace.codeFrame
989
991
  ? generateClickableText(trace.codeFrame)
990
992
  : "",
991
993
  name: dataToRender.name,
992
- message:
993
- cause.code === "MODULE_NOT_FOUND"
994
- ? generateClickableText(dataToRender.reason)
995
- : dataToRender.message
996
- ? generateClickableText(dataToRender.message)
997
- : "",
994
+ message: preferCause
995
+ ? generateClickableText(cause.reason)
996
+ : dataToRender.message
997
+ ? generateClickableText(dataToRender.message)
998
+ : "",
998
999
  stackTrace: dataToRender.stackTrace
999
1000
  ? generateClickableText(dataToRender.stackTrace)
1000
1001
  : "",
@@ -155,36 +155,43 @@ export const jsenvPluginSupervisor = ({
155
155
  kitchen.context.rootDirectoryUrl,
156
156
  );
157
157
  file = url;
158
- const getErrorCauseInfo = () => {
159
- const urlInfo = kitchen.graph.getUrlInfo(file);
160
- if (!urlInfo) {
158
+ const urlInfoVisitedSet = new Set();
159
+ const getErrorCausingRuntimeError = (urlInfo) => {
160
+ if (urlInfoVisitedSet.has(urlInfo)) {
161
161
  return null;
162
162
  }
163
+ urlInfoVisitedSet.add(urlInfo);
163
164
  const { error } = urlInfo;
164
165
  if (error) {
165
166
  return error;
166
167
  }
167
- // search in direct dependencies (404 or 500)
168
168
  for (const referenceToOther of urlInfo.referenceToOthersSet) {
169
169
  const referencedUrlInfo = referenceToOther.urlInfo;
170
- if (referencedUrlInfo.error) {
171
- return referencedUrlInfo.error;
170
+ const referencedCause =
171
+ getErrorCausingRuntimeError(referencedUrlInfo);
172
+ if (referencedCause) {
173
+ return referencedCause;
172
174
  }
173
175
  }
174
176
  return null;
175
177
  };
176
- const causeInfo = getErrorCauseInfo();
178
+ const urlInfo = kitchen.graph.getUrlInfo(file);
179
+ const errorCausingRuntimeError = urlInfo
180
+ ? getErrorCausingRuntimeError(urlInfo)
181
+ : null;
177
182
  const body = JSON.stringify(
178
- causeInfo
183
+ errorCausingRuntimeError
179
184
  ? {
180
- code: causeInfo.code,
181
- name: causeInfo.name,
182
- message: causeInfo.message,
183
- reason: causeInfo.reason,
185
+ code: errorCausingRuntimeError.code,
186
+ name: errorCausingRuntimeError.name,
187
+ message: errorCausingRuntimeError.message,
188
+ reason: errorCausingRuntimeError.reason,
184
189
  stack: errorBaseUrl
185
190
  ? `stack mocked for snapshot`
186
- : causeInfo.stack,
187
- trace: causeInfo.trace,
191
+ : errorCausingRuntimeError.stack,
192
+ trace: errorCausingRuntimeError.trace,
193
+ isJsenvCookingError:
194
+ errorCausingRuntimeError.isJsenvCookingError,
188
195
  }
189
196
  : null,
190
197
  null,