Socket
Book a DemoInstallSign in
Socket

@kiwicom/cookies

Package Overview
Dependencies
Maintainers
6
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kiwicom/cookies

Finally a proper cookie management system. :cookie:

0.6.1
latest
npmnpm
Version published
Weekly downloads
20
233.33%
Maintainers
6
Weekly downloads
 
Created
Source

Cookies

Finally a proper cookie management system. :cookie:

yarn add @kiwicom/cookies

API

The API handles:

  • managing cookies
  • managing local storage
  • managing React context
  • managing 3rd party scripts
  • generating documentation

Cookies

import { Cookie, Settings, save, load, remove } from "@kiwicom/cookies";

Cookie

A TypeScript enum that contains all cookie keys. Use it when manipulating cookies.

Settings

A TypeScript / Flow type with the following keys:

  • analytics: boolean;
  • marketing: boolean;

save(key: Cookie, value: string, opts?: Options) => void

The Options object is passed to js-cookie and has these attributes:

  • domain: string
  • path: string
  • secure: boolean

Saves a cookie. Expiration is set automatically.

load(key: Cookie) => string | null

Loads a cookie.

remove(key: Cookie, opts?: Options) => void

The Options object is passed to js-cookie and has these attributes:

  • domain: string
  • path: string
  • secure: boolean

Removes a cookie.

Local storage

TODO

React context

import { Agreed, CookiesProvider, useCookies } from "@kiwicom/cookies";

Agreed

A TypeScript enum with values TRUE or FALSE that signify if consent was agreed to.

CookiesProvider

A React context provider. Props:

  • agreedInitial?: Agreed | null used for initial server-side rendering consistency

The context has the following attributes:

  • agreed: Agreed | null
  • settings: Settings
  • handleAgree(agreed: true | false) => void
  • handleChange(settings: Settings) => void

Call handleAgree when the user consents / revokes consent. Does not change settings on agreeing, so call in conjunction with handleChange.

Call handleChange when user changes his cookie preferences.

useCookies

A utility hook that retrieves the context value.

3rd party scripts

Make scripts loadable via HTTP requests, then create <script /> tags with attributes:

  • src pointing to the script's URL
  • type of "text/plain"
  • data-cookiescript with value of "necessary" | "analytics" | "marketing"

The scripts will be loaded and executed on demand, based on the user's cookie settings.

Documentation

Load the @kiwicom/cookies/cookies.json file for a list of objects with the following signature:

type Cookie = {
  name: string;
  category: string;
  type: "cookie"; // for now
  description: string;
};

License

MIT

FAQs

Package last updated on 19 Sep 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.