Skip to content

Commit da7609c

Browse files
committed
Convert remainder of Analyze + related to a/a
1 parent e8b125c commit da7609c

File tree

3 files changed

+36
-47
lines changed

3 files changed

+36
-47
lines changed

Sources/App/Commands/Analyze.swift

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ extension Analyze {
196196
}
197197

198198
for (version, pkgInfo) in versionsPkgInfo {
199-
try await updateVersion(on: tx, version: version, packageInfo: pkgInfo).get()
199+
try await updateVersion(on: tx, version: version, packageInfo: pkgInfo)
200200
try await recreateProducts(on: tx, version: version, manifest: pkgInfo.packageManifest)
201201
try await recreateTargets(on: tx, version: version, manifest: pkgInfo.packageManifest)
202202
}
@@ -567,7 +567,7 @@ extension Analyze {
567567
/// - Returns: future
568568
static func updateVersion(on database: Database,
569569
version: Version,
570-
packageInfo: PackageInfo) -> EventLoopFuture<Void> {
570+
packageInfo: PackageInfo) async throws {
571571
let manifest = packageInfo.packageManifest
572572
version.packageName = manifest.name
573573
version.swiftVersions = manifest.swiftLanguageVersions?.compactMap(SwiftVersion.init) ?? []
@@ -576,13 +576,13 @@ extension Analyze {
576576
version.spiManifest = packageInfo.spiManifest
577577
version.hasBinaryTargets = packageInfo.packageManifest.targets.contains { $0.type == .binary }
578578

579-
return version.save(on: database)
579+
try await version.save(on: database)
580580
}
581581

582582

583583
static func recreateProducts(on database: Database, version: Version, manifest: Manifest) async throws {
584-
try await deleteProducts(on: database, version: version).get()
585-
try await createProducts(on: database, version: version, manifest: manifest).get()
584+
try await deleteProducts(on: database, version: version)
585+
try await createProducts(on: database, version: version, manifest: manifest)
586586
}
587587

588588

@@ -591,11 +591,9 @@ extension Analyze {
591591
/// - database: database connection
592592
/// - version: parent model object
593593
/// - Returns: future
594-
static func deleteProducts(on database: Database, version: Version) -> EventLoopFuture<Void> {
595-
guard let versionId = version.id else {
596-
return database.eventLoop.future()
597-
}
598-
return Product.query(on: database)
594+
static func deleteProducts(on database: Database, version: Version) async throws {
595+
guard let versionId = version.id else { return }
596+
try await Product.query(on: database)
599597
.filter(\.$version.$id == versionId)
600598
.delete()
601599
}
@@ -607,8 +605,8 @@ extension Analyze {
607605
/// - version: version to update
608606
/// - manifest: `Manifest` data
609607
/// - Returns: future
610-
static func createProducts(on database: Database, version: Version, manifest: Manifest) -> EventLoopFuture<Void> {
611-
manifest.products.compactMap { manifestProduct in
608+
static func createProducts(on database: Database, version: Version, manifest: Manifest) async throws {
609+
try await manifest.products.compactMap { manifestProduct in
612610
try? Product(version: version,
613611
type: .init(manifestProductType: manifestProduct.type),
614612
name: manifestProduct.name,
@@ -619,8 +617,8 @@ extension Analyze {
619617

620618

621619
static func recreateTargets(on database: Database, version: Version, manifest: Manifest) async throws {
622-
try await deleteTargets(on: database, version: version).get()
623-
try await createTargets(on: database, version: version, manifest: manifest).get()
620+
try await deleteTargets(on: database, version: version)
621+
try await createTargets(on: database, version: version, manifest: manifest)
624622
}
625623

626624

@@ -629,11 +627,9 @@ extension Analyze {
629627
/// - database: database connection
630628
/// - version: parent model object
631629
/// - Returns: future
632-
static func deleteTargets(on database: Database, version: Version) -> EventLoopFuture<Void> {
633-
guard let versionId = version.id else {
634-
return database.eventLoop.future()
635-
}
636-
return Target.query(on: database)
630+
static func deleteTargets(on database: Database, version: Version) async throws {
631+
guard let versionId = version.id else { return }
632+
try await Target.query(on: database)
637633
.filter(\.$version.$id == versionId)
638634
.delete()
639635
}
@@ -645,8 +641,8 @@ extension Analyze {
645641
/// - version: version to update
646642
/// - manifest: `Manifest` data
647643
/// - Returns: future
648-
static func createTargets(on database: Database, version: Version, manifest: Manifest) -> EventLoopFuture<Void> {
649-
manifest.targets.compactMap {
644+
static func createTargets(on database: Database, version: Version, manifest: Manifest) async throws {
645+
try await manifest.targets.compactMap {
650646
try? Target(version: version, name: $0.name, type: .init(manifestTargetType: $0.type))
651647
}
652648
.create(on: database)

Sources/App/Commands/ReAnalyzeVersions.swift

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -201,15 +201,9 @@ enum ReAnalyzeVersions {
201201
continue
202202
}
203203

204-
try await Analyze.updateVersion(on: tx,
205-
version: version,
206-
packageInfo: pkgInfo).get()
207-
try await Analyze.recreateProducts(on: tx,
208-
version: version,
209-
manifest: pkgInfo.packageManifest)
210-
try await Analyze.recreateTargets(on: tx,
211-
version: version,
212-
manifest: pkgInfo.packageManifest)
204+
try await Analyze.updateVersion(on: tx, version: version, packageInfo: pkgInfo)
205+
try await Analyze.recreateProducts(on: tx, version: version, manifest: pkgInfo.packageManifest)
206+
try await Analyze.recreateTargets(on: tx, version: version, manifest: pkgInfo.packageManifest)
213207
}
214208

215209
// No need to run `updateLatestVersions` because we're only operating on existing versions,

Tests/AppTests/AnalyzerTests.swift

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -746,10 +746,10 @@ class AnalyzerTests: AppTestCase {
746746
XCTAssertEqual(info.packageManifest.name, "SPI-Server")
747747
}
748748

749-
func test_updateVersion() throws {
749+
func test_updateVersion() async throws {
750750
// setup
751751
let pkg = Package(id: UUID(), url: "1")
752-
try pkg.save(on: app.db).wait()
752+
try await pkg.save(on: app.db)
753753
let version = try Version(package: pkg, reference: .branch("main"))
754754
let manifest = Manifest(name: "foo",
755755
platforms: [.init(platformName: .ios, version: "11.0"),
@@ -767,13 +767,12 @@ class AnalyzerTests: AppTestCase {
767767
""")
768768

769769
// MUT
770-
_ = try Analyze.updateVersion(on: app.db,
771-
version: version,
772-
packageInfo: .init(packageManifest: manifest,
773-
spiManifest: spiManifest)).wait()
770+
_ = try await Analyze.updateVersion(on: app.db,
771+
version: version,
772+
packageInfo: .init(packageManifest: manifest, spiManifest: spiManifest))
774773

775774
// read back and validate
776-
let v = try Version.query(on: app.db).first().wait()!
775+
let v = try await XCTUnwrapAsync(await Version.query(on: app.db).first())
777776
XCTAssertEqual(v.packageName, "foo")
778777
XCTAssertEqual(v.resolvedDependencies?.map(\.packageName), nil)
779778
XCTAssertEqual(v.swiftVersions, ["1", "2", "3.0.0"].asSwiftVersions)
@@ -782,7 +781,7 @@ class AnalyzerTests: AppTestCase {
782781
XCTAssertEqual(v.spiManifest, spiManifest)
783782
}
784783

785-
func test_createProducts() throws {
784+
func test_createProducts() async throws {
786785
// setup
787786
let p = Package(id: UUID(), url: "1")
788787
let v = try Version(id: UUID(), package: p, packageName: "1", reference: .tag(.init(1, 0, 0)))
@@ -795,35 +794,35 @@ class AnalyzerTests: AppTestCase {
795794
type: .executable)],
796795
targets: [],
797796
toolsVersion: .init(version: "5.0.0"))
798-
try p.save(on: app.db).wait()
799-
try v.save(on: app.db).wait()
797+
try await p.save(on: app.db)
798+
try await v.save(on: app.db)
800799

801800
// MUT
802-
try Analyze.createProducts(on: app.db, version: v, manifest: m).wait()
801+
try await Analyze.createProducts(on: app.db, version: v, manifest: m)
803802

804803
// validation
805-
let products = try Product.query(on: app.db).sort(\.$createdAt).all().wait()
804+
let products = try await Product.query(on: app.db).sort(\.$createdAt).all()
806805
XCTAssertEqual(products.map(\.name), ["p1", "p2"])
807806
XCTAssertEqual(products.map(\.targets), [["t1", "t2"], ["t3", "t4"]])
808807
XCTAssertEqual(products.map(\.type), [.library(.automatic), .executable])
809808
}
810809

811-
func test_createTargets() throws {
810+
func test_createTargets() async throws {
812811
// setup
813812
let p = Package(id: UUID(), url: "1")
814813
let v = try Version(id: UUID(), package: p, packageName: "1", reference: .tag(.init(1, 0, 0)))
815814
let m = Manifest(name: "1",
816815
products: [],
817816
targets: [.init(name: "t1", type: .regular), .init(name: "t2", type: .executable)],
818817
toolsVersion: .init(version: "5.0.0"))
819-
try p.save(on: app.db).wait()
820-
try v.save(on: app.db).wait()
818+
try await p.save(on: app.db)
819+
try await v.save(on: app.db)
821820

822821
// MUT
823-
try Analyze.createTargets(on: app.db, version: v, manifest: m).wait()
822+
try await Analyze.createTargets(on: app.db, version: v, manifest: m)
824823

825824
// validation
826-
let targets = try Target.query(on: app.db).sort(\.$createdAt).all().wait()
825+
let targets = try await Target.query(on: app.db).sort(\.$createdAt).all()
827826
XCTAssertEqual(targets.map(\.name), ["t1", "t2"])
828827
XCTAssertEqual(targets.map(\.type), [.regular, .executable])
829828
}

0 commit comments

Comments
 (0)