/** * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ 'use strict'; const ERROR_TEXT = 'Error: '; // jasmine and worker farm sometimes don't give us access to the actual // Error object, so we have to regexp out the message from the stack string // to format it. module.exports = content => { if (!content) { return { message: '', stack: '' }; } const messageMatch = content.match(/(^(.|\n)*?(?=\n\s*at\s.*\:\d*\:\d*))/); let message = messageMatch ? messageMatch[0] : 'Error'; const stack = messageMatch ? content.slice(message.length) : content; // If the error is a plain error instead of a SyntaxError or TypeError // we remove it from the message because it is generally not useful. if (message.startsWith(ERROR_TEXT)) { message = message.substr(ERROR_TEXT.length); } return { message, stack }; };