@@ -19,8 +19,10 @@ public protocol HTTPServer {
19
19
///
20
20
/// - Returns the base URL for this endpoint.
21
21
@discardableResult
22
- func serve( at endpoint: HTTPServerEndpoint ,
23
- handler: @escaping ( HTTPServerRequest ) -> Resource ) throws -> URL
22
+ func serve(
23
+ at endpoint: HTTPServerEndpoint ,
24
+ handler: @escaping ( HTTPServerRequest ) -> Resource
25
+ ) throws -> URL
24
26
25
27
/// Serves resources at the given `endpoint`.
26
28
///
@@ -30,9 +32,11 @@ public protocol HTTPServer {
30
32
///
31
33
/// - Returns the base URL for this endpoint.
32
34
@discardableResult
33
- func serve( at endpoint: HTTPServerEndpoint ,
34
- handler: @escaping ( HTTPServerRequest ) -> Resource ,
35
- failureHandler: FailureHandler ? ) throws -> URL
35
+ func serve(
36
+ at endpoint: HTTPServerEndpoint ,
37
+ handler: @escaping ( HTTPServerRequest ) -> Resource ,
38
+ failureHandler: FailureHandler ?
39
+ ) throws -> URL
36
40
37
41
/// Registers a `Resource` transformer that will be run on all responses
38
42
/// matching the given `endpoint`.
@@ -47,21 +51,10 @@ public extension HTTPServer {
47
51
@discardableResult
48
52
func serve(
49
53
at endpoint: HTTPServerEndpoint ,
50
- handler: @escaping ( HTTPServerRequest ) -> Resource
54
+ handler: @escaping ( HTTPServerRequest ) -> Resource ,
55
+ failureHandler: FailureHandler ?
51
56
) throws -> URL {
52
- try serve ( at: endpoint, handler: handler, failureHandler: nil )
53
- }
54
-
55
- /// Serves the local file `url` at the given `endpoint`.
56
- ///
57
- /// If the provided `url` is a directory, then all the files in the
58
- /// directory are served. Subsequent calls with the same served `endpoint`
59
- /// overwrite each other.
60
- ///
61
- /// - Returns the URL to access the file(s) on the server.
62
- @discardableResult
63
- func serve( at endpoint: HTTPServerEndpoint , contentsOf url: URL ) throws -> URL {
64
- try serve ( at: endpoint, contentsOf: url, failureHandler: nil )
57
+ try serve ( at: endpoint, handler: handler)
65
58
}
66
59
67
60
/// Serves the local file `url` at the given `endpoint`.
@@ -77,7 +70,7 @@ public extension HTTPServer {
77
70
func serve(
78
71
at endpoint: HTTPServerEndpoint ,
79
72
contentsOf url: URL ,
80
- failureHandler: FailureHandler ?
73
+ failureHandler: FailureHandler ? = nil
81
74
) throws -> URL {
82
75
func handler( request: HTTPServerRequest ) -> Resource {
83
76
let file = url. appendingPathComponent ( request. href ?? " " )
@@ -91,18 +84,11 @@ public extension HTTPServer {
91
84
)
92
85
}
93
86
94
- return try serve ( at: endpoint,
95
- handler: handler ( request: ) ,
96
- failureHandler: failureHandler)
97
- }
98
-
99
- /// Serves a `publication`'s resources at the given `endpoint`.
100
- ///
101
- /// - Returns the base URL to access the publication's resources on the
102
- /// server.
103
- @discardableResult
104
- func serve( at endpoint: HTTPServerEndpoint , publication: Publication ) throws -> URL {
105
- try serve ( at: endpoint, publication: publication, failureHandler: nil )
87
+ return try serve (
88
+ at: endpoint,
89
+ handler: handler ( request: ) ,
90
+ failureHandler: failureHandler
91
+ )
106
92
}
107
93
108
94
/// Serves a `publication`'s resources at the given `endpoint`.
@@ -115,7 +101,7 @@ public extension HTTPServer {
115
101
func serve(
116
102
at endpoint: HTTPServerEndpoint ,
117
103
publication: Publication ,
118
- failureHandler: FailureHandler ?
104
+ failureHandler: FailureHandler ? = nil
119
105
) throws -> URL {
120
106
func handler( request: HTTPServerRequest ) -> Resource {
121
107
guard let href = request. href else {
@@ -130,9 +116,11 @@ public extension HTTPServer {
130
116
return publication. get ( href)
131
117
}
132
118
133
- return try serve ( at: endpoint,
134
- handler: handler ( request: ) ,
135
- failureHandler: failureHandler)
119
+ return try serve (
120
+ at: endpoint,
121
+ handler: handler ( request: ) ,
122
+ failureHandler: failureHandler
123
+ )
136
124
}
137
125
}
138
126
0 commit comments