@bondsports/permissions

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

Bondsports internal permissions strings package

原始使用文档
文档目录8 节
  1. Features
  2. Installation
  3. Usage
  4. Adding New Permissions
  5. Example: Usage in Backend
  6. Example: Usage in Frontend
  7. Contributing
  8. Publishing

Permissions Package

This package centralizes and organizes all permissions used across the application into well-structured modules. It ensures consistency between frontend and backend implementations, and will hopefully make it easier to find and use permissions.

Features

  • Modular Organization: Permissions are grouped into modules based on their functional domains (e.g., calendar, commerce).
  • Strong Typing: Permissions are defined as constant objects with TypeScript support for type safety.
  • Centralized Access: All modules are aggregated in a single permissions object for convenient access.

Installation

npm install @bond-sports/permissions

Usage

All permissions are aggregated in a central permissions object, which can be imported for global access:

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"

Adding New Permissions

To add new permissions:

  1. Create or update the corresponding module file (e.g., calendar.ts for calendar-related permissions).
  2. Follow the structure:
const CalendarPermissions = {
    reservation: {
        create: 'calendar.reservation.create',
        edit: 'calendar.reservation.edit',
    },
    slots: {
        sessions: {
            checkIn: 'calendar.slots.sessions.checkIn',
        },
    },
} as const;

export default CalendarPermissions;
  1. Ensure the index.ts file imports the new module and updates the permissions object.

Example: Usage in Backend

Use permissions in backend services for access control:

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');
}

Example: Usage in Frontend

Control UI components based on user permissions:

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>;

Contributing

  1. Clone the repository and install dependencies:
git clone [email protected]:Bond-Sports/permissions.git
  1. Install the project dependencies:
npm install
  1. Add or modify permissions in the appropriate module files.

  2. Commit and push your changes:

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

Publishing

This package is automatically published when updates are pushed to specific branches (e.g., develop, staging, master) via GitHub Actions.

版本与发布记录

@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/1920 天前
0.2.272026/10/1227 天前
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 internal permissions strings package

如何安装 @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 和提交记录判断。