Skip to content

Commit cf434c0

Browse files
committed
v1.5.2
1 parent f0f1fec commit cf434c0

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Changelog
22

3-
## Unreleased
3+
## v1.5.2 - 2025-02-03
44

5+
- Updated for `gleam_erlang` v0.34.0.
56
- The function `wisp.get_cookie` gains function labels for its arguments.
67

78
## v1.5.1 - 2025-01-02

gleam.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name = "wisp"
2-
version = "1.5.1"
2+
version = "1.5.2"
33
gleam = ">= 1.4.0"
44
description = "A practical web framework for Gleam"
55
licences = ["Apache-2.0"]
@@ -10,7 +10,7 @@ links = [{ title = "Sponsor", href = "https://github.com/sponsors/lpil" }]
1010
[dependencies]
1111
exception = ">= 2.0.0 and < 3.0.0"
1212
gleam_crypto = ">= 1.0.0 and < 2.0.0"
13-
gleam_erlang = ">= 0.21.0 and < 2.0.0"
13+
gleam_erlang = ">= 0.34.0 and < 2.0.0"
1414
gleam_http = ">= 3.5.0 and < 4.0.0"
1515
gleam_json = ">= 0.6.0 and < 3.0.0"
1616
gleam_stdlib = ">= 0.43.0 and < 2.0.0"

manifest.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ packages = [
77
{ name = "exception", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "exception", source = "hex", outer_checksum = "F5580D584F16A20B7FCDCABF9E9BE9A2C1F6AC4F9176FA6DD0B63E3B20D450AA" },
88
{ name = "filepath", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "67A6D15FB39EEB69DD31F8C145BB5A421790581BD6AA14B33D64D5A55DBD6587" },
99
{ name = "gleam_crypto", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_crypto", source = "hex", outer_checksum = "8AE56026B3E05EBB1F076778478A762E9EB62B31AEEB4285755452F397029D22" },
10-
{ name = "gleam_erlang", version = "0.33.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "A1D26B80F01901B59AABEE3475DD4C18D27D58FA5C897D922FCB9B099749C064" },
10+
{ name = "gleam_erlang", version = "0.34.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "0C38F2A128BAA0CEF17C3000BD2097EB80634E239CE31A86400C4416A5D0FDCC" },
1111
{ name = "gleam_http", version = "3.7.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8A70D2F70BB7CFEB5DF048A2183FFBA91AF6D4CF5798504841744A16999E33D2" },
12-
{ name = "gleam_json", version = "2.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "0A57FB5666E695FD2BEE74C0428A98B0FC11A395D2C7B4CDF5E22C5DD32C74C6" },
13-
{ name = "gleam_otp", version = "0.16.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "FA0EB761339749B4E82D63016C6A18C4E6662DA05BAB6F1346F9AF2E679E301A" },
14-
{ name = "gleam_stdlib", version = "0.48.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "6C7799F315EB3AC53271078685297579183A287F2E65C6DD36C6583C76F12BBE" },
12+
{ name = "gleam_json", version = "2.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "C55C5C2B318533A8072D221C5E06E5A75711C129E420DD1CE463342106012E5D" },
13+
{ name = "gleam_otp", version = "0.16.1", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "50DA1539FC8E8FA09924EB36A67A2BBB0AD6B27BCDED5A7EF627057CF69D035E" },
14+
{ name = "gleam_stdlib", version = "0.53.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "53F3E1E56F692C20FA3E0A23650AC46592464E40D8EF3EC7F364FB328E73CDF5" },
1515
{ name = "gleam_yielder", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_yielder", source = "hex", outer_checksum = "8E4E4ECFA7982859F430C57F549200C7749823C106759F4A19A78AEA6687717A" },
16-
{ name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
17-
{ name = "glisten", version = "7.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib", "logging", "telemetry"], otp_app = "glisten", source = "hex", outer_checksum = "028C0882EAC7ABEDEFBE92CE4D1FEDADE95FA81B1B1AB099C4F91C133BEF2C42" },
16+
{ name = "gleeunit", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "0E6C83834BA65EDCAAF4FE4FB94AC697D9262D83E6F58A750D63C9F6C8A9D9FF" },
17+
{ name = "glisten", version = "7.0.1", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib", "logging", "telemetry"], otp_app = "glisten", source = "hex", outer_checksum = "1A53CF9FB3231A93FF7F1BD519A43DC968C1722F126CDD278403A78725FC5189" },
1818
{ name = "gramps", version = "3.0.0", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "630BDE35E465511945253A06EBCDE8D5E4B8B1988F4AC6B8FAC297DEF55B4CA2" },
1919
{ name = "hpack_erl", version = "0.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "hpack", source = "hex", outer_checksum = "D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0" },
2020
{ name = "logging", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "logging", source = "hex", outer_checksum = "1098FBF10B54B44C2C7FDF0B01C1253CAFACDACABEFB4B0D027803246753E06D" },
2121
{ name = "marceau", version = "1.3.0", build_tools = ["gleam"], requirements = [], otp_app = "marceau", source = "hex", outer_checksum = "2D1C27504BEF45005F5DFB18591F8610FB4BFA91744878210BDC464412EC44E9" },
22-
{ name = "mist", version = "4.0.2", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "gleam_yielder", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "588873C523FABE8379DB113DA9EF72749932CF9409626C551CE5E9DD2841E3F9" },
22+
{ name = "mist", version = "4.0.5", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "gleam_yielder", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "A708A43AC28A13D09A77E8187448F5AC82E65B398B9810B4E9748072D943EEC1" },
2323
{ name = "platform", version = "1.0.0", build_tools = ["gleam"], requirements = [], otp_app = "platform", source = "hex", outer_checksum = "8339420A95AD89AAC0F82F4C3DB8DD401041742D6C3F46132A8739F6AEB75391" },
2424
{ name = "simplifile", version = "2.2.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0DFABEF7DC7A9E2FF4BB27B108034E60C81BEBFCB7AB816B9E7E18ED4503ACD8" },
2525
{ name = "telemetry", version = "1.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "telemetry", source = "hex", outer_checksum = "7015FC8919DBE63764F4B4B87A95B7C0996BD539E0D499BE6EC9D7F3875B79E6" },
@@ -29,7 +29,7 @@ packages = [
2929
directories = { version = ">= 1.0.0 and < 2.0.0" }
3030
exception = { version = ">= 2.0.0 and < 3.0.0" }
3131
gleam_crypto = { version = ">= 1.0.0 and < 2.0.0" }
32-
gleam_erlang = { version = ">= 0.21.0 and < 2.0.0" }
32+
gleam_erlang = { version = ">= 0.34.0 and < 2.0.0" }
3333
gleam_http = { version = ">= 3.5.0 and < 4.0.0" }
3434
gleam_json = { version = ">= 0.6.0 and < 3.0.0" }
3535
gleam_stdlib = { version = ">= 0.43.0 and < 2.0.0" }

src/wisp.gleam

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import gleam/bytes_tree.{type BytesTree}
55
import gleam/crypto
66
import gleam/dict.{type Dict}
77
import gleam/dynamic.{type Dynamic}
8+
import gleam/dynamic/decode
89
import gleam/erlang
910
import gleam/erlang/atom.{type Atom}
1011
import gleam/http.{type Method}
@@ -1367,7 +1368,7 @@ pub fn rescue_crashes(handler: fn() -> Response) -> Response {
13671368
exception.Thrown(detail) -> #(Thrown, detail)
13681369
exception.Exited(detail) -> #(Exited, detail)
13691370
}
1370-
case dynamic.dict(atom.from_dynamic, Ok)(detail) {
1371+
case decode.run(detail, atom_dict_decoder()) {
13711372
Ok(details) -> {
13721373
let c = atom.create_from_string("class")
13731374
log_error_dict(dict.insert(details, c, dynamic.from(kind)))
@@ -1380,6 +1381,18 @@ pub fn rescue_crashes(handler: fn() -> Response) -> Response {
13801381
}
13811382
}
13821383

1384+
fn atom_dict_decoder() -> decode.Decoder(Dict(Atom, Dynamic)) {
1385+
let atom =
1386+
decode.new_primitive_decoder("Atom", fn(data) {
1387+
case atom.from_dynamic(data) {
1388+
Ok(atom) -> Ok(atom)
1389+
Error(_) -> Error(atom.create_from_string("nil"))
1390+
}
1391+
})
1392+
let dynamic = decode.new_primitive_decoder("Dynamic", Ok)
1393+
decode.dict(atom, dynamic)
1394+
}
1395+
13831396
type DoNotLeak
13841397

13851398
@external(erlang, "logger", "error")

0 commit comments

Comments
 (0)