# @hattip/response

> Response helpers for Hattip

Latest version **0.0.49** (published 2024-11-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install @hattip/response
pnpm add @hattip/response
yarn add @hattip/response
bun add @hattip/response
```

## Health

**Score 40/100 (D)** — status: stable.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 0.0.49 |
| Published | 2024-11-02 |
| First published | 2022-07-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 10 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1379 |
| Author | Fatih Aygün |
| Maintainers | cyco130 |

## Links

- npm: https://www.npmjs.com/package/@hattip/response
- Repository: https://github.com/hattipjs/hattip
- Homepage: https://github.com/hattipjs/hattip#readme
- Issues: https://github.com/hattipjs/hattip/issues
- npm.io page: https://npm.io/package/@hattip/response

## Dependencies (1)

- [@hattip/core](https://npm.io/package/@hattip/core.md) 0.0.49

## Recent versions

- 0.0.49 (latest) — 2024-11-02
- 0.0.35-canary.7 (canary) — 2023-08-27
- 0.0.48 — 2024-09-08
- 0.0.47 — 2024-08-11
- 0.0.46 — 2024-06-18
- 0.0.45 — 2024-03-27
- 0.0.44 — 2024-03-09
- 0.0.43 — 2024-02-17
- 0.0.42 — 2024-02-07
- 0.0.41 — 2024-01-22
- 0.0.40 — 2024-01-17
- 0.0.39 — 2024-01-15
- 0.0.38 — 2024-01-03
- 0.0.37 — 2023-12-29
- 0.0.36 — 2023-12-29
- … 26 more at https://npm.io/package/@hattip/response/versions

## README

# `@hattip/response`

Response utilities for Hattip. This package exports three functions for creating several response types:

## `text`

Creates a response with the given text. The content type is set to `text/plain; charset=utf-8` unless explicitly specified.

```js
// Basic usage
text("Hello, world!");
// You can customize status and headers
text("Bad request", { status: 400 });
```

## `json`

Creates a response with the given JSON object. The content type is set to `application/json; charset=utf-8` unless explicitly specified.

```js
// Basic usage
json({ hello: "world" });
// You can customize status and headers
json({ error: "Nad request" }, { status: 400 });
```

## `html`

Creates a response with the given HTML string. The content type is set to `text/html; charset=utf-8` unless explicitly specified.

```js
// Basic usage
html("<h1>Hello, world!</h1>");
// You can customize status and headers
html("<h1>Bad request</h1>", { status: 400 });
```

## `serverSentEvents`

Creates a response that emits server-sent events.

```js
serverSentEvents({
  onOpen(sink) {
    // Use `sink` to send events
    sink.send({ type: "custom", data: "Hello, world!", id: "1" });
    // Short hand for sending a message
    sink.sendMessage("Hello, world!");
  },
  onClose() {
    // You can use this to clean up resources
    // No more events can be sent after this is called
  },
});
```

`serverSentEvents` is intentionally very low-level. It doesn't handle data serialization (it only accepts strings), or keep track of connections, event IDs, or the `Last-Event-ID` header. But it is very flexible and allows you to implement your own logic for a full pub/sub system.

`serverSentEvents` works on all adapters that support streaming responses but since it requires a long-running server, using it with edge runtimes is not very useful. It leaves Node (optionally with uWebSockets.js) and Deno as the only real options. In particular, Bun and AWS-based serverless offerings of Netlify and Vercel don't support streaming responses.

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