@parcel/diagnostic 2.0.0-dev.1528 → 2.0.0-dev.1557

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.
@@ -37,6 +37,8 @@ export type DiagnosticCodeFrame = {
37
37
  language?: string;
38
38
  codeHighlights: Array<DiagnosticCodeHighlight>;
39
39
  };
40
+ /** A JSON object (as in "map") */
41
+ type JSONObject = Record<string, any>;
40
42
  /**
41
43
  * A style agnostic way of emitting errors, warnings and info.
42
44
  * Reporters are responsible for rendering the message, codeframes, hints, ...
@@ -58,6 +60,8 @@ export type Diagnostic = {
58
60
  skipFormatting?: boolean;
59
61
  /** A URL to documentation to learn more about the diagnostic. */
60
62
  documentationURL?: string;
63
+ /** Diagnostic specific metadata (optional) */
64
+ meta?: JSONObject;
61
65
  };
62
66
  export interface PrintableError extends Error {
63
67
  fileName?: string;
package/lib/diagnostic.js CHANGED
@@ -45,6 +45,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
45
45
  * A code frame is a visualization of a piece of code with a certain amount of
46
46
  * code highlights that point to certain chunk(s) inside the code.
47
47
  */
48
+ /** A JSON object (as in "map") */
48
49
  /**
49
50
  * A style agnostic way of emitting errors, warnings and info.
50
51
  * Reporters are responsible for rendering the message, codeframes, hints, ...
@@ -72,28 +73,24 @@ function anyToDiagnostic(input) {
72
73
 
73
74
  /** Normalize the given error into a diagnostic. */
74
75
  function errorToDiagnostic(error, defaultValues) {
75
- var _defaultValues$origin2, _ref4, _error$highlightedCod;
76
76
  let codeFrames = undefined;
77
77
  if (typeof error === 'string') {
78
- var _defaultValues$origin;
79
78
  return [{
80
- origin: (_defaultValues$origin = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.origin) !== null && _defaultValues$origin !== void 0 ? _defaultValues$origin : 'Error',
79
+ origin: (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.origin) ?? 'Error',
81
80
  message: escapeMarkdown(error)
82
81
  }];
83
82
  }
84
83
  if (error instanceof ThrowableDiagnostic) {
85
84
  return error.diagnostics.map(d => {
86
- var _ref, _d$origin;
87
85
  return {
88
86
  ...d,
89
- origin: (_ref = (_d$origin = d.origin) !== null && _d$origin !== void 0 ? _d$origin : defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.origin) !== null && _ref !== void 0 ? _ref : 'unknown'
87
+ origin: d.origin ?? (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.origin) ?? 'unknown'
90
88
  };
91
89
  });
92
90
  }
93
91
  if (error.loc && error.source != null) {
94
- var _ref2, _ref3, _error$filePath;
95
92
  codeFrames = [{
96
- filePath: (_ref2 = (_ref3 = (_error$filePath = error.filePath) !== null && _error$filePath !== void 0 ? _error$filePath : error.fileName) !== null && _ref3 !== void 0 ? _ref3 : defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.filePath) !== null && _ref2 !== void 0 ? _ref2 : undefined,
93
+ filePath: error.filePath ?? error.fileName ?? (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.filePath) ?? undefined,
97
94
  code: error.source,
98
95
  codeHighlights: [{
99
96
  start: {
@@ -108,10 +105,10 @@ function errorToDiagnostic(error, defaultValues) {
108
105
  }];
109
106
  }
110
107
  return [{
111
- origin: (_defaultValues$origin2 = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.origin) !== null && _defaultValues$origin2 !== void 0 ? _defaultValues$origin2 : 'Error',
108
+ origin: (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.origin) ?? 'Error',
112
109
  message: escapeMarkdown(error.message),
113
110
  name: error.name,
114
- stack: codeFrames == null ? (_ref4 = (_error$highlightedCod = error.highlightedCodeFrame) !== null && _error$highlightedCod !== void 0 ? _error$highlightedCod : error.codeFrame) !== null && _ref4 !== void 0 ? _ref4 : error.stack : undefined,
111
+ stack: codeFrames == null ? error.highlightedCodeFrame ?? error.codeFrame ?? error.stack : undefined,
115
112
  codeFrames
116
113
  }];
117
114
  }
@@ -121,15 +118,14 @@ function errorToDiagnostic(error, defaultValues) {
121
118
  */
122
119
  class ThrowableDiagnostic extends Error {
123
120
  constructor(opts) {
124
- var _diagnostics$0$stack, _diagnostics$0$name;
125
121
  let diagnostics = Array.isArray(opts.diagnostic) ? opts.diagnostic : [opts.diagnostic];
126
122
 
127
123
  // Construct error from diagnostics
128
124
  super(diagnostics[0].message);
129
125
  // @ts-ignore
130
- this.stack = (_diagnostics$0$stack = diagnostics[0].stack) !== null && _diagnostics$0$stack !== void 0 ? _diagnostics$0$stack : super.stack;
126
+ this.stack = diagnostics[0].stack ?? super.stack;
131
127
  // @ts-ignore
132
- this.name = (_diagnostics$0$name = diagnostics[0].name) !== null && _diagnostics$0$name !== void 0 ? _diagnostics$0$name : super.name;
128
+ this.name = diagnostics[0].name ?? super.name;
133
129
  this.diagnostics = diagnostics;
134
130
  }
135
131
  }
@@ -251,15 +247,14 @@ function md(strings, ...params) {
251
247
  let param = params[i];
252
248
  if (Array.isArray(param)) {
253
249
  for (let j = 0; j < param.length; j++) {
254
- var _param$j$mdVerbatim, _param$j;
255
- result.push((_param$j$mdVerbatim = (_param$j = param[j]) === null || _param$j === void 0 ? void 0 : _param$j[mdVerbatim]) !== null && _param$j$mdVerbatim !== void 0 ? _param$j$mdVerbatim : escapeMarkdown(`${param[j]}`));
250
+ var _param$j;
251
+ result.push(((_param$j = param[j]) === null || _param$j === void 0 ? void 0 : _param$j[mdVerbatim]) ?? escapeMarkdown(`${param[j]}`));
256
252
  if (j < param.length - 1) {
257
253
  result.push(', ');
258
254
  }
259
255
  }
260
256
  } else {
261
- var _param$mdVerbatim;
262
- result.push((_param$mdVerbatim = param === null || param === void 0 ? void 0 : param[mdVerbatim]) !== null && _param$mdVerbatim !== void 0 ? _param$mdVerbatim : escapeMarkdown(`${param}`));
257
+ result.push((param === null || param === void 0 ? void 0 : param[mdVerbatim]) ?? escapeMarkdown(`${param}`));
263
258
  }
264
259
  }
265
260
  return result.join('') + strings[strings.length - 1];
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@parcel/diagnostic",
3
- "version": "2.0.0-dev.1528+70889ca07",
3
+ "version": "2.0.0-dev.1557+e87c13686",
4
+ "description": "Types and utilities for printing source-code located errors, warning and information messages.",
4
5
  "license": "MIT",
5
6
  "publishConfig": {
6
7
  "access": "public"
@@ -17,7 +18,7 @@
17
18
  "source": "src/diagnostic.js",
18
19
  "types": "lib/diagnostic.d.ts",
19
20
  "engines": {
20
- "node": ">= 12.0.0"
21
+ "node": ">= 16.0.0"
21
22
  },
22
23
  "scripts": {
23
24
  "build-ts": "flow-to-ts src/*.js --write && tsc --emitDeclarationOnly --declaration --esModuleInterop src/*.ts && mkdir -p lib && mv src/*.d.ts lib/. && rm src/*.ts",
@@ -27,5 +28,5 @@
27
28
  "@mischnic/json-sourcemap": "^0.1.0",
28
29
  "nullthrows": "^1.1.1"
29
30
  },
30
- "gitHead": "70889ca07dccb95e21e4c6a2844d632e3723faf4"
31
+ "gitHead": "e87c13686e8fa4ad96cc61c19d9e4fcf9c372f2e"
31
32
  }
package/src/diagnostic.js CHANGED
@@ -46,6 +46,12 @@ export type DiagnosticCodeFrame = {|
46
46
  codeHighlights: Array<DiagnosticCodeHighlight>,
47
47
  |};
48
48
 
49
+ /** A JSON object (as in "map") */
50
+ type JSONObject = {
51
+ // $FlowFixMe
52
+ [key: string]: any,
53
+ };
54
+
49
55
  /**
50
56
  * A style agnostic way of emitting errors, warnings and info.
51
57
  * Reporters are responsible for rendering the message, codeframes, hints, ...
@@ -72,6 +78,9 @@ export type Diagnostic = {|
72
78
 
73
79
  /** A URL to documentation to learn more about the diagnostic. */
74
80
  documentationURL?: string,
81
+
82
+ /** Diagnostic specific metadata (optional) */
83
+ meta?: JSONObject,
75
84
  |};
76
85
 
77
86
  // This type should represent all error formats Parcel can encounter...