bf9395e022
CI / results (push) Blocked by required conditions
CI / license-header (push) Has been skipped
CI / e2e-dry-run (push) Has been skipped
CI / e2e-live (push) Waiting to run
CI / fast-gate (push) Failing after 0s
Test PR Label Logic / test-pr-labels (push) Failing after 1s
Skill Format Check / check-format (push) Failing after 2s
CI / security (push) Failing after 5s
CI / unit-test (push) Has been skipped
CI / lint (push) Has been skipped
CI / script-test (push) Has been skipped
CI / deterministic-gate (push) Has been skipped
CI / coverage (push) Has been skipped
CI / deadcode (push) Waiting to run
47 lines
903 B
Go
47 lines
903 B
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package client
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
// Option configures API request behavior for DoStream (and future DoSDKRequest).
|
|
type Option func(*requestConfig)
|
|
|
|
type requestConfig struct {
|
|
timeout time.Duration
|
|
headers http.Header
|
|
}
|
|
|
|
// WithTimeout sets a request-level timeout that overrides the client default.
|
|
func WithTimeout(d time.Duration) Option {
|
|
return func(c *requestConfig) {
|
|
c.timeout = d
|
|
}
|
|
}
|
|
|
|
// WithHeaders adds extra HTTP headers to the request.
|
|
func WithHeaders(h http.Header) Option {
|
|
return func(c *requestConfig) {
|
|
if c.headers == nil {
|
|
c.headers = make(http.Header)
|
|
}
|
|
for k, vs := range h {
|
|
for _, v := range vs {
|
|
c.headers.Add(k, v)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func buildConfig(opts []Option) requestConfig {
|
|
var cfg requestConfig
|
|
for _, o := range opts {
|
|
o(&cfg)
|
|
}
|
|
return cfg
|
|
}
|