Skip to content

Commit bdde62b

Browse files
committed
🎉 release: 1.0.3
1 parent 023af44 commit bdde62b

File tree

5 files changed

+54
-51
lines changed

5 files changed

+54
-51
lines changed

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# 1.0.3 - 18 Mar 2024
2+
Improvement:
3+
- Reduce instruction for static resource
4+
5+
Bug fix:
6+
- Fix returning mulitple status code using `error` doesn't accept the response
7+
8+
# 1.0.2 - 18 Mar 2024
9+
Feature:
10+
- add `scoped` support for `derive` and `resolve`
11+
12+
Improvement:
13+
- Type soundness
14+
- type inference performance improvement
15+
116
# 1.0.1 - 18 Mar 2024
217
Improvement:
318
- `mapHandler` now check passthrough once instead of twice

example/a.ts

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
import { Elysia } from '../src'
1+
import { Elysia, error, t } from '../src'
22

3-
const child = new Elysia()
4-
// ? This is only in local
5-
.derive(() => ({
6-
hello: 'world'
7-
}))
8-
/**
9-
* ? Since hello is only in local
10-
* ? It might not be available in global
11-
*
12-
**/
13-
.mapDerive(({ hello }) => ({
14-
hello
15-
}))
16-
.get('/child', ({ hello }) => hello)
3+
const app = new Elysia({ precompile: true })
4+
.headers({
5+
a: 'hello'
6+
})
7+
.get('/', 'a')
8+
.listen(3000)
9+
10+
console.log(app.routes[0].composed?.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.2",
4+
"version": "1.0.3",
55
"author": {
66
"name": "saltyAom",
77
"url": "https://github.com/SaltyAom",

src/compose.ts

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,12 @@ export const composeHandler = ({
341341
}
342342
}): ComposedHandler => {
343343
const isHandleFn = typeof handler === 'function'
344-
if (!isHandleFn) handler = mapCompactResponse(handler)
344+
345+
if (!isHandleFn)
346+
handler = mapResponse(handler, {
347+
// @ts-expect-error private property
348+
headers: app.setHeaders ?? {}
349+
})
345350

346351
const hasErrorHandler =
347352
(app.config.forceErrorEncapsulation &&
@@ -387,11 +392,6 @@ export const composeHandler = ({
387392
hooks.type !== 'none' &&
388393
(inference.body || !!validator.body)
389394

390-
// @ts-expect-error private
391-
const defaultHeaders = app.setHeaders
392-
const hasDefaultHeaders =
393-
defaultHeaders && !!Object.keys(defaultHeaders).length
394-
395395
// ? defaultHeaders doesn't imply that user will use headers in handler
396396
const hasHeaders = inference.headers || validator.headers
397397
const hasCookie = inference.cookie || !!validator.cookie
@@ -556,11 +556,7 @@ export const composeHandler = ({
556556

557557
const hasTraceSet = traceInference.set
558558
const hasSet =
559-
inference.cookie ||
560-
inference.set ||
561-
hasTraceSet ||
562-
hasHeaders ||
563-
hasDefaultHeaders
559+
inference.cookie || inference.set || hasTraceSet || hasHeaders
564560

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

@@ -782,7 +778,7 @@ export const composeHandler = ({
782778
unit: hooks.transform.length
783779
})
784780

785-
fnLiteral += '\nlet transformed\n'
781+
if (hooks.transform.length) fnLiteral += '\nlet transformed\n'
786782

787783
for (let i = 0; i < hooks.transform.length; i++) {
788784
const transform = hooks.transform[i]
@@ -1166,9 +1162,8 @@ export const composeHandler = ({
11661162
fnLiteral += encodeCookie
11671163

11681164
if (handler instanceof Response) {
1169-
fnLiteral +=
1170-
inference.set || hasDefaultHeaders
1171-
? `if(
1165+
fnLiteral += inference.set
1166+
? `if(
11721167
isNotEmpty(c.set.headers) ||
11731168
c.set.status !== 200 ||
11741169
c.set.redirect ||
@@ -1177,7 +1172,7 @@ export const composeHandler = ({
11771172
return mapResponse(${handle}.clone(), c.set, c.request)
11781173
else
11791174
return ${handle}.clone()`
1180-
: `return ${handle}.clone()`
1175+
: `return ${handle}.clone()`
11811176

11821177
fnLiteral += '\n'
11831178
} else if (hasSet)
@@ -1215,9 +1210,8 @@ export const composeHandler = ({
12151210
report('afterHandle')()
12161211

12171212
if (handler instanceof Response) {
1218-
fnLiteral +=
1219-
inference.set || hasDefaultHeaders
1220-
? `if(
1213+
fnLiteral += inference.set
1214+
? `if(
12211215
isNotEmpty(c.set.headers) ||
12221216
c.set.status !== 200 ||
12231217
c.set.redirect ||
@@ -1226,7 +1220,7 @@ export const composeHandler = ({
12261220
return mapResponse(${handle}.clone(), c.set, c.request)
12271221
else
12281222
return ${handle}.clone()`
1229-
: `return ${handle}.clone()`
1223+
: `return ${handle}.clone()`
12301224

12311225
fnLiteral += '\n'
12321226
} else if (hasSet)

src/error.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ export const error = <
3030
const T = Code extends keyof InvertedStatusMap
3131
? InvertedStatusMap[Code]
3232
: Code,
33-
const Status extends number = Code extends keyof StatusMap
33+
const Status extends Code extends keyof StatusMap
3434
? StatusMap[Code]
35-
: Code
35+
: Code = Code extends keyof StatusMap ? StatusMap[Code] : Code
3636
>(
3737
code: Code,
3838
response?: T
@@ -127,7 +127,7 @@ export class ValidationError extends Error {
127127
: customError + ''
128128
} else if (isProduction) {
129129
message = JSON.stringify({
130-
type: "validation",
130+
type: 'validation',
131131
on: type,
132132
message: error?.message,
133133
found: value
@@ -140,22 +140,22 @@ export class ValidationError extends Error {
140140
? [...validator.Errors(value)]
141141
: [...Value.Errors(validator, value)]
142142

143-
let expected
144-
145-
try {
146-
expected = Value.Create(schema)
147-
} catch (error) {
148-
expected = {
149-
type: 'Could not create expected value',
150-
// @ts-expect-error
151-
message: error?.message,
152-
error
153-
}
143+
let expected
144+
145+
try {
146+
expected = Value.Create(schema)
147+
} catch (error) {
148+
expected = {
149+
type: 'Could not create expected value',
150+
// @ts-expect-error
151+
message: error?.message,
152+
error
154153
}
154+
}
155155

156156
message = JSON.stringify(
157157
{
158-
type: "validation",
158+
type: 'validation',
159159
on: type,
160160
property: accessor,
161161
message: error?.message,

0 commit comments

Comments
 (0)