mcpField
W
wooksjs

wooksjs

github.com/wooksjs开发043 次安装1 周前更新
代码仓库

关于 wooksjs

wooksjs 是面向 Node.js 的类型化、可组合框架,适用于构建 HTTP、CLI、WebSocket 和工作流应用。它通过 AsyncLocalStorage 传播事件上下文,让组合函数在不传递 req/res 参数或串接中间件的情况下访问请求与事件数据。

主要功能

  1. 01类型化的可组合 API
  2. 02通过 AsyncLocalStorage 传播事件上下文
  3. 03提供 HTTP、CLI、WebSocket 与工作流适配器
  4. 04包含独立 WebSocket 客户端
  5. 05提供 HTTP 请求体、静态文件和代理工具

适用场景

  1. 01构建 Node.js HTTP 路由与服务
  2. 02开发命令行应用
  3. 03实现 WebSocket 服务或客户端
  4. 04编排工作流及其 HTTP 出口

安装

复制下面的命令,在终端中运行。

$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 ws需要 ws ^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 创建的可组合函数,并按 EventContext 缓存。EventContext 是一个类型化槽位容器(key/cached/cachedBy/slot),通过 AsyncLocalStorage 传播;调用 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)

大多数参考文件末尾都有一张 Rules & Gotchas 表——编写代码前请先阅读。

关键导入

// 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.md创建 HTTP 应用、路由、服务生命周期、安全标头
HTTP 请求http-request.md读取标头、Cookie、查询参数、原始请求体、授权
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.md构建 CLI 工具、命令路由、选项、帮助系统
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/

另请参阅

评论

支持 Markdown