@appneurox/service-composition

中文文档
0.1.0发布于 2026/10/27Apache-2.0TypeScriptCommonJS零依赖近 30 天下载 2613

可导入服务模块和单进程 NestJS 组成基础.

中文使用文档

共享服务构成基础

此软件包将同一可导入的 NestJS 服务模块组成一个独立应用程序,或者由一个公共的 HTTP 听取器进行一个进程. 它使用峡谷 @appneurox/service-runtime 用于拖曳、认证、租户上下文、相关性、出错和关闭的软件包。 它不创建第二个 Async LocalStorage,认证装饰或运行时间复制. 在远程节点24跑道上先构建运行时间;工作空间根拥有依赖安装和锁文件.

ServiceDefinition 包含安全的小写服务 slug 与公众 label。 。 。 . composeServiceModule(ModuleType, definition, ApplicationClass, options) 接受独特的模块类和扩展的应用程序类 BaseServiceApplication;其动态模块输出应用程序类和稳定 serviceApplicationToken(slug) 符号。 应用类可以使用正常的Nest DI. 域模块不拖曳应用程序,注册全局守护,安装流程处理器,读取流程配置或打开套接字. 可选的供应商/进口选项支持明确的基础设施注入;它们不提供或核实基础设施.

@Injectable()
class VendorApplication extends BaseServiceApplication {
  constructor() { super({ slug: 'vendor-service', label: 'Vendor' }); }
}
@Module({})
class VendorModule {}
const definition = { slug: 'vendor-service', label: 'Vendor' };
const service = {
  definition,
  module: composeServiceModule(VendorModule, definition, VendorApplication),
  applicationToken: serviceApplicationToken(definition.slug),
};

独立主机导入 service.module 穿过峡谷的跑道. createMonolithApplication({ services, config, authVerifier, logger }) 初始化而不听; bootstrapMonolith 打开一个主机听众 并拥有优雅的关闭。 两人都接受犬科运行时间的选择. 每个服务控制器都安装在弹簧下,例如 /vendor-service/v1/module 财务报告和审定财务报表 /vendor-service/v1/execute一个东道主运行时间服务于健康/发现和公众 /modules 列出元数据。 复制弹片,共享模块类,不安全的定义和不匹配的应用符号在拖放前会失败.

BaseServiceApplication.metadata() 报告 BOILERPLATE, (中文(简体) ), businessReady: false 财务报告和审定财务报表 businessImplementation: not_implemented。 。 execute 边界完全接受 { operation, payload }。操作名称使用带有可选点、下划线或连字符分隔符的小写字母/数字,最多63个字符。 有效载荷必须是普通的JSON对象;访问器,符号,原型键,循环,稀有数组和非JSON值被拒绝. 输入限为64KiB,16个筑巢级和4096个JSON节点. 共享 ExecuteOperationDto 增加了HTTP验证,而应用程序再次验证直接调用.

authorizeOperation(scope, requireTenant = true) 仅读取 Cononic 运行时间已核实的请求上下文。 它重新检查主要住户、选定的租户成员和确切范围;单凭要求的主管从不授权。 它不验证无记名证或薄荷本金:主机真实的 AuthVerifier 必须首先确定这一背景。 直接信任的呼叫者必须通过同一经核实的权威边界进入. execute 需求 ${slug}:${operation} ,然后返回501,因为不存在业务执行。 HTTP适配器可能还需要固定的入侵范围,例如: ${slug}:invoke。 。 。 .

应用程序服务在单立模式下直接通过DI调用导出应用程序提供者. 独立的依赖性适配器可以执行相同的显式端口. Redis 集合、坚持、提供者客户和背景工作仍然是选择所有者执行。 这一基础包括没有Redis驱动程序、WS/gRPC监听器或准备状态索赔;这些运输需要明确的适配器、认证和生命周期测试。 它既不转换现有的82个执行或原生的54个模块,也不削减其API、数据或部署.

版本与发布记录

@appneurox/service-composition 共发布 2 个版本,首次发布于 2026/10/27;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.0latest2026/10/2712 天前
0.0.0-stage2026/10/2712 天前

关于 @appneurox/service-composition 的常见问题

@appneurox/service-composition 是什么?

可导入服务模块和单进程 NestJS 组成基础.

如何安装 @appneurox/service-composition?

在项目目录运行 npm install @appneurox/service-composition,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@nestjs/core(^12.2.0)、@nestjs/common(^12.2.0)、class-validator(^0.15.1)、@appneurox/service-runtime(^0.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@appneurox/service-composition 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@appneurox/service-composition 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@appneurox/service-composition 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24 <25。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@appneurox/service-composition 可以商用吗?

@appneurox/service-composition 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@appneurox/service-composition 的下载量有多少?

根据 npm 官方下载统计,@appneurox/service-composition 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,613 次,日均约 87 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@appneurox/service-composition 还在维护吗?

最新版本 0.1.0 发布于 2026/10/27(12 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/10/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。