Skip to content

refactor(types): consolidate "as unknown as" casts in OAuth wiring #148

@liplus-lin-lay

Description

@liplus-lin-lay

観察

as unknown as { ... } 型キャストが 8 箇所散在:

  • src/index.ts L130, L137, L149, L157, L174, L179 (OAuth wiring, ctx.props と env の型逃がし)
  • src/mcp.ts L719 (vector metadata)
  • src/rerank.ts L157 (reranker response)

OAuthProvider が import 時の型と実行時 ctx.props の型を一致させにくいため、呼び出し点ごとにキャストで吸収している。as unknown as は型システムの完全 escape hatch なので、コンパイラ保護が外れる。

提案

  • OAuthProvider の Env / Props 型を 1 箇所で定義 (例: src/oauth-types.ts)
  • ctx.props の shape を専用型 (McpProps, AuthorizedCtx 等) に集約
  • キャストを境界 1 箇所のみに集約 (現在は呼び出し点ごとに散在)
  • mcp.ts / rerank.ts のキャストは個別判断 (Vectorize / Workers AI の型定義不足が原因なので library 側の型定義 import or 専用型 alias で対応)

関連ファイル

  • src/index.ts (主な改修対象)
  • src/oauth.ts (型定義の置き場候補)
  • src/mcp.ts, src/rerank.ts (副次的な cast)

優先度

中 — 型安全性の向上、将来の OAuthProvider 仕様変更時の追従を容易にする。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancement新機能・改善要望memoメモとして開始した状態。見出しは必要なものだけでよい

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions