0.0.3 • Published 8 months ago

@samual/cookie v0.0.3

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

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.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