Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including tiny-cookie with all npm packages installed. Try it out:

var tinyCookie = require("tiny-cookie")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

tiny-cookie v2.3.2

A tiny cookie manipulation plugin


Build Status codecov npm npm

English | 简体中文

A tiny cookie manipulation plugin for browser.

Upgrade from 1.x to 2.x: You can check the



npm install tiny-cookie


ES2015 (recommended)

// You can import all methods.
import * as Cookies from 'tiny-cookie'

// Or, you can import the methods as needed.
import { isEnabled, get, set, remove } from 'tiny-cookie'

// No alias required, just imports.
import { isCookieEnabled, getCookie, setCookie, removeCookie } from 'tiny-cookie'

The tiny-cookie will expose an object Cookie on the global scope. Also, it can be as a CommonJS/AMD module (recommended).



Alias: isCookieEnabled

Check if the cookie is enabled.


Alias: getCookie

Get the cookie value with decoding, using decodeURIComponent.


Alias: getRawCookie

Get the cookie value without decoding.


Alias: getAllCookies

Get all cookies with decoding, using decodeURIComponent.

set(key, value, options)

Alias: setCookie

Set a cookie with encoding the value, using encodeURIComponent. The options parameter is an object. And its property can be a valid cookie option, such as path(default: root path /), domain, expires/max-age, samesite or secure (Note: the secure flag will be set if it is an truthy value, such as true, or it will be not set). For example, you can set the expiration:

import { setCookie } from 'tiny-cookie';

const now = new Date;
now.setMonth(now.getMonth() + 1);

setCookie('foo', 'Foo', { expires: now.toGMTString() });

The expires property value can accept a Date object, a parsable date string (parsed by Date.parse()), an integer (unit: day) or a numeric string with a suffix character which specifies the time unit.

Unit suffixRepresentation
YOne year
MOne month
DOne day
hOne hour
mOne minute
sOne second


import { setCookie } from 'tiny-cookie';
const date = new Date;

date.setDate(date.getDate() + 21);

setCookie('dateObject', 'A date object', { expires: date });
setCookie('dateString', 'A parsable date string', { expires: date.toGMTString() });
setCookie('integer', 'Seven days later', { expires: 7 });
setCookie('stringSuffixY', 'One year later', { expires: '1Y' });
setCookie('stringSuffixM', 'One month later', { expires: '1M' });
setCookie('stringSuffixD', 'One day later', { expires: '1D' });
setCookie('stringSuffixh', 'One hour later', { expires: '1h' });
setCookie('stringSuffixm', 'Ten minutes later', { expires: '10m' });
setCookie('stringSuffixs', 'Thirty seconds later', { expires: '30s' });

setRaw(key, value, options)

Alias: setRawCookie

Set a cookie without encoding.

remove(key, options)

Alias: removeCookie

Remove a cookie on the current domain. If you want to remove the parent domain's cookie, you can use the options parameter, such as remove('cookieName', { domain: '' }).


  1. How to use JSON as the encoder/decoder?

You can write your cookie get and set methods with JSON support easily:

import { getCookie, setCookie } from 'tiny-cookie';

export const getJSON = (key) => getCookie(key, JSON.parse);
export const setJSON = (key, value, options) => setCookie(key, value, JSON.stringify, options);




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free