SDK の HTTP クライアントファクトリ。稼働中の closedcode サーバーと通信する OpencodeClient を構築し、アクティブなディレクトリをリクエストヘッダー / クエリパラメータとして注入することで、サーバー側の解決処理を呼び出し元のプロジェクトにスコープ内へ収める。

Methods

(static) createClosedcodeClient(configopt) → {OpencodeClient}

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

Parameters:
NameTypeAttributesDescription
configObject<optional>

クライアント設定。

Properties
NameTypeAttributesDescription
baseUrlstring<optional>

closedcode サーバーのベース URL。

fetchfunction<optional>

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

directorystring<optional>

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

headersObject<optional>

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

Returns:

設定済みのクライアントインスタンス。

Type: 
OpencodeClient

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

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

Parameters:
NameTypeDescription
valuestring | null | undefined

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

fallbackstring | undefined

比較対象となる正規のディレクトリ値。

Returns:

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

Type: 
string | undefined

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

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

Parameters:
NameTypeDescription
requestRequest

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

directorystring | undefined

ヘッダーが存在しない場合のフォールバックとなるディレクトリ。

Returns:

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

Type: 
Request