1.0.3 • Published 8 months ago

@minisss/cookie v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@minisss/cookie

@minisss/cookie 是一个轻量级的 JavaScript 库,旨在简化对浏览器 Document.cookie 的操作。它提供了一组简单易用的 API,允许开发者轻松地读取、设置和删除 cookie,而无需直接处理复杂的字符串操作。

特性

  • ✅ 支持 Nextjs SSR cookie 操作(传入 ctx 上下文即可)
  • ✅ 内置 TS 类型提示, 重写 IMiniCookieData 获得自定义 TS 类型提示
  • ✅ 支持 ESM CJS UMD
  • 🤡 支持广泛浏览器
  • 😄 无依赖包

安装方式

# pnpm
pnpm i @minisss/cookie

# yarn
yarn add @minisss/cookie

# npm
npm i @minisss/cookie

# bun
bun install @minisss/cookie

使用方式

ESM xxx.js

import MiniCookie from "@minisss/cookie";
MiniCookie.set("cookieName", "cookieValue");
console.log(MiniCookie.get("cookieName"));

CJS xxx.js

// CJS xxx.js
const MiniCookie = require("@minisss/cookie");
MiniCookie.set("cookieName", "cookieValue");
console.log(MiniCookie.get("cookieName"));

UMD xxx.html

// UMD xxx.html 普通 script 直接导入 -> 访问全局变量 MiniCookie
<script src="https://unpkg.com/@minisss/cookie@0.0.1-alpha.2"></script>;
<script>
  console.log("MiniCookie 包对象: ", MiniCookie)
  MiniCookie.set('cookieName', 'cookieValue')
  console.log(MiniCookie.get('cookieName'))
  console.log(MiniCookie.has('cookieName'))
</script>

// script type module 模块化内部引入方式
<script type="module">
  import MiniCookie from "https://unpkg.com/@minisss/cookie@0.0.1-alpha.2/dist/index.esm.js";
  console.log("MiniCookie 包对象: ", MiniCookie)
  MiniCookie.set('cookieName', 'cookieValue')
  console.log(MiniCookie.get('cookieName'))
  console.log(MiniCookie.has('cookieName'))
  console.log(MiniCookie.del('cookieName'))
  console.log(MiniCookie.has('cookieName'))
</script>

API

方法名描述参数返回值
create创建 cookie 实例create(config)实例
get获取get(key, config)any
set设置set(key, config)boolean
del删除del(key, config)boolean
has判断是否存在has (key, config)boolean
serialize序列化serialize(key, val, config)string
parse解析parse(cookieStr)IMiniCookieData
version版本号MC.versionstring

Config

属性类型描述默认值
domainstring域名默认当前文档路径域部分
pathstring路径默认当前文档位置的路径
expiresDate过期时间未设置则会在对话结束时过期
maxAgenumber(单位: s)最大存活时间(推荐) MaxAge 优先级高于 Expires
httpOnlyboolean是否阻止客户端脚本访问该Cookie 只能在服务器端设置,不能在客户端设置false
secureboolean是否只允许 HTTPS 请求访问false
sameSite"Strict", "Lax", "None"允许的跨域请求Strict - 只允许同源的请求访问 Lax - 允许跨域的请求访问 None - 会在所有请求中发送,但需要同时设置Secure属性
partitionedboolean是否开启分区false
priority"High", "Medium", "Low"浏览器保留优先级权重 High - 高保留 Medium - 中等保留 Low - 低保留 当Cookie达存储上限时低保留权重会被优先清除"Medium"
ctxNextjs.GetServerSidePropsContextnextjs 服务端 cookie 获取及设置undefined

覆写 IMiniCookieData 获得自定义 TS 类型提示(可选)

// 覆写 IMiniCookieData 类型接口已获得类型提示
// 例如: 在 type/xxx.d.ts | global.d.ts 中定义 IMiniCookieData 类型接口
declare namespace MiniCookie {
  interface IMiniCookieData {
    name:string
    age:number
  }
}
// 将 types/xxx.d.ts 加入到 tsconfig.json includes 中即可获得自定义类型提示功能咯
1.0.3

8 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

10 months ago

0.0.1-alpha.5

10 months ago

0.0.1-alpha.4

10 months ago

0.0.1-alpha.3

10 months ago

0.0.1-alpha.2

10 months ago

0.0.1-alpha.1

10 months ago