Skip to content

Commit efac97a

Browse files
authored
Merge pull request kean#299 from rounak/har-crash-fix
Fix crash when exporting HAR file
2 parents 2a0d1f5 + 3dd1cbd commit efac97a

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

Sources/Pulse/LoggerStore/LoggerStore.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -766,9 +766,10 @@ extension LoggerStore {
766766
/// - parameter predicate: By default, `nil`.
767767
public func messages(
768768
sortDescriptors: [SortDescriptor<LoggerMessageEntity>] = [SortDescriptor(\.createdAt, order: .forward)],
769-
predicate: NSPredicate? = nil
769+
predicate: NSPredicate? = nil,
770+
context: NSManagedObjectContext? = nil
770771
) throws -> [LoggerMessageEntity] {
771-
try viewContext.fetch(LoggerMessageEntity.self) {
772+
try (context ?? viewContext).fetch(LoggerMessageEntity.self) {
772773
$0.sortDescriptors = sortDescriptors.map(NSSortDescriptor.init)
773774
$0.predicate = predicate
774775
}
@@ -781,9 +782,10 @@ extension LoggerStore {
781782
/// - parameter predicate: By default, `nil`.
782783
public func tasks(
783784
sortDescriptors: [SortDescriptor<NetworkTaskEntity>] = [SortDescriptor(\.createdAt, order: .forward)],
784-
predicate: NSPredicate? = nil
785+
predicate: NSPredicate? = nil,
786+
context: NSManagedObjectContext? = nil
785787
) throws -> [NetworkTaskEntity] {
786-
try viewContext.fetch(NetworkTaskEntity.self) {
788+
try (context ?? viewContext).fetch(NetworkTaskEntity.self) {
787789
$0.sortDescriptors = sortDescriptors.map(NSSortDescriptor.init)
788790
$0.predicate = predicate
789791
}

Sources/PulseUI/Helpers/HARDocument.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ struct HARDocument: Encodable {
1818
init(store: LoggerStore) throws {
1919
var entries: [Entry] = []
2020
var pages: [Page] = []
21-
try Dictionary(grouping: store.tasks(), by: \.url).values.forEach { networkTasks in
21+
try Dictionary(grouping: store.tasks(context: store.backgroundContext), by: \.url).values.forEach { networkTasks in
2222
let pageId = "page_\(pages.count)"
2323
pages.append(
2424
.init(
@@ -29,7 +29,7 @@ struct HARDocument: Encodable {
2929
)
3030
entries.append(contentsOf: networkTasks.map { .init(entity: $0, pageId: pageId) })
3131
}
32-
try store.messages().forEach { message in
32+
try store.messages(context: store.backgroundContext).forEach { message in
3333
if let task = message.task {
3434
entries.append(.init(entity: task, pageId: "page_\(pages.count)"))
3535
}

0 commit comments

Comments
 (0)