@bondsports/online-booking

中文文档
1.0.0发布于 2026/06/08TypeScriptCommonJS近 30 天下载 3553

Bond Sports 在线预订软件包

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. resolveBookingSettings
  4. validateBookingSlots
  5. 处理错误
  6. API 密码
  7. 脚本

@ bondsports/在线预订

在线订票流程的验证和设置分辨率工具.

软件包回答了两个问题:

  1. 现在对该用户适用什么预订设置? —— 说 resolveBookingSettings 将默认产品类设置与用户活动成员中最有利的覆盖合并.
  2. 用户想要预订的插槽是否实际允许 ? —— 说 validateBookingSlots 对照已解析的设置检查请求的插槽( 与用户已订入的插槽合并)并返回打入的验证结果 .

安装

npm install @bondsports/online-booking

使用量

resolveBookingSettings

选择有效 IBookingSettings 用于用户。 如果用户没有活动成员(或者没有一个成员推翻类别设置),则返回默认值. 否则是最低的 minimumBookingNotice 和最高 advanceBookingWindow 超越会员的优势.

import { resolveBookingSettings } from '@bondsports/online-booking';

const settings = resolveBookingSettings(productCategory.onlineBookingSettings, user.activeMemberships);
  • productCategory.onlineBookingSettings —— 说 TProductCategoryOnlineBookingSettings (单位:千美元){ default, memberships }(中文(简体) )
  • user.activeMemberships —— 说 { membershipId: number }[] (可选;通过) undefined 或者说 [] (给客人)

validateBookingSlots

对照已解析的设置验证请求的时段列表 .

import { validateBookingSlots } from '@bondsports/online-booking';

const result = validateBookingSlots(requestedSlots, userBookedSlots, settings, facilityTimezone);

if (!result.success) {
    // result.error is a ValidationError with a stable `code` (see ONLINE_BOOKING_ERRORS)
    throw result.error;
}

验证符 :

  • 将所请求的插槽与用户现有的订位( 密闭到订位窗口) 合并 ,
  • 执行 maxBookingHours 每个日历日(设施时区),
  • 执行 maxSequentialBookings 每个连续的街道,
  • 执行 minimumBookingNotice 财务报告和审定财务报表 advanceBookingWindow 反对"现在".

处理错误

所有失败返回 { success: false, error } 地点 error 是一个 ValidationError 带稳定器的子级 code 从 ONLINE_BOOKING_ERRORS数字 :

错误类代码含义
InvalidTimesErrorINVALID_TIMES开始日期不严格在结束日期之前
MinimumNoticeErrorMINIMUM_NOTICE_DATE开始日期是之前 now + minimumBookingNotice
AdvanceBookingErrorADVANCE_BOOKING_DATE开始日期超过 now + advanceBookingWindow
MaxSequentialHoursErrorMAX_SEQUENTIAL_HOURS毗连区块超过 maxSequentialBookings
MaxBookingHoursErrorMAX_BOOKING_HOURS超过一天的预订时间总数 maxBookingHours
import { ONLINE_BOOKING_ERRORS, ValidationError } from '@bondsports/online-booking';

if (!result.success && result.error.code === ONLINE_BOOKING_ERRORS.MINIMUM_NOTICE_DATE) {
    // show "book at least N hours in advance" message
}

API 密码

import {
    validateBookingSlots,
    resolveBookingSettings,
    ONLINE_BOOKING_ERRORS,
    ValidationError,
    InvalidTimesError,
    MinimumNoticeError,
    AdvanceBookingError,
    MaxSequentialHoursError,
    MaxBookingHoursError,
    IBookingValidation,
    IBookingSettings,
    IMembershipBookingSettings,
    TProductCategoryOnlineBookingSettings,
} from '@bondsports/online-booking';

脚本

npm run build      # compile to ./dist
npm test           # run jest
npm run lint       # eslint + prettier check
npm run lint:fix   # autofix

版本与发布记录

@bondsports/online-booking 共发布 6 个版本,首次发布于 2026/05/10;过去 12 个月发布了 6 个版本。

版本发布日期距今
1.0.0latest2026/06/085 个月前
0.0.2-beta-1squad-c2026/05/205 个月前
0.0.2-beta2026/05/195 个月前
0.0.22026/05/185 个月前
0.0.1-beta2026/05/125 个月前
0.0.12026/05/105 个月前

关于 @bondsports/online-booking 的常见问题

@bondsports/online-booking 是什么?

Bond Sports 在线预订软件包

如何安装 @bondsports/online-booking?

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

@bondsports/online-booking 支持 TypeScript 吗?

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

@bondsports/online-booking 支持 ESM 还是 CommonJS?

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

@bondsports/online-booking 可以商用吗?

@bondsports/online-booking 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@bondsports/online-booking 的下载量有多少?

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

@bondsports/online-booking 还在维护吗?

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