Skip to content

Commit d377ac2

Browse files
authored
Replace Runtime package with Mirror (#82)
1 parent 4c197ff commit d377ac2

File tree

7 files changed

+26
-61
lines changed

7 files changed

+26
-61
lines changed

.dockerignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.build
2+
.git

Package.resolved

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

Package.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@ let package = Package(
88
],
99
dependencies: [
1010
.package(url: "https://github.com/apple/swift-nio.git", .upToNextMajor(from: "2.10.1")),
11-
.package(url: "https://github.com/wickwirew/Runtime.git", .upToNextMinor(from: "2.1.0"))
1211
],
1312
targets: [
1413
.target(
1514
name: "GraphQL",
1615
dependencies: [
1716
.product(name: "NIO", package: "swift-nio"),
18-
.product(name: "Runtime", package: "Runtime")
1917
]
2018
),
2119
.testTarget(name: "GraphQLTests", dependencies: ["GraphQL"]),

Sources/GraphQL/Execution/Execute.swift

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import Dispatch
2-
import Runtime
32
import NIO
43

54
/**
@@ -1175,33 +1174,11 @@ func defaultResolve(
11751174
return eventLoopGroup.next().makeSucceededFuture(value)
11761175
}
11771176

1178-
guard let encodable = source as? Encodable else {
1177+
let mirror = Mirror(reflecting: source)
1178+
guard let value = mirror.getValue(named: info.fieldName) else {
11791179
return eventLoopGroup.next().makeSucceededFuture(nil)
11801180
}
1181-
1182-
guard
1183-
let typeInfo = try? typeInfo(of: type(of: encodable)),
1184-
let property = try? typeInfo.property(named: info.fieldName)
1185-
else {
1186-
return eventLoopGroup.next().makeSucceededFuture(nil)
1187-
}
1188-
1189-
guard let value = try? property.get(from: encodable) else {
1190-
return eventLoopGroup.next().makeSucceededFuture(nil)
1191-
}
1192-
11931181
return eventLoopGroup.next().makeSucceededFuture(value)
1194-
1195-
// guard let any = try? AnyEncoder().encode(AnyEncodable(encodable)) else {
1196-
// return eventLoopGroup.next().newSucceededFuture(result: nil)
1197-
// }
1198-
//
1199-
// guard let dictionary = any as? [String: Any] else {
1200-
// return eventLoopGroup.next().newSucceededFuture(result: nil)
1201-
// }
1202-
//
1203-
// let value = dictionary[info.fieldName]
1204-
// return eventLoopGroup.next().newSucceededFuture(result: value)
12051182
}
12061183

12071184
/**

Sources/GraphQL/Subscription/Subscribe.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import Dispatch
2-
import Runtime
31
import NIO
42

53
/**
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
func unwrap(_ value: Any) -> Any? {
2+
let mirror = Mirror(reflecting: value)
3+
4+
if mirror.displayStyle != .optional {
5+
return value
6+
}
7+
8+
guard let child = mirror.children.first else {
9+
return nil
10+
}
11+
12+
return child.value
13+
}
14+
15+
extension Mirror {
16+
func getValue(named key: String) -> Any? {
17+
guard let matched = children.filter({ $0.label == key }).first else {
18+
return nil
19+
}
20+
return unwrap(matched.value)
21+
}
22+
}

Sources/GraphQL/SwiftUtilities/Unwrap.swift

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)