# @benzinga/session 中文文档

规范地址：https://npmcn.com/package/%40benzinga/session/

版本：2\.0\.5
npm 元数据更新时间：2025-04-28T17:56:48.527Z
中文译文更新时间：2026-11-07T22:48:15.228Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40benzinga/session
原文对照：https://npmcn.com/package/%40benzinga/session/?lang=original
项目主页：https://github.com/Benzinga/js-tools

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.3 kB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2023-01-03T20:46:30.556Z
- 最新版本发布：2025-04-14T17:05:47.628Z
- 近 30 天下载量：2881（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 0 个）

## 中文简介

这个项目之所以可能,是因为

## 安装

```sh
npm install @benzinga/session
```

也可以使用：`pnpm add @benzinga/session`、`yarn add @benzinga/session`、`bun add @benzinga/session`

## README

# 会话包

这个项目之所以可能,是因为

[![Benzinga Logo](https://import.cdn.thinkific.com/222214/D3r5EJy9SZaNsaY7dQsj_Benzinga-logo-navy.svg)](https://npmcn.com/package/%40benzinga/session/www.benzinga.com)

[![ZSoft Logo](https://raw.githubusercontent.com/ZNackasha/CDN/refs/heads/main/zsoft-no-size.svg)](https://github.com/znackasha)

Session 软件包是一个工具,可以跟踪您拥有的所有和管理器。 允许您请求、 存储和获取数据, 并能够在使用前配置管理器 .

## 使用量

要启动, 您首先要使用 `createSession` 函数

```ts
import { Session } from '@benzinga/session'
```

您只需通过调用函数即可调用实例

```ts
const session = new Session();
```

一旦你有一个会话 你就不能做很多事情。 这是因为模块设计. 我们称这些模块管理员。 每位管理人员负责管理特定资源. 从日志管理器开始。 直接调用它 `getManager` 函数与 `LoggingManager` 阶级作为争论. 这将返回一个日志管理器实例 。 由会议进行,您可以随时通过电话询问 `getManager`

```ts
import { Session } from '@benzinga/session';

const session = new Session({
  'benzinga-logging': {
    verbosity: 'warn'
  }
})
const loggingManager = session.getManager(LoggingManager);
loggingManager.log('debug', 'this is a test');
```

## 添加新管理器

要添加一个新的管理器,您需要使用以下命令.

管理器名称必须以单词管理器结尾 。 并必须在数据目录中的管理器目录中.

以下命令仅替换 `something` 和你的经理的名字.

```
yarn nx generate @nrwl/web:lib something --directory=libs/managers --buildable --importPath=@benzinga/something-manager --publishable
```

管理器必须扩展以下接口

```ts
export interface Manager<T extends Subscribable<any>> {
  getName: () => string;
  new (name: Session): T;
}
```

这在人类的言语中意味着什么. 管理者必须用一个会话作为构建者的参数。 它必须有一个静态的公共功能,叫做 `getName`其他的,则没有要求.

# 类

## 会议

Benzinga SDK核心类

要访问 SDK 管理器, 您必须先创建会话

### 方法

```ts
getEnvironment <M extends Environment, R extends ReturnType<M["getEnvironment"]>>(managerEnv: M): R
```

获取给定管理器的环境

```ts
getManager <T extends Subscribable<any>>(managerName: Manager<T>): T
```

拿个经理的例子

这是获得管理员实例的主要方式和首选方式

## 常见问题

### @benzinga/session 是什么？

这个项目之所以可能,是因为

### 如何安装 @benzinga/session？

在项目目录运行 npm install @benzinga/session，或使用 pnpm add / yarn add / bun add。

### @benzinga/session 支持 TypeScript 吗？

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

### @benzinga/session 支持 ESM 还是 CommonJS？

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

### @benzinga/session 可以商用吗？

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

### @benzinga/session 的下载量有多少？

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

### @benzinga/session 还在维护吗？

最新版本 2\.0\.5 发布于 2025/04/15（1\.6 年前）；至今共发布 15 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/01/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

