@carforyou/cookies
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

CAR FOR YOU cookies

semantic-release

Usage

npm install @carforyou/cookies

This package exports multiple functions needed for handling both server-side and client-side cookies in Next.js projects.

Setting server-side cookies

Server-side cookies can be created by passing { req, res } context to the withCookies function:

  import { withCookies } from "@carforyou/cookies"

  const { setCookie } = withCookies({ req, res }) // pass the ctx object
  setCookie(name, value, options)

By passing the context to withCookies, internally, in the setCookie function, an api call to api/cookies is made where our setServerSideCookie function is defined. setServerSideCookies sets the cookie and returns a status code of 201 if the cookie pattern matches to the one specified. Otherwise, it returns a 400 status code.

Configuring the api:

pages/api/cookies.ts

import { setServerSideCookie } from "@carforyou/cookies"

const cookieHandler = (req, res) => {
  try {
    setServerSideCookie(req, res)
  } catch (err) {
    import("~/lib/sentry").then((module) => {
      const Sentry = module.default
      Sentry.captureException("Failed persisting client-side cookie", {
        extra: { err },
      })
    })
  }
}

export default cookieHandler

Setting client-side cookies

Client-side cookies can be set by not passing a { req, res } context to the withCookies function.

import { withCookies } from "@carforyou/cookies"

const { getCookie, setCookie } = withCookies() // no arguments passed
setCookie(name, value, options)

Getting cookies

import { withCookies } from "@carforyou/cookies"

const { getCookie, setCookie } = withCookies() // pass req, res for serverside cookies
const myCookie = getCookie("cookieName")

Development

npm run build

You can link your local npm package to integrate it with any local project:

cd carforyou-cookies-pkg
npm run build

cd carforyou-listings-web
npm link ../carforyou-cookies-pkg

Release a new version

New versions are released on the ci using semantic-release as soon as you merge into master. Please make sure your merge commit message adheres to the corresponding conventions.

Readme

Keywords

none

Package Sidebar

Install

npm i @carforyou/cookies

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

42 kB

Total Files

51

Last publish

Collaborators

  • carforyou-engineering
  • lkappeler