denoland / denoland/std

[http/cookie] Add support for adding "Cookie" header

Open
#3,326 4 comments 4 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3.6k
Forks
681
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**

I am trying to send a fetch request to a server from Deno and memorize cookies set by the server in the response.

The standard library is missing a function to assign a `Cookie` header to the `Headers` object. There are functions to read `Cookie` headers and read and assign `Set-Cookie` headers, but there is currently no way to set `Cookie` headers.

**Describe the solution you'd like**

A `setCookie(headers: Headers, cookie: Cookie)` method could set a `Cookie` header. There is one issue though, a method with this name already exists and it sets the `Set-Cookie` header.

There is a naming inconsistency in the cookie standard library:
- `getCookies()` - returns all `Cookie` headers
- `getSetCookies()` - returns all `Set-Cookie` headers
- `setCookie(...)` - currently sets a `Cookie` header, but should set the `Set-Cookie` header should the naming of functions be consistent.

**Describe alternatives you've considered**

I have tried to set the `Cookie` header directly, but it is not convenient at the moment, as there is no way to easily reuse the `Cookie` parsed object from the `getSetCookies()` method and use that as a value to set cookie in headers directly. It would be possible with the `toString` method, which is private to the `cookies.ts` module.

I'll be happy to send a PR once it is decided whether to implement this and how to solve the naming issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.