'use strict'
|
|
const extractError = require('./extractWebpackError')
|
|
/**
|
* Applies all transformers to all errors and returns "annotated"
|
* errors.
|
*
|
* Each transformer should have the following signature WebpackError => AnnotatedError
|
*
|
* A WebpackError has the following fields:
|
* - message
|
* - file
|
* - origin
|
* - name
|
* - severity
|
* - webpackError (original error)
|
*
|
* An AnnotatedError should be an extension (Object.assign) of the WebpackError
|
* and add whatever information is convenient for formatting.
|
* In particular, they should have a 'priority' field.
|
*
|
* The plugin will only display errors having maximum priority at the same time.
|
*
|
* If they don't have a 'type' field, the will be handled by the default formatter.
|
*/
|
function processErrors (errors, transformers) {
|
const transform = (error, transformer) => transformer(error)
|
const applyTransformations = (error) => transformers.reduce(transform, error)
|
|
return errors.map(extractError).map(applyTransformations)
|
}
|
|
module.exports = processErrors
|