won't send { } [ ]: hypothesis, because these characters can't be represented in one byte of the GSM charset
27 lines
676 B
Fennel
27 lines
676 B
Fennel
(local server (require :http.server))
|
|
(local headers (require :http.headers))
|
|
|
|
(fn on-stream [handler sv out]
|
|
(let [hdrs (out:get_headers)
|
|
method (hdrs:get ":method")
|
|
path (or (hdrs:get ":path") "/")]
|
|
(let [body (handler (out:get_body_as_string))]
|
|
(doto (headers.new)
|
|
(: :append ":status" :200)
|
|
(: :append :content-type :text/plain)
|
|
(out:write_headers false))
|
|
(out:write_chunk body true))))
|
|
|
|
(fn new-server [handler]
|
|
(server.listen
|
|
{
|
|
:host :localhost
|
|
:port 8201
|
|
:onstream (partial on-stream handler)
|
|
}))
|
|
|
|
{ :new new-server }
|
|
|
|
;(srv:listen)
|
|
;(srv:loop)
|