@empyria/moleculer

中文文档
0.1.29发布于 2026/11/01MITES Module

emyria的分子帮手

中文使用文档
文档目录7 节
  1. 要求
  2. 安装
  3. 使用
  4. 模块
  5. 众所周知的局限: ConnectorMixin
  6. 脚本
  7. 许可证

@empyria /分子

分子辅助物 Empyria一个主要构建在Bun上的纳米服务框架: 一个基本服务混合和一个上下文验证保护中间件免受不必要的影响 (未经身份验证或跨联邦)访问。

要求

  • 包子 >=1.4.0 或node . js >=26
  • 简单的ESM,没有构建步骤,没有TypeScript

这两个要求都来自 @empyria /分类 和 @empyria /常见这个包裹 取决于和哪个使用本机 Temporal 全局用于所有日期/时间处理。

安装

bun add @empyria/moleculer

使用

import { ServiceBroker } from 'moleculer'
import { BaseMixin, MetaGuard } from '@empyria/moleculer'

const broker = new ServiceBroker({
    middlewares: [MetaGuard({ resolveUser: true, whitelistedActions: ['v1.Internal.action'] })],
})

broker.createService({
    name: 'my-service',
    mixins: [BaseMixin],
    actions: {
        hello(ctx) {
            return `Hello, ${ctx.meta.user.actor}`
        },
    },
})

所有的东西都是从包根目录通过 Mixins.js. 代理 连接助手和底层实用程序是单独的子路径导出,可直接导入:

import { connect } from '@empyria/moleculer/Connector.js'
import { hashPassword, verifyPassword } from '@empyria/moleculer/util/Crypto.js'

模块

模块目的
Mixins.js包入口点;再出口 BaseMixin 和 MetaGuard.
MetaGuard.middleware.jsMetaGuard -一个分子中间件,保护动作/事件免受不必要的访问,可选的调用者解析。
mixin / Base.mixin.jsBaseMixin -在服务启动时标记一个Empyria元(参与者/联邦/流/进程id),并公开包的版本。
mixin / Connector.mixin.jsConnectorMixin -增加可选的Redis/Mongo设置。 尚未从 Mixins.js -见下文。
Connector.jsconnect -启动一个分子代理并等待所需的服务。
util / Context.js上下文帮助: getParams, getUser, validateContext, actionStamped, timeStamped, checkDefined.
util / Crypto.js哈希、Ed25519签名/验证和密码哈希(hashPassword/verifyPassword)。

众所周知的局限: ConnectorMixin

mixins/Connector.mixin.js 导入 @empyria/redis 和 @empyria/mongo,这些都不是 作为独立包发布。它被故意省略了 Mixins.js 桶,以便包的其余部分保持可导入——在这两个部分发布之前,只使用它 通过直接子路径导入(@empyria/moleculer/mixins/Connector.mixin.js),它会在哪里 无法解决。

每个导出的函数都直接用JSDoc记录在其源文件中——悬停 VSCode或Zed中的函数显示其参数和返回类型,不需要任何额外的内容 工具,因为两个编辑器都从plain读取JSDoc .js 自动文件。

测试在 测试/,每个模块一个文件,与源文件分开。几个 锻炼身体 moleculer ServiceBroker 而不是嘲笑。

脚本

bun run format       # check formatting (oxfmt)
bun run format:fix   # apply formatting
bun run lint         # lint (oxlint)
bun run lint:fix     # lint and fix
bun run test         # run tests with coverage

许可证

MIT©Imre Fazekas

版本与发布记录

@empyria/moleculer 共发布 28 个版本,首次发布于 2026/08/16;过去 12 个月发布了 28 个版本。

版本发布日期距今
0.1.29latest2026/11/012 天前
0.1.282026/10/295 天前
0.1.272026/10/259 天前
0.1.262026/10/2311 天前
0.1.252026/10/1815 天前
0.1.242026/10/1618 天前

关于 @empyria/moleculer 的常见问题

@empyria/moleculer 是什么?

emyria的分子帮手

如何安装 @empyria/moleculer?

在项目目录运行 npm install @empyria/moleculer,或使用 pnpm add / yarn add / bun add。

@empyria/moleculer 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/empyria__moleculer 是否存在。

@empyria/moleculer 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@empyria/moleculer 需要什么版本的 Node.js?

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

@empyria/moleculer 可以商用吗?

@empyria/moleculer 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@empyria/moleculer 还在维护吗?

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