Skip to content

Commit 2afb042

Browse files
authored
Leverage upstream database seeding helper (#43)
* Leverage upstream database seeding helper This logic is being incorporated directly into StructuredQueries. * wip * wip
1 parent 1c53831 commit 2afb042

File tree

7 files changed

+9
-30
lines changed

7 files changed

+9
-30
lines changed

Examples/Reminders/RemindersListDetail.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ struct RemindersListDetailView: View {
203203
let remindersList: RemindersList
204204
let isPastDue: Bool
205205
let notes: String
206-
@Column(as: JSONRepresentation<[String]>.self)
206+
@Column(as: [String].JSONRepresentation.self)
207207
let tags: [String]
208208
}
209209
}

Examples/Reminders/Schema.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ extension Tag {
7272
}
7373

7474
extension Tag.TableColumns {
75-
var jsonNames: some QueryExpression<JSONRepresentation<[String]>> {
75+
var jsonNames: some QueryExpression<[String].JSONRepresentation> {
7676
self.title.jsonGroupArray(filter: self.title.isNot(nil))
7777
}
7878
}

Examples/Reminders/SearchReminders.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ struct SearchRemindersView: View {
112112
let notes: String
113113
let reminder: Reminders.Reminder
114114
let remindersList: RemindersList
115-
@Column(as: JSONRepresentation<[String]>.self)
115+
@Column(as: [String].JSONRepresentation.self)
116116
let tags: [String]
117117
}
118118
}

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ let package = Package(
3333
.package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.9.0"),
3434
.package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "1.5.0"),
3535
.package(url: "https://github.com/pointfreeco/swift-sharing", from: "2.3.0"),
36-
.package(url: "https://github.com/pointfreeco/swift-structured-queries", from: "0.1.1"),
36+
.package(url: "https://github.com/pointfreeco/swift-structured-queries", from: "0.2.0"),
3737
],
3838
targets: [
3939
.target(

SharingGRDB.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sources/StructuredQueriesGRDBCore/Seed.swift

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -53,28 +53,8 @@ extension Database {
5353
@InsertValuesBuilder<any StructuredQueriesCore.Table>
5454
_ build: () -> [any StructuredQueriesCore.Table]
5555
) throws {
56-
var seeds = build()
57-
while !seeds.isEmpty {
58-
guard let first = seeds.first else { break }
59-
let firstType = type(of: first)
60-
61-
if let firstType = firstType as? any TableDraft.Type {
62-
func insertBatch<T: TableDraft>(_: T.Type) throws {
63-
let batch = Array(seeds.lazy.prefix { $0 is T }.compactMap { $0 as? T })
64-
defer { seeds.removeFirst(batch.count) }
65-
try T.PrimaryTable.insert(batch).execute(self)
66-
}
67-
68-
try insertBatch(firstType)
69-
} else {
70-
func insertBatch<T: StructuredQueriesCore.Table>(_: T.Type) throws {
71-
let batch = Array(seeds.lazy.prefix { $0 is T }.compactMap { $0 as? T })
72-
defer { seeds.removeFirst(batch.count) }
73-
try T.insert(batch).execute(self)
74-
}
75-
76-
try insertBatch(firstType)
77-
}
56+
for insert in Seeds(build) {
57+
try insert.execute(self)
7858
}
7959
}
8060
}

Tests/SharingGRDBTests/FetchTests.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import GRDB
44
import Sharing
55
import SharingGRDB
66
import StructuredQueries
7-
import SwiftUI
87
import Testing
98

109
@Suite(.dependency(\.defaultDatabase, try .database()))

0 commit comments

Comments
 (0)