aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-message-util/build/separateMessageFromStack.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/jest-message-util/build/separateMessageFromStack.js')
-rw-r--r--node_modules/jest-message-util/build/separateMessageFromStack.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/node_modules/jest-message-util/build/separateMessageFromStack.js b/node_modules/jest-message-util/build/separateMessageFromStack.js
new file mode 100644
index 000000000..14dcc5388
--- /dev/null
+++ b/node_modules/jest-message-util/build/separateMessageFromStack.js
@@ -0,0 +1,31 @@
+/**
+ * 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 };
+}; \ No newline at end of file