0.0.3 • Published 8 months ago
@samual/cookie v0.0.3
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/cookieUsage
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.3-69ba7a8
1 year ago
0.0.4-b3d2a4a
8 months ago
0.0.3-014a3bb
12 months ago
0.0.2-c7d6b6f
1 year ago
0.0.3-2b14c93
1 year ago
0.0.2-7cd387c
1 year ago
0.0.4-91650c6
8 months ago
0.0.3-6472e04
1 year ago
0.0.3-ebf1e28
12 months ago
0.0.4-c9eaf46
8 months ago
0.0.3-28ad86c
12 months ago
0.0.3-86dc7e6
1 year ago
0.0.4-4ec3335
10 months ago
0.0.4-c910940
11 months ago
0.0.2-0cd51e5
1 year ago
0.0.4-e01c650
12 months ago
0.0.3-1423b0b
1 year ago
0.0.4-01f145b
8 months ago
0.0.4-38c7fc3
8 months ago
0.0.3
12 months ago
0.0.2
1 year ago
0.0.2-7aed33b
1 year ago
0.0.2-4de40cf
1 year ago
0.0.2-a83adbf
1 year ago
0.0.2-1bef5b1
1 year ago
0.0.2-76ad9c4
1 year ago
0.0.2-5cfd14e
1 year ago
0.0.2-dead13c
1 year ago
0.0.2-d15beae
1 year ago
0.0.2-61f7f02
1 year ago
0.0.2-4155ad1
1 year ago
0.0.2-1b64cde
1 year ago
0.0.2-af2a9c5
1 year ago
0.0.2-b8b0e94
2 years ago
0.0.2-130841
1 year ago
0.0.2-0253a20
2 years ago
0.0.2-1a90fa7
1 year ago
0.0.2-ba9e002
2 years ago
0.0.2-0d19918
2 years ago
0.0.2-cd368be
2 years ago
0.0.2-fadcf7e
2 years ago
0.1.0-1ee3f50
2 years ago
0.1.0-797dff1
2 years ago
0.1.0-93dd2e0
2 years ago
0.0.1
2 years ago
0.1.0-4966036
2 years ago
0.1.0-7f97161
2 years ago
0.1.0-fe5e692
2 years ago
0.1.0-ef9f477
2 years ago
0.1.0-1111ec9
2 years ago
0.1.0-ce30518
2 years ago
0.1.0-3d4d830
2 years ago
0.1.0-6494039
2 years ago
0.1.0-a43f1b7
2 years ago
0.0.0
2 years ago