CORS制限を回避するモジュール
-
CORS対応済みのURLは素通し
既に CORS 対応済みの代表的なサービスの URL(例: Imgur、Wikipedia、Unsplash)や Base64 埋め込み形式の data URI は、そのまま返す設計。
→ 既に安全にアクセスできるものは手を加えず、可用性を落とさない。 -
その他の URL は自動でプロキシ経由
上記以外の URL は、公開・無認証のプロキシをランダムで経由して安全に取得。
使用するプロキシ例: -
余計な機能なし
エクスポートされる関数はcorsKillerただ1つ。
引数は文字列、返り値も文字列のシンプル設計。 -
Node.js / ブラウザ対応
型安全な TypeScript で両環境で利用可能 -
おんJ民が作っている
質問や相談はフォーラムで: 質問フォーラム
- 👀 DEMO
- 🛫 仕様書
- 🌟 GitHubリポジトリ
- 📦 npmモジュール
- ✅ カバレッジ
npm i @onjmin/cors-killerimport { corsKiller } from "@onjmin/cors-killer";
const url = "https://example.com/image.png"; // CORS非対応
const safeUrl = corsKiller(url);
console.log(safeUrl); // CORS対応済みURL
// https://api.allorigins.win/raw?url=https://example.com/image.pngconst { corsKiller } = await import("https://cdn.jsdelivr.net/npm/@onjmin/cors-killer/dist/index.min.mjs");
const url = "https://example.com/image.png"; // CORS非対応
const safeUrl = corsKiller(url);
console.log(safeUrl); // CORS対応済みURL
// https://api.allorigins.win/raw?url=https://example.com/image.png- 現状は画像を前提に作っているが、動画、音楽、JS/CSS など、CORS が絡むその他のリソースにも対応可能。
- その場合に備えて、テスト用関数やユーティリティも整備する必要がある。
- コントリビュート大歓迎!興味のある方はぜひ pull request や issue を送ってほしい。
- 開発環境
- 推奨エディタ: VSCode
- 開発言語: TypeScript
- 実行環境: Volta / pnpm / Biome
- 開発コマンド
pnpm run dev: http://localhost:2783 から動作確認可能