From 787c1e1a7c48287d20bf14c37dd7e0cca6bad318 Mon Sep 17 00:00:00 2001 From: Carlana Johnson Date: Fri, 12 Jul 2024 15:23:31 -0400 Subject: [PATCH] Upgrade to Go 1.22; replace minitrue.Or with cmp.Or (#111) --- .github/workflows/go.yml | 2 +- builder_core.go | 3 ++- core_req.go | 5 +++-- core_url.go | 8 ++++---- go.mod | 4 ++-- go.sum | 4 ++-- internal/minitrue/minitrue.go | 11 ----------- internal/minitrue/minitrue_test.go | 8 -------- 8 files changed, 14 insertions(+), 31 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 3a83d52..92ac65c 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: - go-version: '1.20' + go-version: '1.22' cache: true - name: Get dependencies run: go mod download diff --git a/builder_core.go b/builder_core.go index 7681ace..615bbe0 100644 --- a/builder_core.go +++ b/builder_core.go @@ -1,6 +1,7 @@ package requests import ( + "cmp" "context" "fmt" "net/http" @@ -242,7 +243,7 @@ func (rb *Builder) Request(ctx context.Context) (req *http.Request, err error) { // Do calls the underlying http.Client and validates and handles any resulting response. The response body is closed after all validators and the handler run. func (rb *Builder) Do(req *http.Request) (err error) { - cl := minitrue.Or(rb.cl, http.DefaultClient) + cl := cmp.Or(rb.cl, http.DefaultClient) if rb.rt != nil { cl2 := *cl cl2.Transport = rb.rt diff --git a/core_req.go b/core_req.go index 9b9db0e..6b8119c 100644 --- a/core_req.go +++ b/core_req.go @@ -1,6 +1,7 @@ package requests import ( + "cmp" "context" "io" "net/http" @@ -72,7 +73,7 @@ func (rb *requestBuilder) Request(ctx context.Context, u *url.URL) (req *http.Re body = nopper.Reader } } - method := minitrue.Or(rb.method, + method := cmp.Or(rb.method, minitrue.Cond(rb.getBody == nil, http.MethodGet, http.MethodPost)) @@ -91,7 +92,7 @@ func (rb *requestBuilder) Request(ctx context.Context, u *url.URL) (req *http.Re for _, kv := range rb.headers { if kv.optional && req.Header.Get(kv.key) == "" && - minitrue.Or(kv.values...) != "" { + cmp.Or(kv.values...) != "" { req.Header[http.CanonicalHeaderKey(kv.key)] = kv.values } } diff --git a/core_url.go b/core_url.go index 1f1a6e1..6cdde56 100644 --- a/core_url.go +++ b/core_url.go @@ -1,9 +1,9 @@ package requests import ( + "cmp" "net/url" - "github.com/carlmjohnson/requests/internal/minitrue" "github.com/carlmjohnson/requests/internal/slicex" ) @@ -61,12 +61,12 @@ func (ub *urlBuilder) URL() (u *url.URL, err error) { if err != nil { return new(url.URL), err } - u.Scheme = minitrue.Or( + u.Scheme = cmp.Or( ub.scheme, u.Scheme, "https", ) - u.Host = minitrue.Or(ub.host, u.Host) + u.Host = cmp.Or(ub.host, u.Host) for _, p := range ub.paths { u.Path = u.ResolveReference(&url.URL{Path: p}).Path } @@ -80,7 +80,7 @@ func (ub *urlBuilder) URL() (u *url.URL, err error) { for _, kv := range ub.params { if kv.optional && q.Get(kv.key) == "" && - minitrue.Or(kv.values...) != "" { + cmp.Or(kv.values...) != "" { q[kv.key] = kv.values } } diff --git a/go.mod b/go.mod index e2b19d3..fb99708 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,5 @@ module github.com/carlmjohnson/requests -go 1.20 +go 1.22 -require golang.org/x/net v0.23.0 +require golang.org/x/net v0.27.0 diff --git a/go.sum b/go.sum index 199e74a..7566714 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= diff --git a/internal/minitrue/minitrue.go b/internal/minitrue/minitrue.go index 6db745d..5d064ff 100644 --- a/internal/minitrue/minitrue.go +++ b/internal/minitrue/minitrue.go @@ -7,14 +7,3 @@ func Cond[T any](val bool, a, b T) T { } return b } - -// Or returns the first non-empty argument it receives -// or the zero value for T. -func Or[T comparable](vals ...T) T { - for _, val := range vals { - if val != *new(T) { - return val - } - } - return *new(T) -} diff --git a/internal/minitrue/minitrue_test.go b/internal/minitrue/minitrue_test.go index dc7397b..34b393f 100644 --- a/internal/minitrue/minitrue_test.go +++ b/internal/minitrue/minitrue_test.go @@ -11,11 +11,3 @@ func TestCond(t *testing.T) { be.Equal(t, 1, minitrue.Cond(true, 1, 2)) be.Equal(t, 2, minitrue.Cond(false, 1, 2)) } - -func TestOr(t *testing.T) { - be.Equal(t, 0, minitrue.Or[int]()) - be.Equal(t, 0, minitrue.Or(0)) - be.Equal(t, 1, minitrue.Or(1)) - be.Equal(t, 2, minitrue.Or(0, 2)) - be.Equal(t, 3, minitrue.Or(0, 0, 3)) -}