diff --git a/packages/react-dev-utils/typescriptFormatter.js b/packages/react-dev-utils/typescriptFormatter.js index ab1ca9b0706..2d011fc7e71 100644 --- a/packages/react-dev-utils/typescriptFormatter.js +++ b/packages/react-dev-utils/typescriptFormatter.js @@ -13,13 +13,24 @@ const chalk = require('chalk'); const fs = require('fs'); function formatter(message, useColors) { + const hasGetters = typeof message.getFile === 'function'; const colors = new chalk.constructor({ enabled: useColors }); const messageColor = message.isWarningSeverity() ? colors.yellow : colors.red; - const source = - message.getFile() && - fs.existsSync(message.getFile()) && - fs.readFileSync(message.getFile(), 'utf-8'); + let source; + + if (hasGetters) { + source = + message.getFile() && + fs.existsSync(message.getFile()) && + fs.readFileSync(message.getFile(), 'utf-8'); + } else { + source = + message.file && + fs.existsSync(message.file) && + fs.readFileSync(message.file, 'utf-8'); + } + let frame = ''; if (source) { @@ -33,9 +44,11 @@ function formatter(message, useColors) { .join(os.EOL); } + const severity = hasGetters ? message.getSeverity() : message.severity; + return [ - messageColor.bold(`Type ${message.getSeverity().toLowerCase()}: `) + - message.getContent() + + messageColor.bold(`Type ${severity.toLowerCase()}: `) + + (hasGetters ? message.getContent() : message.content) + ' ' + messageColor.underline(`TS${message.code}`), '',