File tree Expand file tree Collapse file tree 1 file changed +31
-3
lines changed
Sources/DangerDependenciesResolver Expand file tree Collapse file tree 1 file changed +31
-3
lines changed Original file line number Diff line number Diff line change @@ -59,15 +59,43 @@ struct PackageDataProvider: PackageDataProviding {
59
59
struct Object : Decodable {
60
60
let pins : [ Package . Pinned ]
61
61
}
62
+ enum Version {
63
+ /// swift-tools-version <= 5.5
64
+ case v1( object: Object )
65
+ /// swift-tools-version >= 5.6
66
+ case v2( pins: [ Package . Pinned ] )
67
+ }
68
+ let version : Version
69
+
70
+ enum CodingKeys : CodingKey {
71
+ case object
72
+ case pins
73
+ case version
74
+ }
62
75
63
- let object : Object
76
+ init ( from decoder: Decoder ) throws {
77
+ let container = try decoder. container ( keyedBy: CodingKeys . self)
78
+ let version = try container. decode ( Int . self, forKey: . version)
79
+ switch version {
80
+ case 1 :
81
+ let object = try container. decode ( Object . self, forKey: . object)
82
+ self . version = . v1( object: object)
83
+ // case 2:
84
+ default :
85
+ throw DecodingError . valueNotFound ( Int . self, . init( codingPath: [ CodingKeys . version] , debugDescription: " Invalid value: \( version) " ) )
86
+ }
87
+ }
64
88
}
65
89
// swiftlint:enable nesting
66
90
67
91
let data = try fileReader. readData ( atPath: generatedFolder. appendingPath ( " Package.resolved " ) )
68
92
let state : ResolvedPackagesState = try data. decoded ( )
69
-
70
- return state. object. pins
93
+ switch state. version {
94
+ case let . v1( object) :
95
+ return object. pins
96
+ case let . v2( pins) :
97
+ return pins
98
+ }
71
99
}
72
100
73
101
private func nameOfRemotePackage( at url: URL , temporaryFolder: String ) throws -> String {
You can’t perform that action at this time.
0 commit comments