Skip to content

Commit 5d9022f

Browse files
Merge pull request #1584 from apollographql/add/spm-5.3
Swift Package Manager 5.3 compatibility
2 parents 0fe2a8e + 1e702bd commit 5d9022f

45 files changed

Lines changed: 576 additions & 242 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Apollo.xcodeproj/project.pbxproj

Lines changed: 152 additions & 118 deletions
Large diffs are not rendered by default.

Package.swift

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.2
1+
// swift-tools-version:5.3
22
// The swift-tools-version declares the minimum version of Swift required to build this package.
33

44
import PackageDescription
@@ -41,91 +41,143 @@ let package = Package(
4141
.upToNextMinor(from: "0.0.2")),
4242
],
4343
targets: [
44-
.target(
45-
name: "ApolloCore",
46-
dependencies: []),
44+
.target(
45+
name: "ApolloCore",
46+
dependencies: [],
47+
exclude: [
48+
"Info.plist"
49+
]),
4750
.target(
4851
name: "Apollo",
4952
dependencies: [
5053
"ApolloCore",
54+
],
55+
exclude: [
56+
"Info.plist"
5157
]),
5258
.target(
5359
name: "ApolloCodegenLib",
5460
dependencies: [
5561
"ApolloCore",
5662
"InflectorKit",
5763
.product(name: "Stencil", package: "Stencil"),
64+
],
65+
exclude: [
66+
"Info.plist"
5867
]),
5968
.target(
6069
name: "ApolloSQLite",
6170
dependencies: [
6271
"Apollo",
6372
.product(name: "SQLite", package: "SQLite.swift"),
73+
],
74+
exclude: [
75+
"Info.plist"
6476
]),
6577
.target(
6678
name: "ApolloSQLiteTestSupport",
6779
dependencies: [
6880
"ApolloSQLite",
6981
"ApolloTestSupport"
82+
],
83+
exclude: [
84+
"Info.plist"
7085
]),
7186
.target(
7287
name: "ApolloWebSocket",
7388
dependencies: [
7489
"Apollo",
7590
"ApolloCore",
7691
.product(name: "Starscream", package: "Starscream"),
92+
],
93+
exclude: [
94+
"Info.plist"
7795
]),
7896
.target(
7997
name: "ApolloTestSupport",
8098
dependencies: [
8199
"Apollo",
100+
],
101+
exclude: [
102+
"Info.plist"
82103
]),
83104
.target(
84105
name: "GitHubAPI",
85106
dependencies: [
86107
"Apollo",
108+
],
109+
exclude: [
110+
"Info.plist",
111+
"graphql"
87112
]),
88113
.target(
89114
name: "StarWarsAPI",
90115
dependencies: [
91116
"Apollo",
117+
],
118+
exclude: [
119+
"Info.plist",
120+
"graphql"
92121
]),
93122
.target(
94123
name: "UploadAPI",
95124
dependencies: [
96125
"Apollo",
126+
],
127+
exclude: [
128+
"Info.plist",
129+
"graphql"
97130
]),
98131
.testTarget(
99132
name: "ApolloTests",
100133
dependencies: [
101134
"ApolloTestSupport",
102135
"StarWarsAPI",
103136
"UploadAPI"
137+
],
138+
exclude: [
139+
"Info.plist"
140+
],
141+
resources: [
142+
.copy("Resources")
104143
]),
105144
.testTarget(
106145
name: "ApolloCacheDependentTests",
107146
dependencies: [
108147
"ApolloSQLiteTestSupport",
109148
"StarWarsAPI",
149+
],
150+
exclude: [
151+
"Info.plist"
110152
]),
111153
.testTarget(
112154
name: "ApolloCodegenTests",
113155
dependencies: [
114156
"ApolloTestSupport",
115157
"ApolloCodegenLib"
158+
],
159+
exclude: [
160+
"Info.plist",
161+
"scripts directory"
116162
]),
117163
.testTarget(
118164
name: "ApolloSQLiteTests",
119165
dependencies: [
120166
"ApolloSQLiteTestSupport",
121167
"StarWarsAPI"
168+
],
169+
exclude: [
170+
"Info.plist"
122171
]),
123172
.testTarget(
124173
name: "ApolloWebsocketTests",
125174
dependencies: [
126175
"ApolloWebSocket",
127176
"ApolloTestSupport",
128177
"StarWarsAPI",
178+
],
179+
exclude: [
180+
"Info.plist"
129181
]),
130182
]
131183
)

Package@swift-5.2.swift

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
// swift-tools-version:5.2
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
4+
import PackageDescription
5+
6+
let package = Package(
7+
name: "Apollo",
8+
products: [
9+
.library(
10+
name: "ApolloCore",
11+
targets: ["ApolloCore"]),
12+
.library(
13+
name: "Apollo",
14+
targets: ["Apollo"]),
15+
.library(
16+
name: "Apollo-Dynamic",
17+
type: .dynamic,
18+
targets: ["Apollo"]),
19+
.library(
20+
name: "ApolloCodegenLib",
21+
targets: ["ApolloCodegenLib"]),
22+
.library(
23+
name: "ApolloSQLite",
24+
targets: ["ApolloSQLite"]),
25+
.library(
26+
name: "ApolloWebSocket",
27+
targets: ["ApolloWebSocket"]),
28+
],
29+
dependencies: [
30+
.package(
31+
url: "https://github.com/stephencelis/SQLite.swift.git",
32+
.upToNextMinor(from: "0.12.2")),
33+
.package(
34+
url: "https://github.com/daltoniam/Starscream",
35+
.upToNextMinor(from: "3.1.1")),
36+
.package(
37+
url: "https://github.com/stencilproject/Stencil.git",
38+
.upToNextMinor(from: "0.14.0")),
39+
.package(
40+
url: "https://github.com/apollographql/InflectorKit",
41+
.upToNextMinor(from: "0.0.2")),
42+
],
43+
targets: [
44+
.target(
45+
name: "ApolloCore",
46+
dependencies: []),
47+
.target(
48+
name: "Apollo",
49+
dependencies: [
50+
"ApolloCore",
51+
]),
52+
.target(
53+
name: "ApolloCodegenLib",
54+
dependencies: [
55+
"ApolloCore",
56+
"InflectorKit",
57+
.product(name: "Stencil", package: "Stencil"),
58+
]),
59+
.target(
60+
name: "ApolloSQLite",
61+
dependencies: [
62+
"Apollo",
63+
.product(name: "SQLite", package: "SQLite.swift"),
64+
]),
65+
.target(
66+
name: "ApolloSQLiteTestSupport",
67+
dependencies: [
68+
"ApolloSQLite",
69+
"ApolloTestSupport"
70+
]),
71+
.target(
72+
name: "ApolloWebSocket",
73+
dependencies: [
74+
"Apollo",
75+
"ApolloCore",
76+
.product(name: "Starscream", package: "Starscream"),
77+
]),
78+
.target(
79+
name: "ApolloTestSupport",
80+
dependencies: [
81+
"Apollo",
82+
]),
83+
.target(
84+
name: "GitHubAPI",
85+
dependencies: [
86+
"Apollo",
87+
]),
88+
.target(
89+
name: "StarWarsAPI",
90+
dependencies: [
91+
"Apollo",
92+
]),
93+
.target(
94+
name: "UploadAPI",
95+
dependencies: [
96+
"Apollo",
97+
]),
98+
.testTarget(
99+
name: "ApolloTests",
100+
dependencies: [
101+
"ApolloTestSupport",
102+
"StarWarsAPI",
103+
"UploadAPI"
104+
]),
105+
.testTarget(
106+
name: "ApolloCacheDependentTests",
107+
dependencies: [
108+
"ApolloSQLiteTestSupport",
109+
"StarWarsAPI",
110+
]),
111+
.testTarget(
112+
name: "ApolloCodegenTests",
113+
dependencies: [
114+
"ApolloTestSupport",
115+
"ApolloCodegenLib"
116+
]),
117+
.testTarget(
118+
name: "ApolloSQLiteTests",
119+
dependencies: [
120+
"ApolloSQLiteTestSupport",
121+
"StarWarsAPI"
122+
]),
123+
.testTarget(
124+
name: "ApolloWebsocketTests",
125+
dependencies: [
126+
"ApolloWebSocket",
127+
"ApolloTestSupport",
128+
"StarWarsAPI",
129+
]),
130+
]
131+
)

Sources/ApolloCodegenLib/ApolloCodegen.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,11 @@ public class ApolloCodegen {
4848
throw CodegenError.multipleFilesButNotDirectoryURL(folderURL)
4949
}
5050
case .singleFile(let fileURL):
51-
guard fileURL.apollo.isSwiftFileURL else {
52-
throw CodegenError.singleFileButNotSwiftFileURL(fileURL)
53-
}
51+
if options.codegenEngine == .typescript {
52+
guard fileURL.apollo.isSwiftFileURL else {
53+
throw CodegenError.singleFileButNotSwiftFileURL(fileURL)
54+
}
55+
} // else we're fine with JSON at this point for intermediate purposes.
5456

5557
try FileManager.default.apollo.createContainingFolderIfNeeded(for: fileURL)
5658
}

Sources/ApolloCodegenLib/ApolloCodegenOptions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public struct ApolloCodegenOptions {
1414
}
1515

1616
/// Enum to select which code generation you wish to use
17-
public enum CodeGenerationEngine {
17+
public enum CodeGenerationEngine: Equatable {
1818
/// The default, tried and true code generation engine
1919
case typescript
2020

Sources/GitHubAPI/Queries/IssuesAndCommentsForRepository.graphql renamed to Sources/GitHubAPI/graphql/Queries/IssuesAndCommentsForRepository.graphql

File renamed without changes.
File renamed without changes.

Sources/GitHubAPI/Queries/TestFolder/TestFolder2/TestFolder3/RepoURL.graphql renamed to Sources/GitHubAPI/graphql/Queries/TestFolder/TestFolder2/TestFolder3/RepoURL.graphql

File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)