Extract RCTFormatStackTrace function from RCTFormatError

Summary:
Extracts a new `RCTFormatStackTrace` function from `RCTFormatError`.

Changelog: [Internal]

Reviewed By: shergin

Differential Revision: D18114387

fbshipit-source-id: 4466f52d75d9da3a257cd1cc7067492a0c19a7d5
This commit is contained in:
Moti Zilberman
2019-11-14 10:33:14 -08:00
committed by Facebook Github Bot
parent 63b534a745
commit 33ee724501
2 changed files with 15 additions and 5 deletions
+5
View File
@@ -135,6 +135,11 @@ RCT_EXTERN NSString *RCTCurrentThreadName(void);
*/
RCT_EXTERN NSString *RCTFormatError(NSString *message, NSArray<NSDictionary<NSString *, id> *> *stacktrace, NSUInteger maxMessageLength);
/**
* Formats a JS stack trace for logging.
*/
RCT_EXTERN NSString *RCTFormatStackTrace(NSArray<NSDictionary<NSString *, id> *> *stackTrace);
/**
* Convenience macro to assert which thread is currently running (DEBUG mode only)
*/
+10 -5
View File
@@ -166,9 +166,14 @@ NSString *RCTFormatError(NSString *message, NSArray<NSDictionary<NSString *, id>
message = [[message substringToIndex:maxMessageLength] stringByAppendingString:@"..."];
}
NSMutableString *prettyStack = [NSMutableString string];
NSString *prettyStack = RCTFormatStackTrace(stackTrace);
return [NSString stringWithFormat:@"%@%@%@", message, prettyStack ? @", stack:\n" : @"", prettyStack ? prettyStack : @""];
}
NSString *RCTFormatStackTrace(NSArray<NSDictionary<NSString *, id> *> *stackTrace) {
if (stackTrace) {
[prettyStack appendString:@", stack:\n"];
NSMutableString *prettyStack = [NSMutableString string];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b((?:seg-\\d+(?:_\\d+)?|\\d+)\\.js)"
options:NSRegularExpressionCaseInsensitive
@@ -184,9 +189,10 @@ NSString *RCTFormatError(NSString *message, NSArray<NSDictionary<NSString *, id>
[prettyStack appendFormat:@"%@@%@%@:%@\n", frame[@"methodName"], fileName, frame[@"lineNumber"], frame[@"column"]];
}
}
return [NSString stringWithFormat:@"%@%@", message, prettyStack];
return prettyStack;
}
return nil;
}
void RCTFatalException(NSException *exception)
@@ -216,4 +222,3 @@ RCTFatalExceptionHandler RCTGetFatalExceptionHandler(void)
{
return RCTCurrentFatalExceptionHandler;
}