formatTypecheckerMessage = (message) => {
      const {severity, file, line, character} = message;

      const messageColor = severity == 'warning' ? chalk.yellow : chalk.red;

      const source =
        file && fs.existsSync(file) && fs.readFileSync(file, 'utf-8');
      const frame = source
        ? codeFrame(
            source,
            {start: {line: line, column: character}},
            {highlightCode: true, linesAbove: 2, linesBelow: 2},
          )
            .split('\n')
            .map((str) => '  ' + str)
            .join(os.EOL)
        : '';

      return [
        os.EOL,
        messageColor.bold(`${severity.toLowerCase()} in `) +
          chalk.cyan.bold(`${file}(${line},${character})`) +
          messageColor(':'),
        '',
        frame,
      ].join(os.EOL);
    }
@fileoverview A 'start' script for Blockly extension packages.
This script:
  Builds the src and test directories in development mode.
  Starts the webpack dev server which watches changes to these directories.
  Opens the test page `0.0.0.0:3000/test`.
  Hot reloads the page if any changes are made to the source files.
@author samelh@google.com (Sam El-Husseini)