1 | 'use strict';
|
2 | const trimOffNewlines = require('trim-off-newlines');
|
3 | const chalk = require('../chalk').get();
|
4 |
|
5 | function formatSerializedError(error) {
|
6 | const printMessage = error.values.length === 0 ?
|
7 | Boolean(error.message) :
|
8 | !error.values[0].label.startsWith(error.message);
|
9 |
|
10 | if (error.statements.length === 0 && error.values.length === 0) {
|
11 | return {formatted: null, printMessage};
|
12 | }
|
13 |
|
14 | let formatted = '';
|
15 | for (const value of error.values) {
|
16 | formatted += `${value.label}\n\n${trimOffNewlines(value.formatted)}\n\n`;
|
17 | }
|
18 |
|
19 | for (const statement of error.statements) {
|
20 | formatted += `${statement[0]}\n${chalk.grey('=>')} ${trimOffNewlines(statement[1])}\n\n`;
|
21 | }
|
22 |
|
23 | formatted = trimOffNewlines(formatted);
|
24 | return {formatted, printMessage};
|
25 | }
|
26 |
|
27 | module.exports = formatSerializedError;
|