rsnext/packages/next/server/web
Kiko Beats b78c28f7a0
feat: better cookies API for Edge Functions (#36478)
This PR introduces a more predictable API to manipulate cookies in an Edge Function context.

```js
const response = new NextResponse()

// set a cookie
response.cookies.set('foo, 'bar') // => set-cookie: 'foo=bar; Path=/'`

// set another cookie
response.cookies.set('fooz, 'barz') // => set-cookie: 'foo=bar; Path=/, fooz=barz; Path=/'`

// delete a cookie means mark it as expired
response.cookies.delete('foo') // => set-cookie: 'foo=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT, fooz=barz; Path=/'`

// clear all cookies means mark all of them as expired
response.cookies.clear() // => set-cookie: 'fooz=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT, foo=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT'`
``` 

This new cookies API uses [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) interface, and it's available for `NextRequest` and `NextResponse`.

Additionally, you can pass a specific cookies option as a third argument in `set` method:

```js
response.cookies.set('foo', 'bar', {
  path: '/',
  maxAge: 60 * 60 * 24 * 7,
  httpOnly: true,
  sameSite: 'strict',
  domain: 'example.com'
}
```

**Note**: `maxAge` it's in seconds rather than milliseconds.

Any cookie manipulation will be reflected over the `set-cookie` header, transparently.

closes #31719
2022-05-09 09:50:32 +00:00
..
sandbox Refactor Page Paths utils and Middleware Plugin (#36576) 2022-04-30 11:19:27 +00:00
spec-compliant update NextResponse default redirect status to 307 to match docs (#33505) 2022-02-01 16:45:54 -06:00
spec-extension feat: better cookies API for Edge Functions (#36478) 2022-05-09 09:50:32 +00:00
adapter.ts Allow reading request bodies in middlewares (#34294) (#34519) 2022-02-18 19:43:43 +00:00
error.ts Improve deprecation errors for new middleware API (#30316) 2021-10-26 17:03:39 +02:00
form-data.ts Implement Middleware RFC (#30081) 2021-10-20 17:52:11 +00:00
is.ts Implement Middleware RFC (#30081) 2021-10-20 17:52:11 +00:00
next-url.ts fix: do not add locale prefix to api route on NextURL (#36118) 2022-04-13 15:30:03 +00:00
types.ts Allow reading request bodies in middlewares (#34294) (#34519) 2022-02-18 19:43:43 +00:00
utils.ts Add support for tsconfig moduleResolution node | node12 | nodenext (#36189) 2022-04-15 17:09:12 +00:00