Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
25 lines
502 B
Go
25 lines
502 B
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package urlx
|
|
|
|
import "net/url"
|
|
|
|
// Copy returns a copy of the input url.
|
|
func Copy(src *url.URL) *url.URL {
|
|
var out = new(url.URL)
|
|
*out = *src
|
|
return out
|
|
}
|
|
|
|
// CopyWithQuery returns a copy of the input url with the given query parameters
|
|
func CopyWithQuery(src *url.URL, query url.Values) *url.URL {
|
|
out := Copy(src)
|
|
q := out.Query()
|
|
for k := range query {
|
|
q.Set(k, query.Get(k))
|
|
}
|
|
out.RawQuery = q.Encode()
|
|
return out
|
|
}
|