Cookies

NPM
v0.0.1

#Installation

npm install @solid-primitives/cookies
yarn add @solid-primitives/cookies
pnpm add @solid-primitives/cookies

#Readme

A set of primitives for handling cookies in solid

  • createServerCookie - Provides a getter and setter for a reactive cookie, which works isomorphically.
  • createUserTheme - Creates a Server Cookie providing a type safe way to store a theme and access it on the server or client.
  • getCookiesString - A primitive that allows for the cookie string to be accessed isomorphically on the client, or on the server

#How to use it

#createServerCookie

A primitive for creating a cookie that can be accessed isomorphically on the client, or the server.

import { createServerCookie } from "@solid-primitives/cookies";

const [cookie, setCookie] = createServerCookie("cookieName");

cookie(); // => string | undefined

#Custom serialization

Custom cookie serializers and deserializers can also be implemented

import { createServerCookie } from "@solid-primitives/cookies";

const [serverCookie, setServerCookie] = createServerCookie("coolCookie", {
  deserialize: str => (str ? str.split(" ") : []), // Deserializes cookie into a string[]
  serialize: val => (val ? val.join(" ") : ""), // serializes the value back into a string
});

serverCookie(); // => string[]

#createUserTheme

Composes createServerCookie to provide a type safe way to store a theme and access it on the server or client.

import { createUserTheme } from "@solid-primitives/cookies";

const [theme, setTheme] = createUserTheme("cookieName");

theme(); // => "light" | "dark" | undefined

// with default value
const [theme, setTheme] = createUserTheme("cookieName", {
  defaultValue: "light",
});

theme(); // => "light" | "dark"

#getCookiesString

A primitive that allows for the cookie string to be accessed isomorphically on the client, or on the server. Uses getRequestEvent on the server and document.cookie on the client.

import { getCookiesString, parseCookie } from "@solid-primitives/cookies";

const string = getCookiesString();
const cookie = parseCookie(string, "cookie_name");

#Examples

PRs welcome :)

#Demo

Live Site

You can view a demo of this primitive here: <CodeSandbox

#Changelog

See CHANGELOG.md