Update for Gleam 0.27

This commit is contained in:
Mikko Ahlroth 2023-03-01 20:05:36 +02:00
parent 061f029bf7
commit cf2d61a078
6 changed files with 38 additions and 27 deletions

View file

@ -1,3 +1,3 @@
gleam 0.26.2
gleam 0.27.0
erlang 25.2.2
elixir 1.14.3-otp-25

9
CHANGELOG.txt Normal file
View file

@ -0,0 +1,9 @@
2.0.0
-----
* Updated for Gleam 0.27.
1.0.0
-----
Initial version.

View file

@ -1,5 +1,5 @@
name = "finch_gleam"
version = "1.0.0"
version = "2.0.0"
target = "erlang"
# Fill out these fields if you intend to generate HTML documentation or publish
@ -11,11 +11,11 @@ repository = { type = "gitlab", user = "Nicd", repo = "finch_gleam" }
links = []
[dependencies]
gleam_stdlib = "~> 0.26"
gleam_erlang = "~> 0.17"
gleam_stdlib = "~> 0.27.0"
gleam_erlang = "~> 0.18"
gleam_http = "~> 3.1"
finch = "~> 0.14"
[dev-dependencies]
gleeunit = "~> 0.7"
gleeunit = "~> 0.10"
mist = "~> 0.9"

View file

@ -3,17 +3,17 @@
packages = [
{ name = "castore", version = "0.1.22", build_tools = ["mix"], requirements = [], otp_app = "castore", source = "hex", outer_checksum = "C17576DF47EB5AA1EE40CC4134316A99F5CAD3E215D5C77B8DD3CFEF12A22CAC" },
{ name = "finch", version = "0.14.0", build_tools = ["mix"], requirements = ["mime", "mint", "castore", "nimble_options", "nimble_pool", "telemetry"], otp_app = "finch", source = "hex", outer_checksum = "5459ACAF18C4FDB47A8C22FB3BAFF5D8173106217C8E56C5BA0B93E66501A8DD" },
{ name = "finch", version = "0.14.0", build_tools = ["mix"], requirements = ["nimble_options", "nimble_pool", "mime", "telemetry", "castore", "mint"], otp_app = "finch", source = "hex", outer_checksum = "5459ACAF18C4FDB47A8C22FB3BAFF5D8173106217C8E56C5BA0B93E66501A8DD" },
{ name = "gleam_erlang", version = "0.18.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "14ABC93A7975369CCDDC0C4D9A34C0E0FE99CA3AD336BE6A17299EC0285B7107" },
{ name = "gleam_http", version = "3.1.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "B66B7A1539CCB577119E4DC80DD3484C1A652CB032967954498EEDBAE3355763" },
{ name = "gleam_otp", version = "0.5.2", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_erlang"], otp_app = "gleam_otp", source = "hex", outer_checksum = "24B88BF1D5B8DEC2525C00ECB65B96D2FD4DC66D8B2BB4D7AD4D12B2CE2A9988" },
{ name = "gleam_stdlib", version = "0.26.1", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "B17BBE8A78F3909D93BCC6C24F531673A7E328A61F24222EB1E58D0A7552B1FE" },
{ name = "gleam_otp", version = "0.5.2", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "24B88BF1D5B8DEC2525C00ECB65B96D2FD4DC66D8B2BB4D7AD4D12B2CE2A9988" },
{ name = "gleam_stdlib", version = "0.27.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "9DBDD21B48C654182CDD8AA15ACF85E8E74A0438583C68BD7EF08BE89F999C6F" },
{ name = "gleeunit", version = "0.10.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "ECEA2DE4BE6528D36AFE74F42A21CDF99966EC36D7F25DEB34D47DD0F7977BAF" },
{ name = "glisten", version = "0.6.9", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_erlang", "gleam_otp"], otp_app = "glisten", source = "hex", outer_checksum = "83CDA9C9FCD316ECF65DBEFAF5690999DDC0FE8CB31696711E7D60FD995E03B7" },
{ name = "hpax", version = "0.1.2", build_tools = ["mix"], requirements = [], otp_app = "hpax", source = "hex", outer_checksum = "2C87843D5A23F5F16748EBE77969880E29809580EFDACCD615CD3BED628A8C13" },
{ name = "mime", version = "2.0.3", build_tools = ["mix"], requirements = [], otp_app = "mime", source = "hex", outer_checksum = "27A30BF0DB44D25EECBA73755ACF4068CBFE26A4372F9EB3E4EA3A45956BFF6B" },
{ name = "mint", version = "1.4.2", build_tools = ["mix"], requirements = ["hpax", "castore"], otp_app = "mint", source = "hex", outer_checksum = "CE75A5BBCC59B4D7D8D70F8B2FC284B1751FFB35C7B6A6302B5192F8AB4DDD80" },
{ name = "mist", version = "0.9.4", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_otp", "gleam_http", "glisten", "gleam_erlang"], otp_app = "mist", source = "hex", outer_checksum = "D327F690A717F588281E636D99E014A90D8EBC2F2B479AA799A1D6AA3899A1B2" },
{ name = "mint", version = "1.5.0", build_tools = ["mix"], requirements = ["hpax", "castore"], otp_app = "mint", source = "hex", outer_checksum = "8A61C2D469C657F6CB76EA547D523C3A593D24901B1D97BF92BF4A83EAA2517B" },
{ name = "mist", version = "0.9.4", build_tools = ["gleam"], requirements = ["gleam_stdlib", "glisten", "gleam_erlang", "gleam_http", "gleam_otp"], otp_app = "mist", source = "hex", outer_checksum = "D327F690A717F588281E636D99E014A90D8EBC2F2B479AA799A1D6AA3899A1B2" },
{ name = "nimble_options", version = "0.5.2", build_tools = ["mix"], requirements = [], otp_app = "nimble_options", source = "hex", outer_checksum = "4DA7F904B915FD71DB549BCDC25F8D56F378EF7AE07DC1D372CBE72BA950DCE0" },
{ name = "nimble_pool", version = "0.2.6", build_tools = ["mix"], requirements = [], otp_app = "nimble_pool", source = "hex", outer_checksum = "1C715055095D3F2705C4E236C18B618420A35490DA94149FF8B580A2144F653F" },
{ name = "telemetry", version = "1.2.1", build_tools = ["rebar3"], requirements = [], otp_app = "telemetry", source = "hex", outer_checksum = "DAD9CE9D8EFFC621708F99EAC538EF1CBE05D6A874DD741DE2E689C47FEAFED5" },
@ -21,8 +21,8 @@ packages = [
[requirements]
finch = "~> 0.14"
gleam_erlang = "~> 0.17"
gleam_erlang = "~> 0.18"
gleam_http = "~> 3.1"
gleam_stdlib = "~> 0.26"
gleeunit = "~> 0.7"
gleam_stdlib = "~> 0.27.0"
gleeunit = "~> 0.10"
mist = "~> 0.9"

View file

@ -3,6 +3,8 @@
//// See the [Finch documentation](https://hexdocs.pm/finch) for additional
//// information about the functions.
import gleam/result
import gleam
import gleam/uri
import gleam/erlang/atom.{Atom}
@ -76,7 +78,7 @@ pub fn request(
req: Request,
name: Atom,
) -> Result(gleam_response.Response(String), Exception) {
try resp = do_request(req, name)
use resp <- result.then(do_request(req, name))
gleam.Ok(gleam_response.Response(
body: response_body(resp),

View file

@ -16,7 +16,7 @@ import finch/otp
const base_url = "http://localhost:33100"
pub fn main() {
assert Ok(_) =
let assert Ok(_) =
mist.run_service(
33_100,
fn(req) {
@ -48,10 +48,10 @@ pub fn main() {
pub fn ok_req_test() {
use <- with_finch()
assert Ok(url) = uri.parse(ok_url())
assert Ok(req) = request.from_uri(url)
let assert Ok(url) = uri.parse(ok_url())
let assert Ok(req) = request.from_uri(url)
let finch_req = finch.build(req, [])
assert Ok(resp) = finch.request(finch_req, server_name())
let assert Ok(resp) = finch.request(finch_req, server_name())
should.equal(resp.status, 200)
should.equal(resp.body, "OK")
@ -62,11 +62,11 @@ pub fn post_data_test() {
use <- with_finch()
assert Ok(url) = uri.parse(post_url())
assert Ok(req) = request.from_uri(url)
let assert Ok(url) = uri.parse(post_url())
let assert Ok(req) = request.from_uri(url)
let req = request.Request(..req, method: http.Post, body: body)
let finch_req = finch.build(req, [])
assert Ok(resp) = finch.request(finch_req, server_name())
let assert Ok(resp) = finch.request(finch_req, server_name())
should.equal(resp.status, 500)
should.equal(resp.body, body)
@ -75,8 +75,8 @@ pub fn post_data_test() {
pub fn headers_test() {
use <- with_finch()
assert Ok(url) = uri.parse(headers_url())
assert Ok(req) = request.from_uri(url)
let assert Ok(url) = uri.parse(headers_url())
let assert Ok(req) = request.from_uri(url)
let req =
request.Request(
..req,
@ -87,7 +87,7 @@ pub fn headers_test() {
],
)
let finch_req = finch.build(req, [])
assert Ok(resp) = finch.request(finch_req, server_name())
let assert Ok(resp) = finch.request(finch_req, server_name())
should.equal(resp.status, 200)
should.be_true(string.contains(
@ -118,14 +118,14 @@ fn with_finch(test: fn() -> a) {
process.start(
fn() {
assert otp.Ok(child) = start_finch()
let assert otp.Ok(child) = start_finch()
process.send(subject, child)
process.sleep_forever()
},
False,
)
assert Ok(finch_pid) = process.receive(subject, 1000)
let assert Ok(finch_pid) = process.receive(subject, 1000)
let monitor = process.monitor_process(finch_pid)
let selector =
@ -135,7 +135,7 @@ fn with_finch(test: fn() -> a) {
test()
process.kill(finch_pid)
assert Ok(_) = process.select(selector, 1000)
let assert Ok(_) = process.select(selector, 1000)
// We need to wait for all the Finch processes to close, sadly didn't find a
// better way to do this :/