@ buffoff/ sdk- libs
模块SDK库在所有Burdenoff产品SDK(节点/TypeScript)之间共享.
每一单元 src/modules/<name>/ 导出a SdkModule 与 attach(ctx) -> API产品SDK(@vibecontrols/sdk-node, (中文(简体) ), @botlit/sdk-node等)成为细贝壳来选择要上载的模块. 姐姐来 @burdenoff/cli-sdk。 。 。 .
建筑
- 核心 (单位:千美元)
src/core/:SdkContext道具袋,SdkModule合同,BaseGraphQLClient(双重工作空间+全球网关),AuthStore带有可插件TokenStore(单位:千美元)InMemory, (中文(简体) ),File, (中文(简体) ),Env),有符号编辑的错误等级,ModuleRegistry用于跨模块访问. - 模块 (单位:千美元)
src/modules/<name>/:index.ts(默认-导出)SdkModule, (中文(简体) ),operations.ts(手写)gql字符串,api.ts(该课由attach, (中文(简体) ),types.ts(从__generated__/, (中文(简体) ),__generated__/types.ts(代码输出,被克提诺. - 硬规则: 模块从不直接导入——使用
ctx.modules.get<API>('id')模块从未调用process.exit或者把秘密写到日志上.
构建
- 齐声 双重无害环境管理+CJS,多入,
dts: true。条目:src/index.ts, (中文(简体) ),src/core/index.ts, (中文(简体) ),src/modules/*/index.ts。 。 。 . external数字 :graphql, (中文(简体) ),graphql-request, (中文(简体) ),graphql-ws(同声道.- 子路径导入 :
@burdenoff/sdk-libs/core, (中文(简体) ),@burdenoff/sdk-libs/modules/<name>。 。 。 .
图标
bun install
bun run dev # tsup watch
bun run build # tsup once
bun run sanity # boff sanity: format (bun fmt), lint, typecheck (bun check), build, test
bun run test # bun test
bun run type:check # bun check (TypeScript 7 rules)
bun fmt # format src, tests and scripts
bun run codegen # GraphQL types from pinned Hive supergraph
bun run codegen:check # CI gate: fail if generated types drifted
bun run parity:check # cross-language manifest diff vs sdk-libs-python
添加模块
mkdir src/modules/<name>与index.ts, (中文(简体) ),operations.ts, (中文(简体) ),api.ts, (中文(简体) ),types.ts。 。 。 .- 默认导出 an
SdkModule<API>从index.ts。 。 。 . - 将模块添加到
schema/modules.yaml(操作+依赖). - 镜入
~/products/sdk-libs-python/在同一对公关里. - tsup自动捡起它(
src/modules/*/index.ts(原始内容存档于2017-10-25). glob.
测试
- 单位
tests/unit/:纯逻辑 – arg parsers,应变器,gql doc 构建器. 没有HTTP.bun test, < 5s (英语). - 融入社会
tests/integration/:MSW拦截GraphQL请求. 混杂工厂__generated__/types. Schema 重命名中断模拟 = 测试失败. - E2E级(
tests/e2e/:真实 svc+状态,运行夜行. 镜像~/products/vibecontrols/vibecontrols-doctor/scripts/test-*-crud.sh。 。 。 . - 均等( E)
tests/parity/<scenario>.yaml:由节点+蟒蛇运行的同一种情景文件. 如果形状有差异, CI 失败 .
参考文献
~/products/burdenoff-be-sdk-node/——tsup多入+verdaccio出版参考.~/products/cli-sdk/- 姐妹CLI SDK(英语:CLI SDK).~/products/vibecontrols/vibecontrols-sdk-node/——第一消费者(薄壳).~/products/dev/audit/index/vibecontrols.md23个单元的地面真相.docs/fluidgrids.md——FluidGrids模块:认证,出错和出错,重复,秘密,怪事.