Skip to content

Commit 8b26925

Browse files
committed
🎉 release: 1.0.4
1 parent bdde62b commit 8b26925

File tree

5 files changed

+68
-15
lines changed

5 files changed

+68
-15
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 1.0.4 - 18 Mar 2024
2+
Improvement:
3+
- resolve, derive soundness
4+
15
# 1.0.3 - 18 Mar 2024
26
Improvement:
37
- Reduce instruction for static resource

example/a.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { Elysia, error, t } from '../src'
2+
import { req } from '../test/utils'
23

34
const app = new Elysia({ precompile: true })
4-
.headers({
5-
a: 'hello'
6-
})
7-
.get('/', 'a')
5+
.get('/', 'hi')
86
.listen(3000)
97

10-
console.log(app.routes[0].composed?.toString())
8+
console.log(app.fetch.toString())

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.3",
4+
"version": "1.0.4",
55
"author": {
66
"name": "saltyAom",
77
"url": "https://github.com/SaltyAom",

src/compose.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,11 @@ export const composeHandler = ({
392392
hooks.type !== 'none' &&
393393
(inference.body || !!validator.body)
394394

395+
// @ts-expect-error private
396+
const defaultHeaders = app.setHeaders
397+
const hasDefaultHeaders =
398+
defaultHeaders && !!Object.keys(defaultHeaders).length
399+
395400
// ? defaultHeaders doesn't imply that user will use headers in handler
396401
const hasHeaders = inference.headers || validator.headers
397402
const hasCookie = inference.cookie || !!validator.cookie
@@ -556,7 +561,11 @@ export const composeHandler = ({
556561

557562
const hasTraceSet = traceInference.set
558563
const hasSet =
559-
inference.cookie || inference.set || hasTraceSet || hasHeaders
564+
inference.cookie ||
565+
inference.set ||
566+
hasTraceSet ||
567+
hasHeaders ||
568+
(isHandleFn && hasDefaultHeaders)
560569

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

src/index.ts

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,13 @@ export default class Elysia<
134134
macro: {}
135135
},
136136
const out Routes extends RouteBase = {},
137+
// ? scoped
137138
const in out Ephemeral extends EphemeralType = {
138139
derive: {}
139140
resolve: {}
140141
schema: {}
141142
},
143+
// ? local
142144
const in out Volatile extends EphemeralType = {
143145
derive: {}
144146
resolve: {}
@@ -978,10 +980,30 @@ export default class Elysia<
978980
Metadata['schema'] &
979981
Ephemeral['schema'] &
980982
Volatile['schema'],
981-
Singleton & {
982-
derive: Ephemeral['derive'] & Volatile['derive']
983-
resolve: Ephemeral['resolve'] & Volatile['resolve']
984-
},
983+
Singleton &
984+
('global' extends Type
985+
? {
986+
derive: Partial<
987+
Ephemeral['derive'] & Volatile['derive']
988+
>
989+
resolve: Partial<
990+
Ephemeral['resolve'] &
991+
Volatile['resolve']
992+
>
993+
}
994+
: 'scoped' extends Type
995+
? {
996+
derive: Ephemeral['derive'] &
997+
Partial<Volatile['derive']>
998+
resolve: Ephemeral['resolve'] &
999+
Partial<Volatile['resolve']>
1000+
}
1001+
: {
1002+
derive: Ephemeral['derive'] &
1003+
Volatile['derive']
1004+
resolve: Ephemeral['resolve'] &
1005+
Volatile['resolve']
1006+
}),
9851007
BasePath
9861008
>
9871009
>
@@ -4619,10 +4641,30 @@ export default class Elysia<
46194641
Metadata['schema'] &
46204642
Ephemeral['schema'] &
46214643
Volatile['schema'],
4622-
Singleton & {
4623-
derive: Ephemeral['derive'] & Volatile['derive']
4624-
resolve: Ephemeral['resolve'] & Volatile['resolve']
4625-
},
4644+
Singleton &
4645+
('global' extends Type
4646+
? {
4647+
derive: Partial<
4648+
Ephemeral['derive'] & Volatile['derive']
4649+
>
4650+
resolve: Partial<
4651+
Ephemeral['resolve'] &
4652+
Volatile['resolve']
4653+
>
4654+
}
4655+
: 'scoped' extends Type
4656+
? {
4657+
derive: Ephemeral['derive'] &
4658+
Partial<Volatile['derive']>
4659+
resolve: Ephemeral['resolve'] &
4660+
Partial<Volatile['resolve']>
4661+
}
4662+
: {
4663+
derive: Ephemeral['derive'] &
4664+
Volatile['derive']
4665+
resolve: Ephemeral['resolve'] &
4666+
Volatile['resolve']
4667+
}),
46264668
BasePath
46274669
>
46284670
>

0 commit comments

Comments
 (0)