0.0.1 • Published 8 months ago

@samual/cookie v0.0.1

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