# @routup/cookie

> Cookie plugin for routup.

Latest version **4.0.0** (published 2026-05-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install @routup/cookie
pnpm add @routup/cookie
yarn add @routup/cookie
bun add @routup/cookie
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.0.0 |
| Published | 2026-05-20 |
| First published | 2022-11-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 15.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Peter Placzek |
| Maintainers | tada5hi |
| Keywords | cookie, cookie-serialize, cookie-parse, api, rest, http, router, api-router, route, routing |

## Links

- npm: https://www.npmjs.com/package/@routup/cookie
- Repository: https://github.com/routup/plugins
- Homepage: https://github.com/routup/plugins#readme
- Issues: https://github.com/routup/plugins/issues
- npm.io page: https://npm.io/package/@routup/cookie

## Dependencies (1)

- [cookie-es](https://npm.io/package/cookie-es.md) ^3.1.1

## Recent versions

- 4.0.0 (latest) — 2026-05-20
- 3.2.0 — 2026-05-12
- 3.1.0 — 2026-05-06
- 3.0.0 — 2026-05-05
- 2.4.3 — 2025-11-26
- 2.4.2 — 2025-06-25
- 2.4.1 — 2024-09-15
- 2.4.0 — 2024-06-29
- 2.3.1 — 2024-04-04
- 2.3.0 — 2023-11-21
- 2.2.0 — 2023-11-20
- 2.1.0 — 2023-10-22
- 2.0.0 — 2023-10-04
- 2.0.0-alpha.3 — 2023-10-04
- 2.0.0-alpha.0 — 2023-09-30
- … 36 more at https://npm.io/package/@routup/cookie/versions

## README

# @routup/cookie

[![npm version](https://badge.fury.io/js/@routup%2Fcookie.svg)](https://badge.fury.io/js/@routup%2Fcookie)
[![main](https://github.com/routup/plugins/actions/workflows/main.yml/badge.svg)](https://github.com/routup/plugins/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/routup/plugins/branch/master/graph/badge.svg)](https://codecov.io/gh/routup/plugins)
[![Known Vulnerabilities](https://snyk.io/test/github/routup/plugins/badge.svg)](https://snyk.io/test/github/routup/plugins)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)

This is a plugin for reading and parsing request cookies, as well serializing cookies for the
response.

**Table of Contents**

- [Installation](#installation)
- [Documentation](#documentation)
- [Usage](#usage)
- [Options](#options)
- [Helpers](#helpers)
  - [setRequestCookies](#setrequestcookies)
  - [useRequestCookies](#userequestcookies)
  - [useRequestCookie](#userequestcookie)
  - [setResponseCookie](#setresponsecookie)
  - [unsetResponseCookie](#unsetresponsecookie)
- [License](#license)

## Installation

```bash
npm install @routup/cookie --save
```

## Documentation

To read the docs, visit [https://routup.net](https://routup.net)

## Usage

It is important to invoke the request middleware,
to parse the cookies of the request header.

```typescript
import {
    App,
    defineCoreHandler,
    serve,
} from 'routup';
import {
    cookie,
    useRequestCookie,
    useRequestCookies,
} from '@routup/cookie';

const router = new App();

router.use(cookie());

router.get('/', defineCoreHandler((event) => {
    const cookies = useRequestCookies(event);
    console.log(cookies);
    // { key: value, ... }
    
    const value = useRequestCookie(event, 'key');
    // value

    return value;
}));

serve(router, { port: 3000 });
```

## Options

### `parse`

Customize the parse behaviour.

- Type: [ParseOptions](#parseoptions)
- Default: `undefined`

## Types

#### `ParseOptions`

```typescript
export type ParseOptions = {
    decode?(value: string): string;
}
```

## Helpers

### `setRequestCookies`

This function sets the parsed request cookies for the current request.

```typescript
declare function setRequestCookies(
    event: IAppEvent,
    key: string,
    value: unknown
) : void;

declare function setRequestCookies(
    event: IAppEvent,
    record: Record<string, any>
) : void;
```

### `useRequestCookies`

This function returns the parsed request cookies.

```typescript
declare function useRequestCookies(
    event: IAppEvent,
) : Record<string, string>;
```

### `useRequestCookie`

This function returns a **single** parsed request cookie.

```typescript
declare function useRequestCookie(
    event: IAppEvent,
    name: string
) : string | undefined;
```

### `setResponseCookie`

This function sets a cookie on the response.

```typescript
declare function setResponseCookie(
    event: IAppEvent,
    name: string,
    value: string,
    options?: SerializeOptions
) : void;
```

### `unsetResponseCookie`

This function removes a cookie by setting its `maxAge` to `0`.

```typescript
declare function unsetResponseCookie(
    event: IAppEvent,
    name: string,
    options?: SerializeOptions
) : void;
```

## License

Made with 💚

Published under [MIT License](./LICENSE).

---
_Source: https://npm.io/package/@routup/cookie · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
