ページ内ナビ
概要
ofetchは、標準Fetch APIを土台にNode.js・browser・workerで使えるHTTP clientです。JSON responseの自動解析、JSON body、non-2xx error、retry、timeout、baseURL、query parameter、interceptorを一つのAPIで扱えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
JSONやbinary responseを用途に応じて解析する
stable v1ではJSONやnative valueをdestrで解析し、binary responseはBlobとして扱います。必要に応じてtext、blob、arrayBuffer、streamなどresponse typeを明示できます。
出典:[1]
JSON bodyとHTTP error handlingを簡潔にする
objectをbodyへ渡すとJSONへ変換し、POST・PUT・PATCHでは適切なcontent-typeとaccept headerを設定します。non-2xx responseはFetchErrorとして扱われ、解析済みerror bodyをerror.dataから参照できます。
出典:[1]
retry・timeout・baseURL・interceptorを共通化する
retry回数やdelay、timeout、baseURL、query parameterをoptionで指定でき、onRequestやonResponseなどのinterceptorで共通処理を挟めます。ofetch.createを使えばdefault optionを持つclientも作れます。
出典:[1]
向いている用途
同じfetch wrapperをfrontend・SSR・workerで共有したい場合に向く
browserだけでなくNode.jsやworkerでも同じAPIを使えるため、universal application、SSR、edge runtimeなどでHTTP処理を共通化したいprojectに適します。
出典:[1]
導入前の確認
副作用を持つmethodのretry設定は明示的に判断する
stable v1はGET等で自動retryを提供しますが、POST・PUT・PATCH・DELETEは副作用を避けるため既定ではretryしません。custom retryを指定するとこれらもretry対象になり得るため、APIのidempotencyを確認して設定してください。
出典:[1]
参考にした公式資料
- [1]ofetch stable v1 README(2026-10-05)
- [2]ofetch v1.5.1 release(2026-10-05)
- [3]ofetch MIT license on stable v1(2026-10-05)
編集部からの補足
stable利用では1.x系を明示しておくのが安全です。現在のmainはv2 alpha開発lineなので、READMEやpackage metadataを確認するときはstable v1 documentationと混同しないでください。1.5.1はonRequest後のheaders正規化を修正したpatch releaseです。
3ステップで試す
- 1
stable ofetch 1.5.1を一時projectへ導入する
v2 alphaではなくstable 1.xを試すため、1.5.1を明示して導入します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/ofetch.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact ofetch@1.5.1 - 2
local HTTP serverへofetchする確認scriptを作る
外部serviceに依存せず、READMEにあるJSON response自動解析をlocal serverで確認します。
printf "%s\n" "import {createServer} from 'node:http';" "import {ofetch} from 'ofetch';" "const server = createServer((request, response) => { response.setHeader('content-type', 'application/json'); response.end(JSON.stringify({ok: true})); });" "server.listen(0, '127.0.0.1', async () => {" " const address = server.address();" " try {" " const data = await ofetch('http://127.0.0.1:' + address.port + '/');" " if (data.ok !== true) process.exitCode = 1;" " console.log(data);" " } finally { server.close(); }" "});" > demo.mjs - 3
Node.jsでrequestを実行する
ofetchがHTTP responseを取得し、JSONをobjectへ解析して返すことを確認します。
node demo.mjs
成長
成長の推移 · 直近30日
5,360 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 78
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
- Stars
- 5,360
- Forks
- 197
- Watchers
- 14
- Open Issues
- 52
- Contributors
- 65
- 所有者種別
- Organization
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/10/04
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Ky17,104 Stars
共通タグ 6件 · 共通カテゴリ 1件 · 同じ言語
Fetch APIを薄く拡張し、retry・timeout・hook・JSON処理を短いAPIで扱う
TypeScript - Superstruct7,127 Stars
共通タグ 5件 · 共通カテゴリ 1件 · 同じ言語
小さなstructを組み合わせ、JavaScriptやTypeScriptの入力値を実行時に検証する
TypeScript - io-ts6,814 Stars
共通タグ 5件 · 共通カテゴリ 1件 · 同じ言語
codecで未知の値をdecode・encodeし、同じ定義からTypeScript型を推論する
TypeScript - Runtypes2,699 Stars
共通タグ 5件 · 共通カテゴリ 1件 · 同じ言語
未知の値をcomposableなruntime validatorで検証し、同じ定義からTypeScript型を推論する
TypeScript - Ajv14,850 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
JSON SchemaやJTDをcompileし、API入力や設定値を高速に実行時検証する
TypeScript - openapi-typescript8,391 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
OpenAPI 3.0/3.1の定義から実行時コードを増やさずTypeScript型を生成する
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。