0.0.45 • Published 2 months ago

@hattip/response v0.0.45

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

@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.

// 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.

// 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.

// 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.

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.

0.0.45

2 months ago

0.0.44

2 months ago

0.0.43

3 months ago

0.0.42

3 months ago

0.0.41

4 months ago

0.0.40

4 months ago

0.0.39

4 months ago

0.0.38

4 months ago

0.0.37

5 months ago

0.0.36

5 months ago

0.0.35-canary.2

10 months ago

0.0.35-canary.7

9 months ago

0.0.35-canary

10 months ago

0.0.35

8 months ago

0.0.34

12 months ago

0.0.33

1 year ago

0.0.30

1 year ago

0.0.31

1 year ago

0.0.32

1 year ago

0.0.28

1 year ago

0.0.29

1 year ago

0.0.21

2 years ago

0.0.22

2 years ago

0.0.23

1 year ago

0.0.24

1 year ago

0.0.25

1 year ago

0.0.26

1 year ago

0.0.27

1 year ago

0.0.20

2 years ago

0.0.18

2 years ago

0.0.19

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago