aboutsummaryrefslogtreecommitdiff
path: root/src/njs/http.gleam
blob: 1175f58c349dd0e85665b6bab4aee9fa276685a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import gleam/dict.{type Dict}
import gleam/javascript/array.{type Array}
import gleam/javascript/promise.{type Promise}
import njs/buffer.{type Buffer}

pub type HTTPRequest

pub type HTTPHandler =
  fn(HTTPRequest) -> Nil

pub type HTTPResponse =
  HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_args")
pub fn args(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_get_variables")
pub fn get_variables(request r: HTTPRequest) -> Dict(String, String)

@external(javascript, "../http_ffi.mjs", "http_get_raw_variables")
pub fn get_raw_variables(request r: HTTPRequest) -> Buffer

@external(javascript, "../http_ffi.mjs", "http_set_variables")
pub fn set_variables(
  request r: HTTPRequest,
  key k: k,
  value v: v,
) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_done")
pub fn done(request r: HTTPRequest) -> Nil

@external(javascript, "../http_ffi.mjs", "http_error")
pub fn error(request r: HTTPRequest, message m: String) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_finish")
pub fn finish(request r: HTTPRequest) -> Nil

@external(javascript, "../http_ffi.mjs", "http_headers_in")
pub fn headers_in(request r: HTTPRequest) -> Dict(String, String)

@external(javascript, "../http_ffi.mjs", "http_raw_headers_in")
pub fn raw_headers_in(request r: HTTPRequest) -> Array(#(String, String))

@external(javascript, "../http_ffi.mjs", "http_get_headers_out")
pub fn get_headers_out(request r: HTTPRequest) -> Dict(String, String)

@external(javascript, "../http_ffi.mjs", "http_get_raw_headers_out")
pub fn get_raw_headers_out(request r: HTTPRequest) -> Array(#(String, String))

@external(javascript, "../http_ffi.mjs", "http_set_headers_out")
pub fn set_headers_out(
  request r: HTTPRequest,
  key k: k,
  value v: v,
) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_version")
pub fn version(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_internal")
pub fn is_internal(request r: HTTPRequest) -> Bool

@external(javascript, "../http_ffi.mjs", "http_internal_redirect")
pub fn internal_redirect(request r: HTTPRequest, uri u: String) -> Nil

@external(javascript, "../http_ffi.mjs", "http_log")
pub fn log(request r: HTTPRequest, message m: String) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_method")
pub fn method(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_parent")
pub fn parent(request r: HTTPRequest) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_remote_address")
pub fn remote_address(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_request_buffer")
pub fn request_buffer(request r: HTTPRequest) -> Buffer

@external(javascript, "../http_ffi.mjs", "http_request_text")
pub fn request_text(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_response_buffer")
pub fn response_buffer(request r: HTTPRequest) -> Buffer

@external(javascript, "../http_ffi.mjs", "http_response_text")
pub fn response_text(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_return")
pub fn return_text(request r: HTTPRequest, code c: Int, return t: String) -> Nil

@external(javascript, "../http_ffi.mjs", "http_return")
pub fn return_buffer(
  request r: HTTPRequest,
  code c: Int,
  return b: Buffer,
) -> Nil

@external(javascript, "../http_ffi.mjs", "http_return_code")
pub fn return_code(request r: HTTPRequest, code c: Int) -> Nil

@external(javascript, "../http_ffi.mjs", "http_send_text")
pub fn send_text(request r: HTTPRequest, data d: String) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_send_buffer")
pub fn send_buffer(
  request r: HTTPRequest,
  buffer d: Buffer,
  options o: o,
) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_send_header")
pub fn send_header(request r: HTTPRequest) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_status")
pub fn status(request r: HTTPRequest) -> Int

@external(javascript, "../http_ffi.mjs", "http_set_status")
pub fn set_status(request r: HTTPRequest, status s: Int) -> HTTPRequest

@external(javascript, "../http_ffi.mjs", "http_subrequest")
pub fn subrequest(
  request r: HTTPRequest,
  uri u: String,
  options o: o,
) -> Promise(HTTPResponse)

@external(javascript, "../http_ffi.mjs", "http_uri")
pub fn uri(request r: HTTPRequest) -> String

@external(javascript, "../http_ffi.mjs", "http_warn")
pub fn warn(request r: HTTPRequest, message m: String) -> HTTPRequest