Skip to content

アプリケーションが所有するライフサイクル境界を選び、そのエコシステムでスコープを作成、公開、破棄する方法を比較してください。各グループは examples/ のディレクトリに対応します。

ここから始める

まず examples/_shared/container.ts を読んでください。ほとんどのサーバーサイドの例はこのビルダーをインポートしており、各ファイルはフレームワークの配線に集中できます。

グループ比較する内容
JavaScript での使用Node ESM、Node CommonJS、そしてブラウザのバンドラーでの使用
バックエンドフレームワークFastify、Hono、Koa、Express、そして Elysia のリクエストスコープアダプター
API レイヤーtRPC、Apollo Server、そして GraphQL Yoga のリクエストスコープ境界
フルスタックフレームワークNext.js App Router と Remix の loader/action スコープ
ランタイムとエッジプラットフォームNode HTTP、Bun、Deno、Cloudflare Workers、Vercel Edge、Deno Deploy、そして Supabase Edge
フロントエンドフレームワークReact、React Native、Vue、そして Svelte の機能スコープ
ボット、キュー、そして CLITelegraf、Grammy、BullMQ、Commander、そして Yargs の操作スコープ

グループの読み方

サーバーサイドの例では、アプリケーションのグラフとして examples/_shared/container.ts を使用します。グループのページはライフサイクルの所有に焦点を当てています。すなわち、スコープがどこで作成され、どこで公開され、どこで破棄されるかです。

サーバーサイドとワーカーの例では、フレームワーク/プラットフォームのライフサイクルフックを比較してください。フロントエンドの例では、マウントとアンマウントの境界を比較してください。

参照スニペット

pnpm run examples:typecheckexamples/_shared/container.tsexamples/_shared/testing.ts を検査します。ルート workspace はすべてのフレームワーク依存をインストールしないため、その他のフレームワークスニペットまでは型チェックしません。必要なパターンをアプリケーションへコピーし、依存パッケージを追加して、共有グラフを自身の型に合わせてください。