Skip to content

Commit a0e907b

Browse files
committed
🔧 fix: undefined cookie on default headers
1 parent f26cd19 commit a0e907b

File tree

5 files changed

+22
-66
lines changed

5 files changed

+22
-66
lines changed

example/a.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { Elysia, t } from '../src'
2+
import { cors } from '../../cors/src'
23

3-
export const app = new Elysia()
4-
.get('', () => 'Level 2')
5-
.get(
6-
'/:id',
7-
({ params: { id } }) => `You are in the identified route! ${id}`
8-
)
4+
const app = new Elysia({ precompile: true })
5+
.post('/', ({ body, cookie: { session } }) => {
6+
session!.value = 'hi'
97

10-
type Res = typeof app._routes
8+
return body
9+
})
10+
.listen(3000)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "elysia",
33
"description": "Ergonomic Framework for Human",
4-
"version": "1.0.0-rc.11",
4+
"version": "1.0.0-rc.13",
55
"author": {
66
"name": "saltyAom",
77
"url": "https://github.com/SaltyAom",

src/compose.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -381,11 +381,11 @@ export const composeHandler = ({
381381
hooks.type !== 'none' &&
382382
(inference.body || !!validator.body)
383383

384-
// @ts-ignore private
385-
const setHeaders = app.setHeaders
384+
// @ts-expect-error private
385+
const defaultHeaders = app.setHeaders
386386

387+
// ? defaultHeaders doesn't imply that user will use headers in handler
387388
const hasHeaders = inference.headers || validator.headers
388-
389389
const hasCookie = inference.cookie || !!validator.cookie
390390

391391
// @ts-ignore private property
@@ -488,7 +488,7 @@ export const composeHandler = ({
488488
}`
489489
: 'undefined'
490490

491-
if (hasHeaders || (setHeaders && !!Object.keys(setHeaders).length))
491+
if (hasHeaders)
492492
fnLiteral += `\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${options})\n`
493493
else
494494
fnLiteral += `\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${options})\n`
@@ -552,7 +552,7 @@ export const composeHandler = ({
552552
inference.set ||
553553
hasTraceSet ||
554554
hasHeaders ||
555-
(setHeaders && !!Object.keys(setHeaders).length)
555+
(defaultHeaders && !!Object.keys(defaultHeaders).length)
556556

557557
if (hasTrace) fnLiteral += '\nconst id = c.$$requestId\n'
558558

@@ -1354,6 +1354,9 @@ export const composeGeneralHandler = (
13541354
let decoratorsLiteral = ''
13551355
let fnLiteral = ''
13561356

1357+
// @ts-expect-error private
1358+
const defaultHeaders = app.setHeaders
1359+
13571360
// @ts-ignore
13581361
for (const key of Object.keys(app.singleton.decorator))
13591362
decoratorsLiteral += `,${key}: app.singleton.decorator.${key}`
@@ -1365,7 +1368,7 @@ export const composeGeneralHandler = (
13651368
const route = router.find(request.method, path) ${
13661369
router.http.root.ALL ? '?? router.find("ALL", path)' : ''
13671370
}
1368-
1371+
13691372
if (route === null)
13701373
return ${
13711374
app.event.error.length
@@ -1378,8 +1381,7 @@ export const composeGeneralHandler = (
13781381
: `error404.clone()`
13791382
}
13801383
1381-
ctx.params = route.params
1382-
`
1384+
ctx.params = route.params\n`
13831385

13841386
const shouldPrecompile =
13851387
app.config.precompile === true ||
@@ -1457,8 +1459,7 @@ export const composeGeneralHandler = (
14571459
store,
14581460
set: {
14591461
headers: ${
1460-
// @ts-ignore
1461-
Object.keys(app.setHeaders ?? {}).length
1462+
Object.keys(defaultHeaders ?? {}).length
14621463
? 'Object.assign({}, app.setHeaders)'
14631464
: '{}'
14641465
},
@@ -1529,8 +1530,7 @@ export const composeGeneralHandler = (
15291530
path,
15301531
set: {
15311532
headers: ${
1532-
// @ts-ignore
1533-
Object.keys(app.setHeaders ?? {}).length
1533+
Object.keys(defaultHeaders ?? {}).length
15341534
? 'Object.assign({}, app.setHeaders)'
15351535
: '{}'
15361536
},

src/context.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type { StatusMap, InvertedStatusMap } from './utils'
22
import type { Cookie, ElysiaCookie } from './cookies'
33

4+
import { error, type ELYSIA_RESPONSE } from './error'
45
import type {
56
RouteSchema,
67
Prettify,
78
GetPathParameter,
89
SingletonBase
910
} from './types'
10-
import { error, type ELYSIA_RESPONSE, inlineError } from './error'
1111

1212
type InvertedStatusMapKey = keyof InvertedStatusMap
1313

@@ -95,7 +95,7 @@ export type Context<
9595
}
9696
}
9797
: {
98-
error: typeof inlineError
98+
error: typeof error
9999
}) &
100100
Singleton['decorator'] &
101101
Singleton['derive'] &

src/error.ts

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,6 @@ export type ElysiaErrors =
2525
| ValidationError
2626
| InvalidCookieSignature
2727

28-
/**
29-
* @deprecated
30-
* Use inline error instead
31-
*
32-
* Inline error can provide auto-completion
33-
* and type checking based on route schema
34-
*
35-
* @example
36-
* ```typescript
37-
* new Elysia()
38-
* .get('/', ({ error }) => error('418', ''))
39-
* ```
40-
*/
4128
export const error = <
4229
const Code extends number | keyof StatusMap,
4330
const T = Code extends keyof InvertedStatusMap
@@ -68,37 +55,6 @@ export const error = <
6855
_type: undefined as any
6956
} as const)
7057

71-
export const inlineError = <
72-
const Code extends number | keyof StatusMap,
73-
const T = Code extends keyof InvertedStatusMap
74-
? InvertedStatusMap[Code]
75-
: Code,
76-
Status extends number = Code extends keyof StatusMap
77-
? StatusMap[Code]
78-
: Code
79-
>(
80-
code: Code,
81-
response?: T
82-
): {
83-
[ELYSIA_RESPONSE]: Status
84-
response: T
85-
_type: {
86-
[ERROR_CODE in Status]: T
87-
}
88-
// eslint-disable-next-line sonarjs/no-identical-functions
89-
} =>
90-
({
91-
// @ts-expect-error
92-
[ELYSIA_RESPONSE]: StatusMap[code] ?? code,
93-
response:
94-
response ??
95-
(code in StatusMap
96-
? // @ts-ignore
97-
StatusMap[code]
98-
: code),
99-
_type: undefined as any
100-
} as const)
101-
10258
export class InternalServerError extends Error {
10359
code = 'INTERNAL_SERVER_ERROR'
10460
status = 500

0 commit comments

Comments
 (0)