@boiseitguru/cookie-cutter

中文文档
0.3.1发布于 2025/11/04MITTypeScriptCommonJS零依赖近 30 天下载 7522

在浏览器中获取和设置 cookie 的相容模块

中文使用文档
文档目录20 节
  1. 目录
  2. 特征
  3. 释放要闻(0.3.x)
  4. 安装
  5. 快速启动
  6. API 参考
  7. cookie(document?: Document | string)
  8. cookie.get(key: string): string | undefined
  9. cookie.set(key: string, value: string, options?: CookieOpti…
  10. cookie.clear(key: string, options?: CookieOptions): string
  11. cookie.configure(options: CookieConfig): void
  12. Cookie 选项
  13. 实例
  14. 分区的 SameSite=无 Cookie
  15. 在地方发展期间制止警告
  16. 类型脚本
  17. 测试
  18. 捐款
  19. 项目来源和信用
  20. 许可证

饼干蛋糕

npm version bundle size

在浏览器中读取和写入 cookie 或任何曝光环境的无依赖性小助手 document- 风格界面.

目录

特征

  • 零运行时间依赖性和ES5友好源,因此它与遗留的工具链保持了干净的捆绑.
  • 工作在浏览器,浏览器风格的捆绑,以及当您提供文档分页时的Node.js.
  • 内建的TypeScript声明与JavaScript模块具有相同的API形状.
  • 已分割的 CHIPS 属性支持外加 SameSite 守护符,以保持您与当前浏览器要求保持一致 .

释放要闻(0.3.x)

  • 添加 partitioned 属性使 Cookie 在匹配 Mozilla 的 Set- Cookie 指引的同时可以选择 CHIPS .
  • 警告时 SameSite: "None" 以无 secure: true 提供 cookie.configure({ suppressInsecureSameSiteNoneWarning: true }) 关闭本地 HTTP 设置中的警告 .
  • 引入顶级 cookie.clear 帮助(包括类型脚本声明)和保证删除强制 Max-Age=0。 。 。 .
  • 扩展序列化以覆盖 HttpOnly, (中文(简体) ), Max-Age,以及 SameSite 因此释放出cookie的属性反映了现代浏览器的期望.

安装

npm install @boiseitguru/cookie-cutter

快速启动

// CommonJS
var cookie = require("@boiseitguru/cookie-cutter");

var visits = parseInt(cookie.get("visits"), 10) || 0;
cookie.set("visits", visits + 1, { path: "/" });
// ES Modules (modern bundlers)
import cookie from "@boiseitguru/cookie-cutter";

const visits = Number(cookie.get("visits") || 0) + 1;
cookie.set("visits", String(visits), { path: "/" });

API 参考

cookie(document?: Document | string)

创建一个绑定在所提供文档或饼干字符串上的饼干控制器。 如果没有给出参数,则创建一个空的饼干罐. 当您在浏览器中导入/要求模块时,默认导出已经 与全球 document,所以你可以打电话 cookie.get, (中文(简体) ), cookie.set, (中文(简体) ), 财务报告和审定财务报表 cookie.clear 直接如“快速启动”所示.

cookie.get(key: string): string | undefined

返回为 key,或 undefined 如果饼干没有设置.

cookie.set(key: string, value: string, options?: CookieOptions): string

序列化 key=value 带有任何提供的饼干属性,指定给 document.cookie,然后返回序列字符串。 何时 options.SameSite === "None" 财务报告和审定财务报表 options.secure 没有 true,然后将警告打印到 console.warn 预测即将执行。 设置 options.partitioned === true 附加 Partitioned 属性.

cookie.clear(key: string, options?: CookieOptions): string

清除饼干 key 通过授权 set 过去已过期的 Max-Age = 0。通过与设置饼干时相同的选项(例如 path 或者说 domain)所以浏览器的目标是正确的饼干.

cookie.configure(options: CookieConfig): void

调整未来 cookie 操作的全局默认值, 如在本地开发时静音 SameSite 警告 .

type CookieConfig = {
  suppressInsecureSameSiteNoneWarning?: boolean;
};
  • suppressInsecureSameSiteNoneWarning: 当 true,禁用由 cookie.set 页:1 SameSite: "None" 饼干不见了 secure 旗帜。 适用于HTTP的非生产开发.
选项类型说明
expiresDate设定饼干过期日期 .
pathstring将饼干限制在特定路径上 .
domainstring将饼干限制在特定域内.
secureboolean将饼干标为仅安全的. 浏览器在 SameSite 实值 "None"。 。 。 .
HttpOnlyboolean添加 HttpOnly 属性.
MaxAgenumber通过 Max-Age。 。 。 .
SameSite"Strict" | "Lax" | "None"控制跨场饼干行为.
partitionedboolean附加 Partitioned cHIPS 存储属性( 需要) secure: true 在支持浏览器中).

实例

var cookie = require("@boiseitguru/cookie-cutter");
var api = cookie(document);

api.set("session", "abc123", {
  secure: true,
  SameSite: "None",
  partitioned: true
});

这种组合满足了当前Mozilla Set-Cookie对分块饼干的期望.

在地方发展期间制止警告

var cookie = require("@boiseitguru/cookie-cutter");

cookie.configure({ suppressInsecureSameSiteNoneWarning: true });
var api = cookie({ cookie: "" });

api.set("token", "dev-only", { SameSite: "None" });

类型脚本

类型定义船与包。 使用默认或普通JS语法导入模块,并享受饼干选项的自动完成,包括 partitioned 财务报告和审定财务报表 SameSite。 。 。 .

import cookie = require("@boiseitguru/cookie-cutter");

const api = cookie();
api.set("theme", "dark", { SameSite: "Lax", MaxAge: 300 });

测试

运行磁带测试套件 :

npm test

捐款

  • 保持ES5编码样式:双相距缩进, var 声明、双引字符串和明确的分号.
  • 当运行时间 API 改变时更新 TypeScript 声明 .
  • 在功能改变的同时添加有重点的测试, 以便行为保持锁定 .

项目来源和信用

这个寄存器保存了詹姆斯·哈利迪(英语:James Halliday (substack))最初的cookie-cutter模块,以确保持续提供,TypeScript支持和现代cookie属性更新在此保持.

许可证

麻省理工学院. 见 自由主义 详细文件.

版本与发布记录

@boiseitguru/cookie-cutter 共发布 6 个版本,首次发布于 2023/07/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.3.1latest2025/11/041 年前
0.3.02025/11/041 年前
0.2.32024/01/032 年前
0.2.22024/01/032 年前
0.2.12023/07/133 年前
0.2.02023/07/103 年前

关于 @boiseitguru/cookie-cutter 的常见问题

@boiseitguru/cookie-cutter 是什么?

在浏览器中获取和设置 cookie 的相容模块

如何安装 @boiseitguru/cookie-cutter?

在项目目录运行 npm install @boiseitguru/cookie-cutter,或使用 pnpm add / yarn add / bun add。

@boiseitguru/cookie-cutter 支持 TypeScript 吗?

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

@boiseitguru/cookie-cutter 支持 ESM 还是 CommonJS?

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

@boiseitguru/cookie-cutter 可以商用吗?

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

@boiseitguru/cookie-cutter 的下载量有多少?

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

@boiseitguru/cookie-cutter 还在维护吗?

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