parcel-bundler/parcel

Normalize code frames on thrown errors so that `code` always exists

Open

#5115 aperta il 8 set 2020

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)JavaScript (2274 fork)batch import
:raising_hand_woman: FeatureGood First Issue✨ Parcel 2

Metriche repository

Star
 (44.030 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

🙋 feature request

When using the Parcel API and an error is thrown, there's no guarantee that error.diagnostics.*.codeFrame.code exists. If it doesn't then the consumer of the API has to duplicate this logic to retrieve the code pertaining to the code frame:

https://github.com/parcel-bundler/parcel/blob/c4e494f3b9fd0eac672edc1a27c6c9216182dd6b/packages/core/utils/src/prettyDiagnostic.js#L52-L55

This is kind of a pain. I would love to see Parcel normalize these errors so that when a consumer receives a code frame on an error, the code property always exists and the consumer doesn't have to bother with reading source files directly.

🤔 Expected Behavior

I would expect the code property to always exists on any code frame being reported by Parcel.

😯 Current Behavior

The code property only sometimes exists on a code frame.

💁 Possible Solution

If a plugin doesn't provide the code property, Parcel could add it before the error makes its way to the Parcel consumer.

🔦 Context

This is described in further detail in https://github.com/parcel-bundler/parcel/discussions/5081.

💻 Examples

Guida contributor