0 | module Node.HTTP2.Headers
2 | import Node.Internal.Support
5 | data Headers : Type where [external]
7 | %foreign "node:lambda: () => { return {}; }"
8 | ffi_empty : () -> PrimIO Headers
11 | empty : HasIO io => io Headers
12 | empty = primIO $
ffi_empty ()
14 | %foreign "node:lambda: (name, value) => { const headers = {}; headers[name] = value; return headers; }"
15 | ffi_singleton : String -> String -> Headers
18 | singleton : String -> String -> Headers
19 | singleton name value = ffi_singleton name value
21 | %foreign "node:lambda: (headers, name, value) => { headers[name] = value; return headers; }"
22 | ffi_setHeader : Headers -> String -> String -> PrimIO Headers
25 | (.setHeader) : HasIO io => Headers -> String -> String -> io Headers
26 | (.setHeader) headers name value = primIO $
ffi_setHeader headers name value
30 | (headers, name) => {
31 | const value = headers[name]
32 | if (value !== undefined && value !== null) {
38 | ffi_getHeader : Headers -> String -> Maybe String
41 | (.getHeader) : Headers -> String -> Maybe String
42 | (.getHeader) headers name = ffi_getHeader headers name
44 | %foreign "node:lambda: (headers) => __prim_js2idris_array(Object.entries(headers).map(([k,v]) => { return {h:0,a1:k,a2:v}}))"
46 | (.asList) : Headers -> List (String, String)