diff options
Diffstat (limited to 'u/server/filter/method.ts')
-rw-r--r-- | u/server/filter/method.ts | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/u/server/filter/method.ts b/u/server/filter/method.ts index 6b0419d..9901c6f 100644 --- a/u/server/filter/method.ts +++ b/u/server/filter/method.ts @@ -20,22 +20,24 @@ type HttpMethod = | "TRACE" | "PATCH"; -export const requireMethod = ( - methods: Array<HttpMethod>, -): RequestFilter<HttpMethod> => -(req: ITraceable<PenguenoRequest, ServerTrace>) => - req.bimap(TraceUtil.withFunctionTrace(requireMethod)) - .move(Promise.resolve(req.get())) - .map(TraceUtil.promiseify((t) => { - const { method: _method } = t.get(); - const method = <HttpMethod> _method; - if (!methods.includes(method)) { - const msg = "that's not how you pet me (⋟﹏⋞)~"; - t.trace.addTrace(LogLevel.WARN).trace(msg); - return Either.left<PenguenoError, HttpMethod>( - new PenguenoError(msg, 405), - ); - } - return Either.right<PenguenoError, HttpMethod>(method); - })) - .get(); +export const requireMethod = + (methods: Array<HttpMethod>): RequestFilter<HttpMethod> => + (req: ITraceable<PenguenoRequest, ServerTrace>) => + req + .bimap(TraceUtil.withFunctionTrace(requireMethod)) + .move(Promise.resolve(req.get())) + .map( + TraceUtil.promiseify((t) => { + const { method: _method } = t.get(); + const method = <HttpMethod>_method; + if (!methods.includes(method)) { + const msg = "that's not how you pet me (⋟﹏⋞)~"; + t.trace.addTrace(LogLevel.WARN).trace(msg); + return Either.left<PenguenoError, HttpMethod>( + new PenguenoError(msg, 405), + ); + } + return Either.right<PenguenoError, HttpMethod>(method); + }), + ) + .get(); |