aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai WU <kaiwu2004@gmail.com>2025-05-16 20:50:25 +0800
committerkaiwu <kaiwu2004@gmail.com>2025-05-16 23:33:16 +0800
commit0a9ffacdd82d49ea541346130e1fe28ee7194bea (patch)
tree75326d3776752b9d3f06089e4977b9002a2f5ffd
parent876b3f41ffc0c11ba4af5a670b132de8034ecd11 (diff)
downloadngs-main.tar.gz
ngs-main.zip
update stdlib/jsonHEADv1.0.2main
-rw-r--r--gleam.toml6
-rw-r--r--manifest.toml6
-rw-r--r--src/app/misc.gleam4
-rw-r--r--src/njs/http.gleam10
4 files changed, 12 insertions, 14 deletions
diff --git a/gleam.toml b/gleam.toml
index 328d098..35193a0 100644
--- a/gleam.toml
+++ b/gleam.toml
@@ -1,5 +1,5 @@
name = "ngs"
-version = "1.0.1"
+version = "1.0.2"
target = "javascript"
description = "Offload weight to nginx, implement HTTP server with gleam bindings to njs"
@@ -9,7 +9,7 @@ description = "Offload weight to nginx, implement HTTP server with gleam binding
licences = ["Apache-2.0"]
repository = { type = "github", user = "kaiwu", repo = "ngs" }
links = [{ title = "njs", href = "http://nginx.org/en/docs/njs/index.html" }]
-gleam = ">= 0.32.0"
+gleam = ">= 1.9.0"
#
# For a full reference of all the available options, you can have a look at
# https://gleam.run/writing-gleam/gleam-toml/.
@@ -17,7 +17,7 @@ gleam = ">= 0.32.0"
[dependencies]
gleam_stdlib = ">= 0.39.0 and < 1.0.0"
gleam_javascript = ">= 0.11.0 and < 2.0.0"
-gleam_json = ">= 2.0.0 and < 3.0.0"
+gleam_json = ">= 3.0.0 and < 4.0.0"
envoy = ">= 1.0.1 and < 2.0.0"
[dev-dependencies]
diff --git a/manifest.toml b/manifest.toml
index 2060cb7..31f40cf 100644
--- a/manifest.toml
+++ b/manifest.toml
@@ -4,14 +4,14 @@
packages = [
{ name = "envoy", version = "1.0.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "envoy", source = "hex", outer_checksum = "95FD059345AA982E89A0B6E2A3BF1CF43E17A7048DCD85B5B65D3B9E4E39D359" },
{ name = "gleam_javascript", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "EF6C77A506F026C6FB37941889477CD5E4234FCD4337FF0E9384E297CB8F97EB" },
- { name = "gleam_json", version = "2.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "C55C5C2B318533A8072D221C5E06E5A75711C129E420DD1CE463342106012E5D" },
- { name = "gleam_stdlib", version = "0.59.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "F8FEE9B35797301994B81AF75508CF87C328FE1585558B0FFD188DC2B32EAA95" },
+ { name = "gleam_json", version = "3.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "5BA154440B22D9800955B1AB854282FA37B97F30F409D76B0824D0A60C934188" },
+ { name = "gleam_stdlib", version = "0.60.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "621D600BB134BC239CB2537630899817B1A42E60A1D46C5E9F3FAE39F88C800B" },
{ name = "gleeunit", version = "1.3.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "A7DD6C07B7DA49A6E28796058AA89E651D233B357D5607006D70619CD89DAAAB" },
]
[requirements]
envoy = { version = ">= 1.0.1 and < 2.0.0" }
gleam_javascript = { version = ">= 0.11.0 and < 2.0.0" }
-gleam_json = { version = ">= 2.0.0 and < 3.0.0" }
+gleam_json = { version = ">= 3.0.0 and < 4.0.0" }
gleam_stdlib = { version = ">= 0.39.0 and < 1.0.0" }
gleeunit = { version = ">= 1.0.0 and < 2.0.0" }
diff --git a/src/app/misc.gleam b/src/app/misc.gleam
index 57f3e9d..75353ac 100644
--- a/src/app/misc.gleam
+++ b/src/app/misc.gleam
@@ -2,7 +2,6 @@
//// https://github.com/nginx/njs-examples
////
-import gleam/dynamic
import gleam/dynamic/decode
import gleam/javascript/array
import gleam/javascript/promise.{type Promise}
@@ -40,8 +39,7 @@ pub fn decode_uri(r: HTTPRequest) -> String {
}
r
|> http.args
- |> dynamic.from
- |> decode.run(decoder)
+ |> json.parse(decoder)
|> result.unwrap("")
}
diff --git a/src/njs/http.gleam b/src/njs/http.gleam
index 6c7a3a1..1175f58 100644
--- a/src/njs/http.gleam
+++ b/src/njs/http.gleam
@@ -1,6 +1,6 @@
+import gleam/dict.{type Dict}
import gleam/javascript/array.{type Array}
import gleam/javascript/promise.{type Promise}
-import gleam/json.{type Json}
import njs/buffer.{type Buffer}
pub type HTTPRequest
@@ -12,10 +12,10 @@ pub type HTTPResponse =
HTTPRequest
@external(javascript, "../http_ffi.mjs", "http_args")
-pub fn args(request r: HTTPRequest) -> Json
+pub fn args(request r: HTTPRequest) -> String
@external(javascript, "../http_ffi.mjs", "http_get_variables")
-pub fn get_variables(request r: HTTPRequest) -> Json
+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
@@ -37,13 +37,13 @@ pub fn error(request r: HTTPRequest, message m: String) -> HTTPRequest
pub fn finish(request r: HTTPRequest) -> Nil
@external(javascript, "../http_ffi.mjs", "http_headers_in")
-pub fn headers_in(request r: HTTPRequest) -> Json
+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) -> Json
+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))