Skip to content

Commit e9d9f8b

Browse files
committed
feat: add request-cookie package to handle cookie parsing in requests
1 parent 60c319a commit e9d9f8b

File tree

5 files changed

+69
-0
lines changed

5 files changed

+69
-0
lines changed

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"@volar/typescript": "^2.4.10",
6262
"babel-dead-code-elimination": "^1.0.8",
6363
"base-x": "^5.0.0",
64+
"cookie": "^1.0.2",
6465
"cosmiconfig": "^9.0.0",
6566
"del-cli": "^6.0.0",
6667
"depcheck": "^1.4.7",

packages/request-cookie/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# request-cookie
2+
3+
request-cookie
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"name": "@mo36924/request-cookie",
3+
"type": "module",
4+
"version": "5.6.11",
5+
"description": "request-cookie",
6+
"author": "mo36924",
7+
"license": "MIT",
8+
"homepage": "https://github.com/mo36924/packages#readme",
9+
"repository": {
10+
"type": "git",
11+
"url": "git+https://github.com/mo36924/packages.git",
12+
"directory": "packages/request-cookie"
13+
},
14+
"bugs": {
15+
"url": "https://github.com/mo36924/packages/issues"
16+
},
17+
"keywords": [],
18+
"exports": {
19+
".": {
20+
"types": "./dist/index.d.ts",
21+
"import": "./dist/index.js",
22+
"require": "./dist/index.cjs",
23+
"default": "./dist/index.js"
24+
}
25+
},
26+
"main": "./dist/index.js",
27+
"module": "./dist/index.js",
28+
"types": "./dist/index.d.ts",
29+
"files": [
30+
"dist"
31+
],
32+
"publishConfig": {
33+
"access": "public"
34+
},
35+
"dependencies": {
36+
"cookie": "^1.0.2"
37+
}
38+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { parse } from "cookie";
2+
3+
const cookieSymbol = Symbol("cookie");
4+
5+
export const getRequestCookies = <
6+
T extends Record<string, string | undefined> = Record<string, string | undefined>,
7+
>(request: {
8+
headers: Headers;
9+
[cookieSymbol]?: T;
10+
}): T => {
11+
let cookies = request[cookieSymbol];
12+
13+
if (!cookies) {
14+
const cookie = request.headers.get("cookie");
15+
16+
if (cookie) {
17+
cookies = parse(cookie) as T;
18+
} else {
19+
cookies = {} as T;
20+
}
21+
22+
request[cookieSymbol] = cookies;
23+
}
24+
25+
return cookies;
26+
};

0 commit comments

Comments
 (0)