0.0.1 • Published 8 months ago
@samual/cookie v0.0.1
Cookie
Set and get cookies with optional type validation with a Valibot schema.
Requires Node.js 18.19.0 or later.
Install
npm install @samual/cookie
Usage
Non Validated Cookies
In the Client
import { parseCookies, setCookie, deleteCookie } from "@samual/cookie"
// parse cookies
const cookies = parseCookies(document.cookie)
// get a cookie
console.log(cookies.get("foo")) // "bar"
// set a cookie
document.cookie = setCookie("foo", "baz")
// delete a cookie
document.cookie = deleteCookie("foo")
On the Server
import { parseCookies, setCookie, deleteCookie } from "@samual/cookie"
// ...
// in request handling code:
// parse cookies
const cookies = parseCookies(request.headers.get("cookie"))
// get a cookie
console.log(cookies.get("foo")) // "bar"
// set a cookie
response.headers.set("set-cookie", setCookie("foo", "baz"))
// delete a cookie
response.headers.set("set-cookie", deleteCookie("foo"))
Validated Cookies
In the Client
import { parseCookies } from "@samual/cookie"
import { getCookie, setCookie, deleteCookie } from "@samual/cookie/typed"
// set up cookie name and schema
const MyCookie = makeCookieOptions({ name: "<unique name>", schema: v.object({ foo: v.string() }) })
// parse cookies
const cookies = parseCookies(document.cookie)
// get a cookie
console.log(getCookie(cookies, MyCookie)) // { foo: "bar" }
// set a cookie
document.cookie = setCookie(MyCookie, { foo: "baz" })
// delete a cookie
document.cookie = deleteCookie(MyCookie)
On the Server
import { parseCookies } from "@samual/cookie"
import { getCookie, setCookie, deleteCookie } from "@samual/cookie/typed"
// set up cookie name and schema
const MyCookie = makeCookieOptions({ name: "<unique name>", schema: v.object({ foo: v.string() }) })
// ...
// in request handling code:
// parse cookies
const cookies = parseCookies(request.headers.get("cookie"))
// get a cookie
console.log(getCookie(cookies, MyCookie)) // { foo: "bar" }
// set a cookie
response.headers.set("set-cookie", setCookie(MyCookie, { foo: "baz" }))
// delete a cookie
response.headers.set("set-cookie", deleteCookie(MyCookie))
0.0.2-7aed33b
8 months ago
0.0.2-4de40cf
8 months ago
0.0.2-a83adbf
8 months ago
0.0.2-1bef5b1
8 months ago
0.0.2-76ad9c4
9 months ago
0.0.2-5cfd14e
9 months ago
0.0.2-dead13c
9 months ago
0.0.2-d15beae
10 months ago
0.0.2-61f7f02
10 months ago
0.0.2-4155ad1
10 months ago
0.0.2-1b64cde
11 months ago
0.0.2-af2a9c5
11 months ago
0.0.2-b8b0e94
1 year ago
0.0.2-130841
10 months ago
0.0.2-0253a20
1 year ago
0.0.2-1a90fa7
10 months ago
0.0.2-ba9e002
1 year ago
0.0.2-0d19918
1 year ago
0.0.2-cd368be
1 year ago
0.0.2-fadcf7e
1 year ago
0.1.0-1ee3f50
1 year ago
0.1.0-797dff1
1 year ago
0.1.0-93dd2e0
1 year ago
0.0.1
1 year ago
0.1.0-4966036
1 year ago
0.1.0-7f97161
1 year ago
0.1.0-fe5e692
1 year ago
0.1.0-ef9f477
1 year ago
0.1.0-1111ec9
1 year ago
0.1.0-ce30518
1 year ago
0.1.0-3d4d830
1 year ago
0.1.0-6494039
1 year ago
0.1.0-a43f1b7
1 year ago
0.0.0
1 year ago