v2 SDK の HTTP クライアントファクトリ。module:sdk/client と同様だが、加えて実験的なワークスペース id をプロジェクトディレクトリと併せて送出リクエストへ通し、互換性のないサーバーバージョンを示すレスポンスを拒否する。

Methods

(static) createClosedcodeClient(configopt) → {OpencodeClient}

稼働中の closedcode サーバー向けの型付き v2 クライアントを生成する。

Parameters:
NameTypeAttributesDescription
configObject<optional>

クライアント設定。

Properties
NameTypeAttributesDescription
baseUrlstring<optional>

closedcode サーバーのベース URL。

fetchfunction<optional>

カスタムの fetch 実装。既定ではタイムアウトを無効化したグローバル fetch を使用する。

directorystring<optional>

リクエストをスコープするプロジェクトディレクトリ。x-closedcode-directory ヘッダー / directory クエリパラメータとして送信される。

experimental_workspaceIDstring<optional>

実験的なワークスペース id。x-closedcode-workspace ヘッダー / workspace クエリパラメータとして送信される。

headersObject<optional>

すべてのリクエストに付与する追加ヘッダー。

Returns:

互換性のないサーバーバージョンからのレスポンスを拒否する、設定済みのクライアントインスタンス。

Type: 
OpencodeClient

(inner) pick(value, fallback, encodeopt) → {string|undefined}

value が単に(必要に応じてエンコードして)fallback を言い換えただけのものでない限り value を返す。言い換えである場合は正規の fallback を優先する。

Parameters:
NameTypeAttributesDescription
valuestring | null | undefined

候補となる値(例: ヘッダー由来)。

fallbackstring | undefined

比較対象となる正規の値。

encodefunction<optional>

fallback と比較する際に使用する任意のエンコーダ((input: string) => string)。

Returns:

解決された値。いずれも設定されていない場合は undefined。

Type: 
string | undefined

(inner) rewrite(request, values) → {Request}

GET/HEAD リクエストについて、x-closedcode-directory / x-closedcode-workspace ヒントを directory / workspace クエリパラメータとして URL へ移し、二重送信されないようヘッダーを取り除く。

Parameters:
NameTypeDescription
requestRequest

送出される fetch リクエスト。

valuesObject

対応するヘッダーが存在しない場合に用いるフォールバックのディレクトリおよびワークスペース(いずれも任意)。

Returns:

元のリクエスト、またはヒントを保持した書き換え済みのコピー。

Type: 
Request