mcpField
W
wooksjs

wooksjs

github.com/wooksjs開発043 回インストール1 週間前に更新
リポジトリ

wooksjs について

wooksjs は、HTTP、CLI、WebSocket、ワークフローに対応する Node.js 向けの型付きコンポーザブルフレームワークです。AsyncLocalStorage でイベントコンテキストを伝播し、`req`/`res` の引数やミドルウェアチェーンなしでリクエストやイベントのデータにアクセスできます。

主な機能

  1. 01型付きコンポーザブル API
  2. 02AsyncLocalStorage によるイベントコンテキスト伝播
  3. 03HTTP、CLI、WebSocket、ワークフロー用アダプター
  4. 04単体利用できる WebSocket クライアント
  5. 05HTTP ボディ、静的ファイル、プロキシ用ユーティリティ

活用シーン

  1. 01Node.js の HTTP ルートやサービスの構築
  2. 02コマンドラインアプリの開発
  3. 03WebSocket サーバーやクライアントの実装
  4. 04HTTP 出口を含むワークフローの構成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wooksjs/wooksjs --skill wooksjs

インストール後、Claude Code で/wooksjsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
event-cli.md
event-core.md
event-http.md
event-wf.md
event-ws.md
http-body.md
http-proxy.md
http-request.md
http-response.md
http-static.md
router.md
wf-advanced.md
wf-outlets.md
ws-client.md

詳細

wooksjs

Node.js 向けの型付きコンポーザブルフレームワークです。リクエスト/イベントデータのあらゆる要素にコンポーザブル関数を通じてアクセスします。req/res パラメーターやミドルウェアチェーンはありません。アダプター:HTTP、CLI、WebSocket、ワークフロー。単体で使える WebSocket クライアントもあります。

インストール

パッケージインストールピア依存関係のメモ
@wooksjs/event-httpnpm i wooks @wooksjs/event-http—
@wooksjs/event-clinpm i wooks @wooksjs/event-cli—
@wooksjs/event-wsnpm i wooks @wooksjs/event-ws wsws ^8.0.0 が必要
@wooksjs/event-wfnpm i wooks @wooksjs/event-wfピア依存関係として @wooksjs/event-http と @wooksjs/http-body が任意(HTTP アウトレット)
@wooksjs/http-bodynpm i @wooksjs/http-bodyピア依存関係として @wooksjs/event-core、@wooksjs/event-http が必要
@wooksjs/http-staticnpm i @wooksjs/http-staticピア依存関係として @wooksjs/event-http が必要
@wooksjs/http-proxynpm i @wooksjs/http-proxyピア依存関係として @wooksjs/event-http が必要
@wooksjs/ws-clientnpm i @wooksjs/ws-clientws は任意 — Node のみ。ブラウザーではネイティブの WebSocket を使用します
依存関係マップ
event-core  <-  wooks  <-  adapters: event-http, event-cli, event-ws, event-wf
                           event-http  <-  utilities: http-body, http-static, http-proxy

ws-client: standalone (no event-core dependency)
  • ユーティリティはピア依存関係として特に event-http を必要とします(http-body は event-core も必要とします)。
  • event-wf では、ピア依存関係として @wooksjs/event-http と @wooksjs/http-body が任意です。HTTP アウトレットを使用する場合は、両方をインストールしてください。

アーキテクチャ

すべてのパブリック API は defineWook で作成されるコンポーザブルで、AsyncLocalStorage を介して伝播される型付きスロットコンテナー(key/cached/cachedBy/slot)である EventContext ごとにキャッシュされます。パラメーターを渡さずにどこからでもコンテキストを取得するには、current() を呼び出します。親コンテキストのチェーンを使うと、ネストしたイベント(HTTP → ワークフロー、HTTP → WS アップグレード)から親のスロットを読み取れます。詳細:event-core.md。

クイックスタート

import { createHttpApp, useRouteParams } from '@wooksjs/event-http'

const app = createHttpApp()
app.get('/hello/:name', () => `Hello, ${useRouteParams().get('name')}!`)
app.listen(3000)

多くのリファレンスファイルの末尾には「ルールと注意点」の表があります。コードを書く前に読んでください。

主要なインポート

// event-core — context engine, custom adapters
import { key, cached, cachedBy, slot, defineEventKind, defineWook,
  EventContext, run, current, tryGetCurrent, createEventContext,
  useRouteParams, useEventId, useLogger, routeParamsKey, eventTypeKey,
  ContextInjector, getContextInjector, replaceContextInjector, resetContextInjector } from '@wooksjs/event-core'

// event-http — HTTP server + request/response composables
import { createHttpApp, useRequest, useResponse, useHeaders, useCookies,
  useUrlParams, useAuthorization, useAccept, HttpError,
  prepareTestHttpContext, DEFAULT_FORWARD_HEADERS } from '@wooksjs/event-http'

// http-body — parsed request bodies (JSON, form-data, urlencoded)
import { useBody } from '@wooksjs/http-body'

// http-static — file serving
import { serveFile } from '@wooksjs/http-static'

// http-proxy — reverse proxy
import { useProxy } from '@wooksjs/http-proxy'

// event-cli — command-line apps
import { createCliApp, useCliOptions, useCliOption,
  useCliHelp, useAutoHelp, useCommandLookupHelp } from '@wooksjs/event-cli'

// event-ws — WebSocket server
import { createWsApp, useWsConnection, useWsMessage, useWsRooms, useWsServer,
  currentConnection, prepareTestWsConnectionContext, prepareTestWsMessageContext } from '@wooksjs/event-ws'

// event-wf — workflows
import { createWfApp, useWfState, StepRetriableError } from '@wooksjs/event-wf'

// ws-client — standalone WS client (browser + Node)
import { createWsClient } from '@wooksjs/ws-client'

参考資料

タスクに合った参考ファイルを読んでください。すべてのファイルを読み込まず、必要なものだけを確認してください。

ドメインファイル読み込むタイミング
ルーティングrouter.mdルートパターン、パラメーター、ワイルドカード、正規表現、パスビルダー、設定
コンテキストエンジンevent-core.mdスロット、コンポーザブル、EventContext、カスタムアダプターを扱う場合
HTTP コア/ルーティングevent-http.mdHTTP アプリの作成、ルーティング、サーバーのライフサイクル、セキュリティヘッダー
HTTP リクエストhttp-request.mdヘッダー、Cookie、クエリパラメーター、raw body、認証を読み取る場合
HTTP レスポンスhttp-response.mdステータス、ヘッダー、Cookie、キャッシュ、エラー、ストリーミング、テスト
ボディ解析http-body.mdリクエストボディの解析(useBody):JSON、form-data、urlencoded 型
静的ファイルhttp-static.mdファイル/ディレクトリの配信(serveFile)、範囲、キャッシュヘッダー
HTTP プロキシhttp-proxy.mdリクエストのプロキシ/転送、ヘッダー/Cookie のフィルタリング、allowedHosts
CLI アプリevent-cli.mdCLI ツールの構築、コマンドルーティング、オプション、ヘルプシステム
WebSocket サーバーevent-ws.mdWS サーバー、ルーム、ブロードキャスト、メッセージルーティング、ワイヤープロトコル
ワークフローのコアevent-wf.mdステップ、フロー、スキーマ構文、一時停止/再開、useWfState
ワークフローのアウトレットwf-outlets.mdHTTP/メール配信、状態戦略、トークン、トリガーハンドラー
ワークフローの高度な機能wf-advanced.md親コンテキスト、スパイ、エラー処理、テスト
WS クライアントws-client.mdブラウザー/Node WS クライアント、RPC、サブスクリプション、再接続

横断的な参照先

  • 親コンテキストチェーン(HTTP → ワークフロー、HTTP → WS):wf-advanced.md
  • アダプター間で共有されるルーター(createCliApp({}, http) など):router.md
  • パフォーマンス — ハンドラーごとにコンテキストを一度だけ解決する:event-http.md
  • ステータスの自動推論(メソッド × ボディ → ステータス):event-http.md
  • WS ワイヤープロトコル(3 種類のメッセージ形式):event-ws.md
  • Express/Fastify/H3 との統合は別パッケージです — @wooksjs/express-adapter、@wooksjs/fastify-adapter、@wooksjs/h3-adapter。ドキュメント:https://wooks.moost.org/webapp/integrations/

関連項目

コメント