@bondsports/permissions

中文文档
0.2.28-c-1发布于 2026/11/01ISCTypeScriptCommonJS近 30 天下载 4581

Bondsports 内部权限字符串包

中文使用文档
文档目录8 节
  1. 特征
  2. 安装
  3. 使用量
  4. 添加新权限
  5. 示例:后端的用法
  6. 示例:前端使用量
  7. 捐款
  8. 出版

权限软件包

这个软件包集中并组织整个应用程序使用的所有权限,形成结构完善的模块. 这个 确保前端执行和后端执行之间的一致性,希望能够更容易找到和使用 权限.

特征

  • 模块组织: 权限根据其功能域(如:, calendar, (中文(简体) ), commerce) (中文(简体) ).
  • 强打字: 权限被定义为具有类型安全性TypeScript支持的常数对象.
  • 集中访问 : 将所有模块合并为一个单元 permissions 用于方便访问的对象.

安装

npm install @bond-sports/permissions

使用量

所有权限都在中央权限对象中汇总,可以导入用于全局访问 :

import permissions from '@bond-sports/permissions';

console.log(permissions.calendar.reservation.create); // Output: "calendar.reservation.create"
console.log(permissions.commerce.kiosk.view);         // Output: "commerce.kiosk.view"

添加新权限

要添加新权限 :

  1. 创建或更新相应的模块文件(例如日历相关权限的日历.ts).
  2. 遵循结构:
const CalendarPermissions = {
    reservation: {
        create: 'calendar.reservation.create',
        edit: 'calendar.reservation.edit',
    },
    slots: {
        sessions: {
            checkIn: 'calendar.slots.sessions.checkIn',
        },
    },
} as const;

export default CalendarPermissions;
  1. 确保索引.ts文件导入新模块并更新权限对象.

示例:后端的用法

在后端服务中使用访问控制权限 :

import permissions from '@bond-sports/permissions';

// Example: Checking user permissions in a middleware
function hasPermission(userPermissions: string[], requiredPermission: string): boolean {
    return userPermissions.includes(requiredPermission);
}

const userPermissions = ['calendar.reservation.create'];
const requiredPermission = permissions.calendar.reservation.create;

if (hasPermission(userPermissions, requiredPermission)) {
    console.log('Permission granted');
} else {
    console.log('Permission denied');
}

示例:前端使用量

根据用户权限控制 UI 组件 :

import permissions from '@bond-sports/permissions';

function PermissionsWrapper({ requiredPermission, children, userPermissions }) {
  if (userPermissions.includes(requiredPermission)) {
    return <>{children}</>;
  }
  return null;
}

// Usage in a React component
<PermissionsWrapper
  requiredPermission={permissions.commerce.kiosk.view}
  userPermissions={['commerce.kiosk.view']}
>
  <button>Access Kiosk</button>
</PermissionsWrapper>;

捐款

  1. 清除寄存器并安装依赖性 :
git clone [email protected]:Bond-Sports/permissions.git
  1. 安装项目依赖性 :
npm install
  1. 在相应的模块文件中添加或修改权限 .

  2. 提交并按下您的更改 :

git commit -m "Add new permissions for [feature]"
git push

出版

当更新被推到特定的分支(如开发,中转,主机)时,此软件包会自动被发布 通过 GitHub 动作 .

版本与发布记录

@bondsports/permissions 共发布 50 个版本,首次发布于 2025/01/16;过去 12 个月发布了 22 个版本。

版本发布日期距今
0.2.28-c-1latest2026/11/017 天前
0.2.282026/10/2910 天前
0.2.27-squad-b-12026/10/2810 天前
0.2.27-c.02026/10/1919 天前
0.2.272026/10/1226 天前
0.2.26-c-12026/09/171 个月前

其他发布通道:squad-c → 0.2.22-squad-c-1,squad-a → 0.2.25-a-1。

关于 @bondsports/permissions 的常见问题

@bondsports/permissions 是什么?

Bondsports 内部权限字符串包

如何安装 @bondsports/permissions?

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

@bondsports/permissions 支持 TypeScript 吗?

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

@bondsports/permissions 支持 ESM 还是 CommonJS?

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

@bondsports/permissions 可以商用吗?

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

@bondsports/permissions 的下载量有多少?

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

@bondsports/permissions 还在维护吗?

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