Skip to content

Commit 4399ddc

Browse files
Add convenience method for library definitions to reduce boilerplate (#251)
1 parent 5adfd51 commit 4399ddc

File tree

1 file changed

+24
-56
lines changed

1 file changed

+24
-56
lines changed

Package.swift

Lines changed: 24 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -12,83 +12,41 @@ let package = Package(
1212
products: [
1313
// MARK: Workflow
1414

15-
.library(
16-
name: "Workflow",
17-
targets: ["Workflow"]
18-
),
19-
.library(
20-
name: "WorkflowTesting",
21-
targets: ["WorkflowTesting"]
22-
),
15+
.singleTargetLibrary("Workflow"),
16+
.singleTargetLibrary("WorkflowTesting"),
2317

2418
// MARK: WorkflowUI
2519

26-
.library(
27-
name: "WorkflowUI",
28-
targets: ["WorkflowUI"]
29-
),
30-
.library(
31-
name: "WorkflowSwiftUI",
32-
targets: ["WorkflowSwiftUI"]
33-
),
20+
.singleTargetLibrary("WorkflowUI"),
21+
.singleTargetLibrary("WorkflowSwiftUI"),
3422

3523
// MARK: WorkflowReactiveSwift
3624

37-
.library(
38-
name: "WorkflowReactiveSwift",
39-
targets: ["WorkflowReactiveSwift"]
40-
),
41-
.library(
42-
name: "WorkflowReactiveSwiftTesting",
43-
targets: ["WorkflowReactiveSwiftTesting"]
44-
),
25+
.singleTargetLibrary("WorkflowReactiveSwift"),
26+
.singleTargetLibrary("WorkflowReactiveSwiftTesting"),
4527

4628
// MARK: WorkflowRxSwift
4729

48-
.library(
49-
name: "WorkflowRxSwift",
50-
targets: ["WorkflowRxSwift"]
51-
),
52-
.library(
53-
name: "WorkflowRxSwiftTesting",
54-
targets: ["WorkflowRxSwiftTesting"]
55-
),
30+
.singleTargetLibrary("WorkflowRxSwift"),
31+
.singleTargetLibrary("WorkflowRxSwiftTesting"),
5632

5733
// MARK: WorkflowCombine
5834

59-
.library(
60-
name: "WorkflowCombine",
61-
targets: ["WorkflowCombine"]
62-
),
63-
.library(
64-
name: "WorkflowCombineTesting",
65-
targets: ["WorkflowCombineTesting"]
66-
),
35+
.singleTargetLibrary("WorkflowCombine"),
36+
.singleTargetLibrary("WorkflowCombineTesting"),
6737

6838
// MARK: WorkflowConcurrency
6939

70-
.library(
71-
name: "WorkflowConcurrency",
72-
targets: ["WorkflowConcurrency"]
73-
),
74-
.library(
75-
name: "WorkflowConcurrencyTesting",
76-
targets: ["WorkflowConcurrencyTesting"]
77-
),
40+
.singleTargetLibrary("WorkflowConcurrency"),
41+
.singleTargetLibrary("WorkflowConcurrencyTesting"),
7842

7943
// MARK: ViewEnvironment
8044

81-
.library(
82-
name: "ViewEnvironment",
83-
targets: ["ViewEnvironment"]
84-
),
45+
.singleTargetLibrary("ViewEnvironment"),
8546

8647
// MARK: ViewEnvironmentUI
8748

88-
.library(
89-
name: "ViewEnvironmentUI",
90-
targets: ["ViewEnvironmentUI"]
91-
),
49+
.singleTargetLibrary("ViewEnvironmentUI"),
9250
],
9351
dependencies: [
9452
.package(url: "https://github.com/ReactiveCocoa/ReactiveSwift.git", from: "7.1.1"),
@@ -246,3 +204,13 @@ let package = Package(
246204
],
247205
swiftLanguageVersions: [.v5]
248206
)
207+
208+
// MARK: Helpers
209+
210+
extension PackageDescription.Product {
211+
static func singleTargetLibrary(
212+
_ name: String
213+
) -> PackageDescription.Product {
214+
.library(name: name, targets: [name])
215+
}
216+
}

0 commit comments

Comments
 (0)