UNPKG

791 BJavaScriptView Raw
1'use strict';
2const trimOffNewlines = require('trim-off-newlines');
3const chalk = require('../chalk').get();
4
5function 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
27module.exports = formatSerializedError;