elysia 1.4.28 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +29 -0
- package/dist/_virtual/_rolldown/runtime.mjs +38 -0
- package/dist/adapter/bun/index.d.ts +7 -6
- package/dist/adapter/bun/index.js +219 -380
- package/dist/adapter/bun/index.mjs +217 -382
- package/dist/adapter/constants.d.ts +6 -0
- package/dist/adapter/constants.js +10 -0
- package/dist/adapter/constants.mjs +9 -0
- package/dist/adapter/default-headers.d.ts +4 -0
- package/dist/adapter/default-headers.js +7 -0
- package/dist/adapter/default-headers.mjs +5 -0
- package/dist/adapter/index.d.ts +8 -1
- package/dist/adapter/index.js +7 -14
- package/dist/adapter/index.mjs +5 -0
- package/dist/adapter/origin.d.ts +63 -0
- package/dist/adapter/origin.js +64 -0
- package/dist/adapter/origin.mjs +62 -0
- package/dist/adapter/response-ownership.d.ts +5 -0
- package/dist/adapter/response-ownership.js +13 -0
- package/dist/adapter/response-ownership.mjs +10 -0
- package/dist/adapter/skip-clone.d.ts +4 -0
- package/dist/adapter/skip-clone.js +7 -0
- package/dist/adapter/skip-clone.mjs +5 -0
- package/dist/adapter/types.d.ts +50 -125
- package/dist/adapter/types.js +1 -14
- package/dist/adapter/types.mjs +1 -0
- package/dist/adapter/utils.d.ts +47 -19
- package/dist/adapter/utils.js +561 -311
- package/dist/adapter/utils.mjs +551 -283
- package/dist/adapter/web-standard/handler.d.ts +11 -9
- package/dist/adapter/web-standard/handler.js +146 -415
- package/dist/adapter/web-standard/handler.mjs +144 -400
- package/dist/adapter/web-standard/index.d.ts +5 -2
- package/dist/adapter/web-standard/index.js +68 -161
- package/dist/adapter/web-standard/index.mjs +68 -146
- package/dist/adapter/web-standard/utils.d.ts +4 -0
- package/dist/adapter/web-standard/utils.js +153 -0
- package/dist/adapter/web-standard/utils.mjs +152 -0
- package/dist/base.d.ts +898 -0
- package/dist/base.js +1564 -0
- package/dist/base.mjs +1561 -0
- package/dist/compile/analysis-cache.d.ts +6 -0
- package/dist/compile/analysis-cache.js +12 -0
- package/dist/compile/analysis-cache.mjs +11 -0
- package/dist/compile/aot-capture.d.ts +24 -0
- package/dist/compile/aot-capture.js +376 -0
- package/dist/compile/aot-capture.mjs +365 -0
- package/dist/compile/aot-emit.d.ts +29 -0
- package/dist/compile/aot-emit.js +107 -0
- package/dist/compile/aot-emit.mjs +101 -0
- package/dist/compile/aot-reconstruct.d.ts +30 -0
- package/dist/compile/aot-reconstruct.js +156 -0
- package/dist/compile/aot-reconstruct.mjs +147 -0
- package/dist/compile/aot.d.ts +287 -0
- package/dist/compile/aot.js +220 -0
- package/dist/compile/aot.mjs +200 -0
- package/dist/compile/handler/descriptor.d.ts +77 -0
- package/dist/compile/handler/descriptor.js +199 -0
- package/dist/compile/handler/descriptor.mjs +194 -0
- package/dist/compile/handler/frozen-validator.d.ts +39 -0
- package/dist/compile/handler/frozen-validator.js +319 -0
- package/dist/compile/handler/frozen-validator.mjs +313 -0
- package/dist/compile/handler/index.d.ts +19 -0
- package/dist/compile/handler/index.js +379 -0
- package/dist/compile/handler/index.mjs +371 -0
- package/dist/compile/handler/jit.d.ts +43 -0
- package/dist/compile/handler/jit.js +536 -0
- package/dist/compile/handler/jit.mjs +532 -0
- package/dist/compile/handler/params.d.ts +28 -0
- package/dist/compile/handler/params.js +78 -0
- package/dist/compile/handler/params.mjs +76 -0
- package/dist/compile/handler/reconstruct.d.ts +12 -0
- package/dist/compile/handler/reconstruct.js +50 -0
- package/dist/compile/handler/reconstruct.mjs +49 -0
- package/dist/compile/handler/utils.d.ts +45 -0
- package/dist/compile/handler/utils.js +514 -0
- package/dist/compile/handler/utils.mjs +498 -0
- package/dist/compile/jit-probe.d.ts +15 -0
- package/dist/compile/jit-probe.js +28 -0
- package/dist/compile/jit-probe.mjs +26 -0
- package/dist/compile/lexer.d.ts +7 -0
- package/dist/compile/lexer.js +53 -0
- package/dist/compile/lexer.mjs +48 -0
- package/dist/compile/utils.d.ts +8 -0
- package/dist/compile/utils.js +23 -0
- package/dist/compile/utils.mjs +19 -0
- package/dist/compiled.d.ts +17 -0
- package/dist/compiled.js +20 -0
- package/dist/compiled.mjs +16 -0
- package/dist/constants.d.ts +137 -0
- package/dist/constants.js +96 -0
- package/dist/constants.mjs +88 -0
- package/dist/context.d.ts +86 -129
- package/dist/context.js +110 -13
- package/dist/context.mjs +108 -0
- package/dist/cookie/config.d.ts +31 -0
- package/dist/cookie/config.js +98 -0
- package/dist/cookie/config.mjs +95 -0
- package/dist/cookie/cookie.d.ts +26 -0
- package/dist/cookie/cookie.js +105 -0
- package/dist/cookie/cookie.mjs +104 -0
- package/dist/cookie/crypto.d.ts +20 -0
- package/dist/cookie/crypto.js +168 -0
- package/dist/cookie/crypto.mjs +151 -0
- package/dist/cookie/error.d.ts +17 -0
- package/dist/cookie/error.js +25 -0
- package/dist/cookie/error.mjs +24 -0
- package/dist/cookie/index.d.ts +7 -0
- package/dist/cookie/index.js +13 -0
- package/dist/cookie/index.mjs +7 -0
- package/dist/cookie/lib.d.ts +7 -0
- package/dist/cookie/lib.js +76 -0
- package/dist/cookie/lib.mjs +74 -0
- package/dist/cookie/serialize.d.ts +6 -0
- package/dist/cookie/serialize.js +32 -0
- package/dist/cookie/serialize.mjs +31 -0
- package/dist/cookie/types.d.ts +113 -0
- package/dist/cookie/types.js +1 -0
- package/dist/cookie/types.mjs +1 -0
- package/dist/cookie/utils.d.ts +25 -0
- package/dist/cookie/utils.js +182 -0
- package/dist/cookie/utils.mjs +171 -0
- package/dist/error.d.ts +226 -188
- package/dist/error.js +519 -357
- package/dist/error.mjs +503 -327
- package/dist/generation.d.ts +30 -0
- package/dist/generation.js +23 -0
- package/dist/generation.mjs +17 -0
- package/dist/handler/error.d.ts +7 -0
- package/dist/handler/error.js +105 -0
- package/dist/handler/error.mjs +104 -0
- package/dist/handler/fetch.d.ts +8 -0
- package/dist/handler/fetch.js +371 -0
- package/dist/handler/fetch.mjs +367 -0
- package/dist/handler/index.d.ts +2 -0
- package/dist/handler/index.js +5 -0
- package/dist/handler/index.mjs +3 -0
- package/dist/handler/utils.d.ts +15 -0
- package/dist/handler/utils.js +48 -0
- package/dist/handler/utils.mjs +42 -0
- package/dist/index.d.ts +23 -2198
- package/dist/index.js +62 -1948
- package/dist/index.mjs +20 -1986
- package/dist/memory.d.ts +4 -0
- package/dist/memory.js +17 -0
- package/dist/memory.mjs +16 -0
- package/dist/package.js +11 -0
- package/dist/package.mjs +5 -0
- package/dist/parse-query.d.ts +7 -9
- package/dist/parse-query.js +154 -164
- package/dist/parse-query.mjs +150 -133
- package/dist/plugin/aot/bun.d.ts +26 -0
- package/dist/plugin/aot/bun.js +35 -0
- package/dist/plugin/aot/bun.mjs +34 -0
- package/dist/plugin/aot/core.d.ts +291 -0
- package/dist/plugin/aot/core.js +505 -0
- package/dist/plugin/aot/core.mjs +481 -0
- package/dist/plugin/aot/esbuild.d.ts +28 -0
- package/dist/plugin/aot/esbuild.js +48 -0
- package/dist/plugin/aot/esbuild.mjs +46 -0
- package/dist/plugin/aot/hooks.d.ts +28 -0
- package/dist/plugin/aot/hooks.js +114 -0
- package/dist/plugin/aot/hooks.mjs +112 -0
- package/dist/plugin/aot/rspack-loader.d.ts +23 -0
- package/dist/plugin/aot/rspack-loader.js +44 -0
- package/dist/plugin/aot/rspack-loader.mjs +40 -0
- package/dist/plugin/aot/rspack.d.ts +23 -0
- package/dist/plugin/aot/rspack.js +85 -0
- package/dist/plugin/aot/rspack.mjs +82 -0
- package/dist/plugin/aot/source.d.ts +60 -0
- package/dist/plugin/aot/source.js +422 -0
- package/dist/plugin/aot/source.mjs +418 -0
- package/dist/plugin/aot/treeshake.d.ts +4 -0
- package/dist/plugin/aot/treeshake.js +95 -0
- package/dist/plugin/aot/treeshake.mjs +94 -0
- package/dist/plugin/aot/unplugin.d.ts +50 -0
- package/dist/plugin/aot/unplugin.js +64 -0
- package/dist/plugin/aot/unplugin.mjs +62 -0
- package/dist/plugin/aot/vite.d.ts +30 -0
- package/dist/plugin/aot/vite.js +34 -0
- package/dist/plugin/aot/vite.mjs +33 -0
- package/dist/plugin/aot/worker.d.ts +1 -0
- package/dist/plugin/aot/worker.js +28 -0
- package/dist/plugin/aot/worker.mjs +27 -0
- package/dist/plugin/auto-head.d.ts +6 -0
- package/dist/plugin/auto-head.js +38 -0
- package/dist/plugin/auto-head.mjs +36 -0
- package/dist/plugin/trace.d.ts +10 -0
- package/dist/plugin/trace.js +39 -0
- package/dist/plugin/trace.mjs +36 -0
- package/dist/plugin/websocket.d.ts +6 -0
- package/dist/plugin/websocket.js +61 -0
- package/dist/plugin/websocket.mjs +60 -0
- package/dist/route-table.d.ts +28 -0
- package/dist/route-table.js +64 -0
- package/dist/route-table.mjs +61 -0
- package/dist/schema-snapshot.d.ts +9 -0
- package/dist/schema-snapshot.js +271 -0
- package/dist/schema-snapshot.mjs +269 -0
- package/dist/sucrose.d.ts +28 -63
- package/dist/sucrose.js +814 -306
- package/dist/sucrose.mjs +805 -274
- package/dist/trace.d.ts +145 -130
- package/dist/trace.js +387 -135
- package/dist/trace.mjs +385 -113
- package/dist/type/bridge-live.d.ts +15 -0
- package/dist/type/bridge-live.js +39 -0
- package/dist/type/bridge-live.mjs +17 -0
- package/dist/type/bridge.d.ts +56 -0
- package/dist/type/bridge.js +180 -0
- package/dist/type/bridge.mjs +63 -0
- package/dist/type/coerce-plan.d.ts +38 -0
- package/dist/type/coerce-plan.js +107 -0
- package/dist/type/coerce-plan.mjs +98 -0
- package/dist/type/coerce.d.ts +43 -0
- package/dist/type/coerce.js +351 -0
- package/dist/type/coerce.mjs +339 -0
- package/dist/type/compat.d.ts +8 -0
- package/dist/type/compat.js +46 -0
- package/dist/type/compat.mjs +44 -0
- package/dist/type/constants.d.ts +25 -0
- package/dist/type/constants.js +36 -0
- package/dist/type/constants.mjs +32 -0
- package/dist/type/elysia/accelerate.d.ts +6 -0
- package/dist/type/elysia/accelerate.js +12 -0
- package/dist/type/elysia/accelerate.mjs +10 -0
- package/dist/type/elysia/array-buffer.d.ts +6 -0
- package/dist/type/elysia/array-buffer.js +27 -0
- package/dist/type/elysia/array-buffer.mjs +25 -0
- package/dist/type/elysia/array-string.d.ts +7 -0
- package/dist/type/elysia/array-string.js +28 -0
- package/dist/type/elysia/array-string.mjs +26 -0
- package/dist/type/elysia/array.d.ts +6 -0
- package/dist/type/elysia/array.js +32 -0
- package/dist/type/elysia/array.mjs +31 -0
- package/dist/type/elysia/boolean-string.d.ts +6 -0
- package/dist/type/elysia/boolean-string.js +24 -0
- package/dist/type/elysia/boolean-string.mjs +22 -0
- package/dist/type/elysia/boolean.d.ts +6 -0
- package/dist/type/elysia/boolean.js +20 -0
- package/dist/type/elysia/boolean.mjs +18 -0
- package/dist/type/elysia/cookie.d.ts +15 -0
- package/dist/type/elysia/cookie.js +51 -0
- package/dist/type/elysia/cookie.mjs +50 -0
- package/dist/type/elysia/date.d.ts +7 -0
- package/dist/type/elysia/date.js +98 -0
- package/dist/type/elysia/date.mjs +96 -0
- package/dist/type/elysia/file-type.d.ts +25 -0
- package/dist/type/elysia/file-type.js +81 -0
- package/dist/type/elysia/file-type.mjs +71 -0
- package/dist/type/elysia/file.d.ts +9 -0
- package/dist/type/elysia/file.js +64 -0
- package/dist/type/elysia/file.mjs +48 -0
- package/dist/type/elysia/files.d.ts +8 -0
- package/dist/type/elysia/files.js +45 -0
- package/dist/type/elysia/files.mjs +43 -0
- package/dist/type/elysia/form.d.ts +8 -0
- package/dist/type/elysia/form.js +17 -0
- package/dist/type/elysia/form.mjs +15 -0
- package/dist/type/elysia/integer-string.d.ts +7 -0
- package/dist/type/elysia/integer-string.js +40 -0
- package/dist/type/elysia/integer-string.mjs +38 -0
- package/dist/type/elysia/integer.d.ts +6 -0
- package/dist/type/elysia/integer.js +20 -0
- package/dist/type/elysia/integer.mjs +18 -0
- package/dist/type/elysia/intersect.d.ts +6 -0
- package/dist/type/elysia/intersect.js +20 -0
- package/dist/type/elysia/intersect.mjs +19 -0
- package/dist/type/elysia/maybe-empty.d.ts +7 -0
- package/dist/type/elysia/maybe-empty.js +21 -0
- package/dist/type/elysia/maybe-empty.mjs +19 -0
- package/dist/type/elysia/no-validate.d.ts +6 -0
- package/dist/type/elysia/no-validate.js +9 -0
- package/dist/type/elysia/no-validate.mjs +8 -0
- package/dist/type/elysia/nullable.d.ts +7 -0
- package/dist/type/elysia/nullable.js +15 -0
- package/dist/type/elysia/nullable.mjs +13 -0
- package/dist/type/elysia/number.d.ts +6 -0
- package/dist/type/elysia/number.js +20 -0
- package/dist/type/elysia/number.mjs +18 -0
- package/dist/type/elysia/numeric-enum.d.ts +11 -0
- package/dist/type/elysia/numeric-enum.js +26 -0
- package/dist/type/elysia/numeric-enum.mjs +24 -0
- package/dist/type/elysia/numeric.d.ts +7 -0
- package/dist/type/elysia/numeric.js +62 -0
- package/dist/type/elysia/numeric.mjs +60 -0
- package/dist/type/elysia/object-string.d.ts +7 -0
- package/dist/type/elysia/object-string.js +28 -0
- package/dist/type/elysia/object-string.mjs +26 -0
- package/dist/type/elysia/object.d.ts +6 -0
- package/dist/type/elysia/object.js +47 -0
- package/dist/type/elysia/object.mjs +46 -0
- package/dist/type/elysia/optional.d.ts +6 -0
- package/dist/type/elysia/optional.js +22 -0
- package/dist/type/elysia/optional.mjs +21 -0
- package/dist/type/elysia/string.d.ts +6 -0
- package/dist/type/elysia/string.js +43 -0
- package/dist/type/elysia/string.mjs +41 -0
- package/dist/type/elysia/uint8-array.d.ts +6 -0
- package/dist/type/elysia/uint8-array.js +27 -0
- package/dist/type/elysia/uint8-array.mjs +25 -0
- package/dist/type/elysia/union-enum.d.ts +8 -0
- package/dist/type/elysia/union-enum.js +31 -0
- package/dist/type/elysia/union-enum.mjs +29 -0
- package/dist/type/elysia/union.d.ts +6 -0
- package/dist/type/elysia/union.js +20 -0
- package/dist/type/elysia/union.mjs +19 -0
- package/dist/type/elysia/utils.d.ts +53 -0
- package/dist/type/elysia/utils.js +98 -0
- package/dist/type/elysia/utils.mjs +88 -0
- package/dist/type/exports.d.ts +36 -0
- package/dist/type/exports.js +68 -0
- package/dist/type/exports.mjs +36 -0
- package/dist/type/index.d.ts +13 -0
- package/dist/type/index.js +81 -0
- package/dist/type/index.mjs +68 -0
- package/dist/type/shared.d.ts +27 -0
- package/dist/type/shared.js +171 -0
- package/dist/type/shared.mjs +161 -0
- package/dist/type/types.d.ts +206 -0
- package/dist/type/types.js +1 -0
- package/dist/type/types.mjs +1 -0
- package/dist/type/utils.d.ts +7 -0
- package/dist/type/utils.js +43 -0
- package/dist/type/utils.mjs +41 -0
- package/dist/type/validator/clean-safe.d.ts +8 -0
- package/dist/type/validator/clean-safe.js +82 -0
- package/dist/type/validator/clean-safe.mjs +77 -0
- package/dist/type/validator/custom-error.d.ts +10 -0
- package/dist/type/validator/custom-error.js +191 -0
- package/dist/type/validator/custom-error.mjs +188 -0
- package/dist/type/validator/default-precompute.d.ts +26 -0
- package/dist/type/validator/default-precompute.js +432 -0
- package/dist/type/validator/default-precompute.mjs +421 -0
- package/dist/type/validator/exact-mirror.d.ts +7 -0
- package/dist/type/validator/exact-mirror.js +19 -0
- package/dist/type/validator/exact-mirror.mjs +15 -0
- package/dist/type/validator/frozen-check.d.ts +11 -0
- package/dist/type/validator/frozen-check.js +20 -0
- package/dist/type/validator/frozen-check.mjs +19 -0
- package/dist/type/validator/index.d.ts +32 -0
- package/dist/type/validator/index.js +657 -0
- package/dist/type/validator/index.mjs +651 -0
- package/dist/type/validator/string-codec-aot.d.ts +8 -0
- package/dist/type/validator/string-codec-aot.js +68 -0
- package/dist/type/validator/string-codec-aot.mjs +66 -0
- package/dist/type/validator/validator-cache.d.ts +26 -0
- package/dist/type/validator/validator-cache.js +247 -0
- package/dist/type/validator/validator-cache.mjs +242 -0
- package/dist/types.d.ts +938 -1235
- package/dist/types.js +1 -14
- package/dist/types.mjs +1 -0
- package/dist/universal/constants.d.ts +6 -0
- package/dist/universal/constants.js +19 -0
- package/dist/universal/constants.mjs +15 -0
- package/dist/universal/env.d.ts +5 -1
- package/dist/universal/env.js +12 -26
- package/dist/universal/env.mjs +10 -5
- package/dist/universal/file.d.ts +55 -86
- package/dist/universal/file.js +116 -157
- package/dist/universal/file.mjs +111 -132
- package/dist/universal/index.d.ts +5 -3
- package/dist/universal/index.js +8 -27
- package/dist/universal/index.mjs +4 -5
- package/dist/universal/is-production.d.ts +5 -0
- package/dist/universal/is-production.js +10 -0
- package/dist/universal/is-production.mjs +8 -0
- package/dist/universal/server.d.ts +318 -313
- package/dist/universal/server.js +1 -14
- package/dist/universal/server.mjs +1 -0
- package/dist/utils.d.ts +162 -191
- package/dist/utils.js +732 -693
- package/dist/utils.mjs +683 -631
- package/dist/validator/index.d.ts +63 -0
- package/dist/validator/index.js +299 -0
- package/dist/validator/index.mjs +296 -0
- package/dist/validator/route.d.ts +32 -0
- package/dist/validator/route.js +51 -0
- package/dist/validator/route.mjs +50 -0
- package/dist/ws/context.d.ts +49 -0
- package/dist/ws/context.js +152 -0
- package/dist/ws/context.mjs +150 -0
- package/dist/ws/index.d.ts +5 -77
- package/dist/ws/index.js +11 -180
- package/dist/ws/index.mjs +5 -157
- package/dist/ws/parser.d.ts +5 -0
- package/dist/ws/parser.js +69 -0
- package/dist/ws/parser.mjs +66 -0
- package/dist/ws/route.d.ts +16 -0
- package/dist/ws/route.js +560 -0
- package/dist/ws/route.mjs +554 -0
- package/dist/ws/types.d.ts +154 -57
- package/dist/ws/types.js +1 -14
- package/dist/ws/types.mjs +1 -0
- package/package.json +179 -120
- package/bunfig.toml +0 -2
- package/dist/adapter/bun/compose.d.ts +0 -3
- package/dist/adapter/bun/compose.js +0 -90
- package/dist/adapter/bun/compose.mjs +0 -74
- package/dist/adapter/bun/handler-native.d.ts +0 -3
- package/dist/adapter/bun/handler-native.js +0 -42
- package/dist/adapter/bun/handler-native.mjs +0 -22
- package/dist/adapter/bun/handler.d.ts +0 -7
- package/dist/adapter/bun/handler.js +0 -363
- package/dist/adapter/bun/handler.mjs +0 -346
- package/dist/adapter/cloudflare-worker/index.d.ts +0 -20
- package/dist/adapter/cloudflare-worker/index.js +0 -59
- package/dist/adapter/cloudflare-worker/index.mjs +0 -39
- package/dist/compose.d.ts +0 -30
- package/dist/compose.js +0 -1324
- package/dist/compose.mjs +0 -1336
- package/dist/cookies.d.ts +0 -158
- package/dist/cookies.js +0 -250
- package/dist/cookies.mjs +0 -221
- package/dist/dynamic-handle.d.ts +0 -15
- package/dist/dynamic-handle.js +0 -521
- package/dist/dynamic-handle.mjs +0 -509
- package/dist/formats.d.ts +0 -79
- package/dist/formats.js +0 -153
- package/dist/formats.mjs +0 -132
- package/dist/manifest.d.ts +0 -0
- package/dist/manifest.js +0 -1
- package/dist/manifest.mjs +0 -0
- package/dist/replace-schema.d.ts +0 -60
- package/dist/replace-schema.js +0 -140
- package/dist/replace-schema.mjs +0 -115
- package/dist/schema.d.ts +0 -107
- package/dist/schema.js +0 -833
- package/dist/schema.mjs +0 -814
- package/dist/type-system/format.d.ts +0 -55
- package/dist/type-system/format.js +0 -197
- package/dist/type-system/format.mjs +0 -175
- package/dist/type-system/index.d.ts +0 -45
- package/dist/type-system/index.js +0 -406
- package/dist/type-system/index.mjs +0 -394
- package/dist/type-system/types.d.ts +0 -155
- package/dist/type-system/types.js +0 -14
- package/dist/type-system/types.mjs +0 -0
- package/dist/type-system/utils.d.ts +0 -62
- package/dist/type-system/utils.js +0 -141
- package/dist/type-system/utils.mjs +0 -111
- package/dist/universal/request.d.ts +0 -29
- package/dist/universal/request.js +0 -126
- package/dist/universal/request.mjs +0 -105
- package/dist/universal/types.d.ts +0 -124
- package/dist/universal/types.js +0 -41
- package/dist/universal/types.mjs +0 -19
- package/dist/universal/utils.d.ts +0 -3
- package/dist/universal/utils.js +0 -41
- package/dist/universal/utils.mjs +0 -18
- package/dist/ws/bun.d.ts +0 -419
- package/dist/ws/bun.js +0 -14
- package/dist/ws/bun.mjs +0 -0
- package/knip.json +0 -22
package/dist/compose.js
DELETED
|
@@ -1,1324 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
-
mod
|
|
23
|
-
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
24
|
-
var compose_exports = {};
|
|
25
|
-
__export(compose_exports, {
|
|
26
|
-
composeErrorHandler: () => composeErrorHandler,
|
|
27
|
-
composeGeneralHandler: () => composeGeneralHandler,
|
|
28
|
-
composeHandler: () => composeHandler,
|
|
29
|
-
createHoc: () => createHoc,
|
|
30
|
-
createOnRequestHandler: () => createOnRequestHandler,
|
|
31
|
-
isAsync: () => isAsync
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(compose_exports);
|
|
34
|
-
var import_index = require('./index.js'), import_value = require("@sinclair/typebox/value"), import_typebox = require("@sinclair/typebox"), import_fast_decode_uri_component = __toESM(require("fast-decode-uri-component")), import_parse_query = require('./parse-query.js'), import_utils = require('./utils.js'), import_utils2 = require('./universal/utils.js'), import_error = require('./error.js'), import_error2 = require('./error.js'), import_trace = require('./trace.js'), import_schema = require('./schema.js'), import_sucrose = require('./sucrose.js'), import_cookies = require('./cookies.js'), import_utils3 = require('./type-system/utils.js'), import_utils4 = require('./adapter/utils.js'), import_replace_schema = require('./replace-schema.js');
|
|
35
|
-
const allocateIf = (value, condition) => condition ? value : "", defaultParsers = [
|
|
36
|
-
"json",
|
|
37
|
-
"text",
|
|
38
|
-
"urlencoded",
|
|
39
|
-
"arrayBuffer",
|
|
40
|
-
"formdata",
|
|
41
|
-
"application/json",
|
|
42
|
-
// eslint-disable-next-line sonarjs/no-duplicate-string
|
|
43
|
-
"text/plain",
|
|
44
|
-
// eslint-disable-next-line sonarjs/no-duplicate-string
|
|
45
|
-
"application/x-www-form-urlencoded",
|
|
46
|
-
// eslint-disable-next-line sonarjs/no-duplicate-string
|
|
47
|
-
"application/octet-stream",
|
|
48
|
-
// eslint-disable-next-line sonarjs/no-duplicate-string
|
|
49
|
-
"multipart/form-data"
|
|
50
|
-
], createReport = ({
|
|
51
|
-
context = "c",
|
|
52
|
-
trace = [],
|
|
53
|
-
addFn
|
|
54
|
-
}) => {
|
|
55
|
-
if (!trace.length)
|
|
56
|
-
return () => ({
|
|
57
|
-
resolveChild() {
|
|
58
|
-
return () => {
|
|
59
|
-
};
|
|
60
|
-
},
|
|
61
|
-
resolve() {
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
for (let i = 0; i < trace.length; i++)
|
|
65
|
-
addFn(
|
|
66
|
-
`let report${i},reportChild${i},reportErr${i},reportErrChild${i};let trace${i}=${context}[ELYSIA_TRACE]?.[${i}]??trace[${i}](${context});
|
|
67
|
-
`
|
|
68
|
-
);
|
|
69
|
-
return (event, {
|
|
70
|
-
name,
|
|
71
|
-
total = 0,
|
|
72
|
-
alias
|
|
73
|
-
} = {}) => {
|
|
74
|
-
name || (name = "anonymous");
|
|
75
|
-
const reporter = event === "error" ? "reportErr" : "report";
|
|
76
|
-
for (let i = 0; i < trace.length; i++)
|
|
77
|
-
addFn(
|
|
78
|
-
`${alias ? "const " : ""}${alias ?? reporter}${i}=trace${i}.${event}({id,event:'${event}',name:'${name}',begin:performance.now(),total:${total}})
|
|
79
|
-
`
|
|
80
|
-
), alias && addFn(`${reporter}${i}=${alias}${i}
|
|
81
|
-
`);
|
|
82
|
-
return {
|
|
83
|
-
resolve() {
|
|
84
|
-
for (let i = 0; i < trace.length; i++)
|
|
85
|
-
addFn(`${alias ?? reporter}${i}.resolve()
|
|
86
|
-
`);
|
|
87
|
-
},
|
|
88
|
-
resolveChild(name2) {
|
|
89
|
-
for (let i = 0; i < trace.length; i++)
|
|
90
|
-
addFn(
|
|
91
|
-
`${reporter}Child${i}=${reporter}${i}.resolveChild?.shift()?.({id,event:'${event}',name:'${name2}',begin:performance.now()})
|
|
92
|
-
`
|
|
93
|
-
);
|
|
94
|
-
return (binding) => {
|
|
95
|
-
for (let i = 0; i < trace.length; i++)
|
|
96
|
-
addFn(
|
|
97
|
-
binding ? `if(${binding} instanceof Error){${reporter}Child${i}?.(${binding}) }else{${reporter}Child${i}?.()}` : `${reporter}Child${i}?.()
|
|
98
|
-
`
|
|
99
|
-
);
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
}, composeCleaner = ({
|
|
105
|
-
schema,
|
|
106
|
-
name,
|
|
107
|
-
type,
|
|
108
|
-
typeAlias = type,
|
|
109
|
-
normalize,
|
|
110
|
-
ignoreTryCatch = !1
|
|
111
|
-
}) => !normalize || !schema.Clean ? "" : normalize === !0 || normalize === "exactMirror" ? ignoreTryCatch ? `${name}=validator.${typeAlias}.Clean(${name})
|
|
112
|
-
` : `try{${name}=validator.${typeAlias}.Clean(${name})
|
|
113
|
-
}catch{}` : normalize === "typebox" ? `${name}=validator.${typeAlias}.Clean(${name})
|
|
114
|
-
` : "", composeValidationFactory = ({
|
|
115
|
-
injectResponse = "",
|
|
116
|
-
normalize = !1,
|
|
117
|
-
validator,
|
|
118
|
-
encodeSchema = !1,
|
|
119
|
-
isStaticResponse = !1,
|
|
120
|
-
hasSanitize = !1,
|
|
121
|
-
allowUnsafeValidationDetails = !1
|
|
122
|
-
}) => ({
|
|
123
|
-
validate: (type, value = `c.${type}`, error) => `c.set.status=422;throw new ValidationError('${type}',validator.${type},${value},${allowUnsafeValidationDetails}${error ? "," + error : ""})`,
|
|
124
|
-
response: (name = "r") => {
|
|
125
|
-
if (isStaticResponse || !validator.response) return "";
|
|
126
|
-
let code = injectResponse + `
|
|
127
|
-
`;
|
|
128
|
-
code += `if(${name} instanceof ElysiaCustomStatusResponse){c.set.status=${name}.code
|
|
129
|
-
${name}=${name}.response}if(${name} instanceof Response === false && typeof ${name}?.next !== 'function' && !(${name} instanceof ReadableStream))switch(c.set.status){`;
|
|
130
|
-
for (const [status2, value] of Object.entries(validator.response)) {
|
|
131
|
-
if (code += `
|
|
132
|
-
case ${status2}:
|
|
133
|
-
`, value.provider === "standard") {
|
|
134
|
-
code += `let vare${status2}=validator.response[${status2}].Check(${name})
|
|
135
|
-
if(vare${status2} instanceof Promise)vare${status2}=await vare${status2}
|
|
136
|
-
if(vare${status2}.issues)throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails},vare${status2}.issues)
|
|
137
|
-
${name}=vare${status2}.value
|
|
138
|
-
c.set.status=${status2}
|
|
139
|
-
break
|
|
140
|
-
`;
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
let noValidate = value.schema?.noValidate === !0;
|
|
144
|
-
if (!noValidate && value.schema?.$ref && value.schema?.$defs) {
|
|
145
|
-
const refKey = value.schema.$ref, defKey = typeof refKey == "string" && refKey.includes("/") ? refKey.split("/").pop() : refKey;
|
|
146
|
-
value.schema.$defs[defKey]?.noValidate === !0 && (noValidate = !0);
|
|
147
|
-
}
|
|
148
|
-
const appliedCleaner = noValidate || hasSanitize, clean = ({ ignoreTryCatch = !1 } = {}) => composeCleaner({
|
|
149
|
-
name,
|
|
150
|
-
schema: value,
|
|
151
|
-
type: "response",
|
|
152
|
-
typeAlias: `response[${status2}]`,
|
|
153
|
-
normalize,
|
|
154
|
-
ignoreTryCatch
|
|
155
|
-
});
|
|
156
|
-
appliedCleaner && (code += clean());
|
|
157
|
-
const applyErrorCleaner = !appliedCleaner && normalize && !noValidate;
|
|
158
|
-
encodeSchema && value.hasTransform && !noValidate ? (code += `try{${name}=validator.response[${status2}].Encode(${name})
|
|
159
|
-
`, appliedCleaner || (code += clean({ ignoreTryCatch: !0 })), code += `c.set.status=${status2}}catch{` + (applyErrorCleaner ? `try{
|
|
160
|
-
` + clean({ ignoreTryCatch: !0 }) + `${name}=validator.response[${status2}].Encode(${name})
|
|
161
|
-
}catch{throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails})}` : `throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails})`) + "}") : (appliedCleaner || (code += clean()), noValidate || (code += `if(validator.response[${status2}].Check(${name})===false)throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails})
|
|
162
|
-
c.set.status=${status2}
|
|
163
|
-
`)), code += `break
|
|
164
|
-
`;
|
|
165
|
-
}
|
|
166
|
-
return code + "}";
|
|
167
|
-
}
|
|
168
|
-
}), isAsyncName = (v) => (v?.fn ?? v).constructor.name === "AsyncFunction", matchResponseClone = /=>\s?response\.clone\(/, matchFnReturn = /(?:return|=>)\s?\S+\(|a(?:sync|wait)/, isAsync = (v) => {
|
|
169
|
-
const isObject = typeof v == "object";
|
|
170
|
-
if (isObject && v.isAsync !== void 0) return v.isAsync;
|
|
171
|
-
const fn = isObject ? v.fn : v;
|
|
172
|
-
if (fn.constructor.name === "AsyncFunction" || fn.constructor.name === "AsyncGeneratorFunction")
|
|
173
|
-
return !0;
|
|
174
|
-
const literal = fn.toString();
|
|
175
|
-
if (matchResponseClone.test(literal))
|
|
176
|
-
return isObject && (v.isAsync = !1), !1;
|
|
177
|
-
const result = matchFnReturn.test(literal);
|
|
178
|
-
return isObject && (v.isAsync = result), result;
|
|
179
|
-
}, hasReturn = (v) => {
|
|
180
|
-
const isObject = typeof v == "object";
|
|
181
|
-
if (isObject && v.hasReturn !== void 0) return v.hasReturn;
|
|
182
|
-
const fnLiteral = isObject ? v.fn.toString() : v.toString(), parenthesisEnd = fnLiteral.indexOf(")"), arrowIndex = fnLiteral.indexOf("=>", parenthesisEnd);
|
|
183
|
-
if (arrowIndex !== -1) {
|
|
184
|
-
let afterArrow = arrowIndex + 2, charCode;
|
|
185
|
-
for (; afterArrow < fnLiteral.length && ((charCode = fnLiteral.charCodeAt(afterArrow)) === 32 || // space
|
|
186
|
-
charCode === 9 || // tab
|
|
187
|
-
charCode === 10 || // newline
|
|
188
|
-
charCode === 13); )
|
|
189
|
-
afterArrow++;
|
|
190
|
-
if (afterArrow < fnLiteral.length && fnLiteral.charCodeAt(afterArrow) !== 123)
|
|
191
|
-
return isObject && (v.hasReturn = !0), !0;
|
|
192
|
-
}
|
|
193
|
-
const result = fnLiteral.includes("return");
|
|
194
|
-
return isObject && (v.hasReturn = result), result;
|
|
195
|
-
}, isGenerator = (v) => {
|
|
196
|
-
const fn = v?.fn ?? v;
|
|
197
|
-
return fn.constructor.name === "AsyncGeneratorFunction" || fn.constructor.name === "GeneratorFunction";
|
|
198
|
-
}, coerceTransformDecodeError = (fnLiteral, type, allowUnsafeValidationDetails = !1, value = `c.${type}`) => `try{${fnLiteral}}catch(error){if(error.constructor.name === 'TransformDecodeError'){c.set.status=422
|
|
199
|
-
throw error.error ?? new ValidationError('${type}',validator.${type},${value},${allowUnsafeValidationDetails})}}`, setImmediateFn = import_utils.hasSetImmediate ? "setImmediate" : "Promise.resolve().then", composeHandler = ({
|
|
200
|
-
app,
|
|
201
|
-
path,
|
|
202
|
-
method,
|
|
203
|
-
hooks,
|
|
204
|
-
validator,
|
|
205
|
-
handler,
|
|
206
|
-
allowMeta = !1,
|
|
207
|
-
inference
|
|
208
|
-
}) => {
|
|
209
|
-
const adapter = app["~adapter"].composeHandler, adapterHandler = app["~adapter"].handler, isHandleFn = typeof handler == "function";
|
|
210
|
-
if (!isHandleFn) {
|
|
211
|
-
handler = adapterHandler.mapResponse(handler, {
|
|
212
|
-
// @ts-expect-error private property
|
|
213
|
-
headers: app.setHeaders ?? {}
|
|
214
|
-
});
|
|
215
|
-
const isResponse = handler instanceof Response || // @ts-ignore If it's not instanceof Response, it might be a polyfill (only on Node)
|
|
216
|
-
handler?.constructor?.name === "Response" && typeof handler?.clone == "function";
|
|
217
|
-
if (hooks.parse?.length && hooks.transform?.length && hooks.beforeHandle?.length && hooks.afterHandle?.length)
|
|
218
|
-
return isResponse ? Function(
|
|
219
|
-
"a",
|
|
220
|
-
`"use strict";
|
|
221
|
-
return function(){return a.clone()}`
|
|
222
|
-
)(handler) : Function(
|
|
223
|
-
"a",
|
|
224
|
-
`"use strict";
|
|
225
|
-
return function(){return a}`
|
|
226
|
-
)(handler);
|
|
227
|
-
if (isResponse) {
|
|
228
|
-
const response = handler;
|
|
229
|
-
handler = () => response.clone();
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
const handle = isHandleFn ? "handler(c)" : "handler", hasTrace = !!hooks.trace?.length;
|
|
233
|
-
let fnLiteral = "";
|
|
234
|
-
if (inference = (0, import_sucrose.sucrose)(
|
|
235
|
-
Object.assign({ handler }, hooks),
|
|
236
|
-
inference,
|
|
237
|
-
app.config.sucrose
|
|
238
|
-
), adapter.declare) {
|
|
239
|
-
const literal = adapter.declare(inference);
|
|
240
|
-
literal && (fnLiteral += literal);
|
|
241
|
-
}
|
|
242
|
-
inference.server && (fnLiteral += `Object.defineProperty(c,'server',{get:function(){return getServer()}})
|
|
243
|
-
`), validator.createBody?.(), validator.createQuery?.(), validator.createHeaders?.(), validator.createParams?.(), validator.createCookie?.(), validator.createResponse?.();
|
|
244
|
-
const hasValidation = !!validator.body || !!validator.headers || !!validator.params || !!validator.query || !!validator.cookie || !!validator.response, hasQuery = inference.query || !!validator.query, requestNoBody = hooks.parse?.length === 1 && // @ts-expect-error
|
|
245
|
-
hooks.parse[0].fn === "none", hasBody = method !== "" && method !== "GET" && method !== "HEAD" && (inference.body || !!validator.body || !!hooks.parse?.length) && !requestNoBody, defaultHeaders = app.setHeaders, hasDefaultHeaders = defaultHeaders && !!Object.keys(defaultHeaders).length, hasHeaders = inference.headers || !!validator.headers || adapter.preferWebstandardHeaders !== !0 && inference.body, hasCookie = inference.cookie || !!validator.cookie, cookieMeta = validator.cookie?.config ? (0, import_utils.mergeCookie)(validator?.cookie?.config, app.config.cookie) : app.config.cookie;
|
|
246
|
-
let _encodeCookie = "";
|
|
247
|
-
const encodeCookie = () => {
|
|
248
|
-
if (_encodeCookie) return _encodeCookie;
|
|
249
|
-
if (cookieMeta?.sign) {
|
|
250
|
-
if (cookieMeta.secrets === "")
|
|
251
|
-
throw new Error(
|
|
252
|
-
`cookie secret can't be an empty string at (${method}) ${path}`,
|
|
253
|
-
{
|
|
254
|
-
cause: `(${method}) ${path}`
|
|
255
|
-
}
|
|
256
|
-
);
|
|
257
|
-
if (!cookieMeta.secrets)
|
|
258
|
-
throw new Error(
|
|
259
|
-
`cookie secret must be defined (${method}) ${path}`,
|
|
260
|
-
{
|
|
261
|
-
cause: `(${method}) ${path}`
|
|
262
|
-
}
|
|
263
|
-
);
|
|
264
|
-
const secret = cookieMeta.secrets ? typeof cookieMeta.secrets == "string" ? cookieMeta.secrets : cookieMeta.secrets[0] : void 0;
|
|
265
|
-
if (_encodeCookie += `const _setCookie = c.set.cookie
|
|
266
|
-
if(_setCookie){`, cookieMeta.sign === !0)
|
|
267
|
-
_encodeCookie += `for(const [key, cookie] of Object.entries(_setCookie)){c.set.cookie[key].value=await signCookie(cookie.value,${secret ? JSON.stringify(secret) : "undefined"})}`;
|
|
268
|
-
else {
|
|
269
|
-
typeof cookieMeta.sign == "string" && (cookieMeta.sign = [cookieMeta.sign]);
|
|
270
|
-
for (const name of cookieMeta.sign)
|
|
271
|
-
_encodeCookie += `if(_setCookie[${JSON.stringify(name)}]?.value)c.set.cookie[${JSON.stringify(name)}].value=await signCookie(_setCookie[${JSON.stringify(name)}].value,${secret ? JSON.stringify(secret) : "undefined"})
|
|
272
|
-
`;
|
|
273
|
-
}
|
|
274
|
-
_encodeCookie += `}
|
|
275
|
-
`;
|
|
276
|
-
}
|
|
277
|
-
return _encodeCookie;
|
|
278
|
-
}, normalize = app.config.normalize, encodeSchema = app.config.encodeSchema, allowUnsafeValidationDetails = app.config.allowUnsafeValidationDetails, validation = composeValidationFactory({
|
|
279
|
-
normalize,
|
|
280
|
-
validator,
|
|
281
|
-
encodeSchema,
|
|
282
|
-
isStaticResponse: handler instanceof Response,
|
|
283
|
-
hasSanitize: !!app.config.sanitize,
|
|
284
|
-
allowUnsafeValidationDetails
|
|
285
|
-
});
|
|
286
|
-
hasHeaders && (fnLiteral += adapter.headers), hasTrace && (fnLiteral += `const id=c[ELYSIA_REQUEST_ID]
|
|
287
|
-
`);
|
|
288
|
-
const report = createReport({
|
|
289
|
-
trace: hooks.trace,
|
|
290
|
-
addFn: (word) => {
|
|
291
|
-
fnLiteral += word;
|
|
292
|
-
}
|
|
293
|
-
});
|
|
294
|
-
if (fnLiteral += "try{", hasCookie) {
|
|
295
|
-
const get = (name, defaultValue) => {
|
|
296
|
-
const value = cookieMeta?.[name] ?? defaultValue;
|
|
297
|
-
return value === void 0 ? "" : value ? typeof value == "string" ? `${name}:${JSON.stringify(value)},` : value instanceof Date ? `${name}: new Date(${value.getTime()}),` : `${name}:${value},` : typeof defaultValue == "string" ? `${name}:"${defaultValue}",` : `${name}:${defaultValue},`;
|
|
298
|
-
}, options = cookieMeta ? `{secrets:${cookieMeta.secrets !== void 0 && cookieMeta.secrets !== null ? typeof cookieMeta.secrets == "string" ? JSON.stringify(cookieMeta.secrets) : "[" + cookieMeta.secrets.map((x) => JSON.stringify(x)).join(",") + "]" : "undefined"},sign:${cookieMeta.sign === !0 ? !0 : cookieMeta.sign !== void 0 ? typeof cookieMeta.sign == "string" ? JSON.stringify(cookieMeta.sign) : "[" + cookieMeta.sign.map((x) => JSON.stringify(x)).join(",") + "]" : "undefined"},` + get("domain") + get("expires") + get("httpOnly") + get("maxAge") + get("path", "/") + get("priority") + get("sameSite") + get("secure") + "}" : "undefined";
|
|
299
|
-
hasHeaders ? fnLiteral += `
|
|
300
|
-
c.cookie=await parseCookie(c.set,c.headers.cookie,${options})
|
|
301
|
-
` : fnLiteral += `
|
|
302
|
-
c.cookie=await parseCookie(c.set,c.request.headers.get('cookie'),${options})
|
|
303
|
-
`;
|
|
304
|
-
}
|
|
305
|
-
if (hasQuery) {
|
|
306
|
-
let arrayProperties = {}, objectProperties = {}, hasArrayProperty = !1, hasObjectProperty = !1;
|
|
307
|
-
if (validator.query?.schema) {
|
|
308
|
-
const schema = (0, import_schema.unwrapImportSchema)(validator.query?.schema), properties = (0, import_schema.getSchemaProperties)(schema);
|
|
309
|
-
if (properties)
|
|
310
|
-
for (const [key, value] of Object.entries(properties))
|
|
311
|
-
(0, import_schema.hasElysiaMeta)("ArrayQuery", value) && (arrayProperties[key] = !0, hasArrayProperty = !0), (0, import_schema.hasElysiaMeta)("ObjectString", value) && (objectProperties[key] = !0, hasObjectProperty = !0);
|
|
312
|
-
}
|
|
313
|
-
fnLiteral += `if(c.qi===-1){c.query=Object.create(null)}else{c.query=parseQueryFromURL(c.url,c.qi+1${//
|
|
314
|
-
hasArrayProperty ? "," + JSON.stringify(arrayProperties) : hasObjectProperty ? ",undefined" : ""}${//
|
|
315
|
-
hasObjectProperty ? "," + JSON.stringify(objectProperties) : ""})}`;
|
|
316
|
-
}
|
|
317
|
-
const isAsyncHandler = typeof handler == "function" && isAsync(handler), saveResponse = hasTrace || hooks.afterResponse?.length ? "c.response=c.responseValue= " : "", responseKeys = Object.keys(validator.response ?? {}), hasMultipleResponses = responseKeys.length > 1, hasSingle200 = responseKeys.length === 0 || responseKeys.length === 1 && responseKeys[0] === "200", maybeAsync = hasCookie || hasBody || isAsyncHandler || !!hooks.parse?.length || !!hooks.afterHandle?.some(isAsync) || !!hooks.beforeHandle?.some(isAsync) || !!hooks.transform?.some(isAsync) || !!hooks.mapResponse?.some(isAsync) || validator.body?.provider === "standard" || validator.headers?.provider === "standard" || validator.query?.provider === "standard" || validator.params?.provider === "standard" || validator.cookie?.provider === "standard" || Object.values(validator.response ?? {}).find(
|
|
318
|
-
(x) => x.provider === "standard"
|
|
319
|
-
), maybeStream = (typeof handler == "function" ? isGenerator(handler) : !1) || !!hooks.beforeHandle?.some(isGenerator) || !!hooks.afterHandle?.some(isGenerator) || !!hooks.transform?.some(isGenerator), hasSet = inference.cookie || inference.set || hasHeaders || hasTrace || hasMultipleResponses || !hasSingle200 || isHandleFn && hasDefaultHeaders || maybeStream;
|
|
320
|
-
let _afterResponse;
|
|
321
|
-
const afterResponse = (hasStream = !0) => {
|
|
322
|
-
if (_afterResponse !== void 0) return _afterResponse;
|
|
323
|
-
if (!hooks.afterResponse?.length && !hasTrace) return "";
|
|
324
|
-
let afterResponse2 = "";
|
|
325
|
-
afterResponse2 += `
|
|
326
|
-
${setImmediateFn}(async()=>{if(c.responseValue){if(c.responseValue instanceof ElysiaCustomStatusResponse) c.set.status=c.responseValue.code
|
|
327
|
-
` + (hasStream ? `if(typeof afterHandlerStreamListener!=='undefined')for await(const v of afterHandlerStreamListener){}
|
|
328
|
-
` : "") + `}
|
|
329
|
-
`;
|
|
330
|
-
const reporter = createReport({
|
|
331
|
-
trace: hooks.trace,
|
|
332
|
-
addFn: (word) => {
|
|
333
|
-
afterResponse2 += word;
|
|
334
|
-
}
|
|
335
|
-
})("afterResponse", {
|
|
336
|
-
total: hooks.afterResponse?.length
|
|
337
|
-
});
|
|
338
|
-
if (hooks.afterResponse?.length && hooks.afterResponse)
|
|
339
|
-
for (let i = 0; i < hooks.afterResponse.length; i++) {
|
|
340
|
-
const endUnit = reporter.resolveChild(
|
|
341
|
-
hooks.afterResponse[i].fn.name
|
|
342
|
-
), prefix = isAsync(hooks.afterResponse[i]) ? "await " : "";
|
|
343
|
-
afterResponse2 += `
|
|
344
|
-
${prefix}e.afterResponse[${i}](c)
|
|
345
|
-
`, endUnit();
|
|
346
|
-
}
|
|
347
|
-
return reporter.resolve(), afterResponse2 += `})
|
|
348
|
-
`, _afterResponse = afterResponse2;
|
|
349
|
-
}, mapResponse = (r = "r") => {
|
|
350
|
-
const after = afterResponse(), response = `${maybeStream && maybeAsync ? "await " : ""}${hasSet ? "mapResponse" : "mapCompactResponse"}(${saveResponse}${r}${hasSet ? ",c.set" : ""}${mapResponseContext})
|
|
351
|
-
`;
|
|
352
|
-
return after ? `const _res=${response}` + after + "return _res" : `return ${response}`;
|
|
353
|
-
}, mapResponseContext = adapter.mapResponseContext ? `,${adapter.mapResponseContext}` : "";
|
|
354
|
-
(hasTrace || inference.route) && (fnLiteral += `c.route=\`${path}\`
|
|
355
|
-
`), (hasTrace || hooks.afterResponse?.length) && (fnLiteral += `let afterHandlerStreamListener
|
|
356
|
-
`);
|
|
357
|
-
const parseReporter = report("parse", {
|
|
358
|
-
total: hooks.parse?.length
|
|
359
|
-
});
|
|
360
|
-
if (hasBody) {
|
|
361
|
-
const hasBodyInference = !!hooks.parse?.length || inference.body || validator.body;
|
|
362
|
-
adapter.parser.declare && (fnLiteral += adapter.parser.declare), fnLiteral += `
|
|
363
|
-
try{`;
|
|
364
|
-
let parser = typeof hooks.parse == "string" ? hooks.parse : Array.isArray(hooks.parse) && hooks.parse.length === 1 ? typeof hooks.parse[0] == "string" ? hooks.parse[0] : typeof hooks.parse[0].fn == "string" ? hooks.parse[0].fn : void 0 : void 0;
|
|
365
|
-
if (!parser && validator.body && !hooks.parse?.length) {
|
|
366
|
-
const schema = validator.body.schema;
|
|
367
|
-
schema && schema.anyOf && schema[import_typebox.Kind] === "Union" && schema.anyOf?.length === 2 && schema.anyOf?.find((x) => x[import_typebox.Kind] === "ElysiaForm") && (parser = "formdata");
|
|
368
|
-
}
|
|
369
|
-
if (parser && defaultParsers.includes(parser)) {
|
|
370
|
-
const reporter = report("parse", {
|
|
371
|
-
total: hooks.parse?.length
|
|
372
|
-
}), isOptionalBody = !!validator.body?.isOptional;
|
|
373
|
-
switch (parser) {
|
|
374
|
-
case "json":
|
|
375
|
-
case "application/json":
|
|
376
|
-
fnLiteral += adapter.parser.json(isOptionalBody);
|
|
377
|
-
break;
|
|
378
|
-
case "text":
|
|
379
|
-
case "text/plain":
|
|
380
|
-
fnLiteral += adapter.parser.text(isOptionalBody);
|
|
381
|
-
break;
|
|
382
|
-
case "urlencoded":
|
|
383
|
-
case "application/x-www-form-urlencoded":
|
|
384
|
-
fnLiteral += adapter.parser.urlencoded(isOptionalBody);
|
|
385
|
-
break;
|
|
386
|
-
case "arrayBuffer":
|
|
387
|
-
case "application/octet-stream":
|
|
388
|
-
fnLiteral += adapter.parser.arrayBuffer(isOptionalBody);
|
|
389
|
-
break;
|
|
390
|
-
case "formdata":
|
|
391
|
-
case "multipart/form-data":
|
|
392
|
-
fnLiteral += adapter.parser.formData(isOptionalBody);
|
|
393
|
-
break;
|
|
394
|
-
default:
|
|
395
|
-
parser in app["~parser"] && (fnLiteral += hasHeaders ? "let contentType = c.headers['content-type']" : "let contentType = c.request.headers.get('content-type')", fnLiteral += `
|
|
396
|
-
if(contentType){const index=contentType.indexOf(';')
|
|
397
|
-
if(index!==-1)contentType=contentType.substring(0,index)}
|
|
398
|
-
else{contentType=''}c.contentType=contentType
|
|
399
|
-
let result=parser['${parser}'](c, contentType)
|
|
400
|
-
if(result instanceof Promise)result=await result
|
|
401
|
-
if(result instanceof ElysiaCustomStatusResponse)throw result
|
|
402
|
-
if(result!==undefined)c.body=result
|
|
403
|
-
delete c.contentType
|
|
404
|
-
`);
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
407
|
-
reporter.resolve();
|
|
408
|
-
} else if (hasBodyInference) {
|
|
409
|
-
fnLiteral += `
|
|
410
|
-
`, fnLiteral += `let contentType
|
|
411
|
-
if(c.request.body)`, fnLiteral += hasHeaders ? `contentType=c.headers['content-type']
|
|
412
|
-
` : `contentType=c.request.headers.get('content-type')
|
|
413
|
-
`;
|
|
414
|
-
let hasDefaultParser = !1;
|
|
415
|
-
if (hooks.parse?.length)
|
|
416
|
-
fnLiteral += `if(contentType){
|
|
417
|
-
const index=contentType.indexOf(';')
|
|
418
|
-
|
|
419
|
-
if(index!==-1)contentType=contentType.substring(0,index)}else{contentType=''}let used=false
|
|
420
|
-
c.contentType=contentType
|
|
421
|
-
`;
|
|
422
|
-
else {
|
|
423
|
-
hasDefaultParser = !0;
|
|
424
|
-
const isOptionalBody = !!validator.body?.isOptional;
|
|
425
|
-
fnLiteral += `if(contentType)switch(contentType.charCodeAt(12)){
|
|
426
|
-
case 106:` + adapter.parser.json(isOptionalBody) + `break
|
|
427
|
-
case 120:` + adapter.parser.urlencoded(isOptionalBody) + `break
|
|
428
|
-
case 111:` + adapter.parser.arrayBuffer(isOptionalBody) + `break
|
|
429
|
-
case 114:` + adapter.parser.formData(isOptionalBody) + `break
|
|
430
|
-
default:if(contentType.charCodeAt(0)===116){` + adapter.parser.text(isOptionalBody) + `}break
|
|
431
|
-
}`;
|
|
432
|
-
}
|
|
433
|
-
const reporter = report("parse", {
|
|
434
|
-
total: hooks.parse?.length
|
|
435
|
-
});
|
|
436
|
-
if (hooks.parse)
|
|
437
|
-
for (let i = 0; i < hooks.parse.length; i++) {
|
|
438
|
-
const name = `bo${i}`;
|
|
439
|
-
if (i !== 0 && (fnLiteral += `
|
|
440
|
-
if(!used){`), typeof hooks.parse[i].fn == "string") {
|
|
441
|
-
const endUnit = reporter.resolveChild(
|
|
442
|
-
hooks.parse[i].fn
|
|
443
|
-
), isOptionalBody = !!validator.body?.isOptional;
|
|
444
|
-
switch (hooks.parse[i].fn) {
|
|
445
|
-
case "json":
|
|
446
|
-
case "application/json":
|
|
447
|
-
hasDefaultParser = !0, fnLiteral += adapter.parser.json(isOptionalBody);
|
|
448
|
-
break;
|
|
449
|
-
case "text":
|
|
450
|
-
case "text/plain":
|
|
451
|
-
hasDefaultParser = !0, fnLiteral += adapter.parser.text(isOptionalBody);
|
|
452
|
-
break;
|
|
453
|
-
case "urlencoded":
|
|
454
|
-
case "application/x-www-form-urlencoded":
|
|
455
|
-
hasDefaultParser = !0, fnLiteral += adapter.parser.urlencoded(isOptionalBody);
|
|
456
|
-
break;
|
|
457
|
-
case "arrayBuffer":
|
|
458
|
-
case "application/octet-stream":
|
|
459
|
-
hasDefaultParser = !0, fnLiteral += adapter.parser.arrayBuffer(isOptionalBody);
|
|
460
|
-
break;
|
|
461
|
-
case "formdata":
|
|
462
|
-
case "multipart/form-data":
|
|
463
|
-
hasDefaultParser = !0, fnLiteral += adapter.parser.formData(isOptionalBody);
|
|
464
|
-
break;
|
|
465
|
-
default:
|
|
466
|
-
fnLiteral += `let ${name}=parser['${hooks.parse[i].fn}'](c,contentType)
|
|
467
|
-
if(${name} instanceof Promise)${name}=await ${name}
|
|
468
|
-
if(${name}!==undefined){c.body=${name};used=true;}
|
|
469
|
-
`;
|
|
470
|
-
}
|
|
471
|
-
endUnit();
|
|
472
|
-
} else {
|
|
473
|
-
const endUnit = reporter.resolveChild(
|
|
474
|
-
hooks.parse[i].fn.name
|
|
475
|
-
);
|
|
476
|
-
fnLiteral += `let ${name}=e.parse[${i}]
|
|
477
|
-
${name}=${name}(c,contentType)
|
|
478
|
-
if(${name} instanceof Promise)${name}=await ${name}
|
|
479
|
-
if(${name}!==undefined){c.body=${name};used=true}`, endUnit();
|
|
480
|
-
}
|
|
481
|
-
if (i !== 0 && (fnLiteral += "}"), hasDefaultParser) break;
|
|
482
|
-
}
|
|
483
|
-
if (reporter.resolve(), !hasDefaultParser) {
|
|
484
|
-
const isOptionalBody = !!validator.body?.isOptional;
|
|
485
|
-
hooks.parse?.length && (fnLiteral += `
|
|
486
|
-
if(!used){
|
|
487
|
-
`), fnLiteral += `switch(contentType){case 'application/json':
|
|
488
|
-
` + adapter.parser.json(isOptionalBody) + `break
|
|
489
|
-
case 'text/plain':` + adapter.parser.text(isOptionalBody) + `break
|
|
490
|
-
case 'application/x-www-form-urlencoded':` + adapter.parser.urlencoded(isOptionalBody) + `break
|
|
491
|
-
case 'application/octet-stream':` + adapter.parser.arrayBuffer(isOptionalBody) + `break
|
|
492
|
-
case 'multipart/form-data':` + adapter.parser.formData(isOptionalBody) + `break
|
|
493
|
-
`;
|
|
494
|
-
for (const key of Object.keys(app["~parser"]))
|
|
495
|
-
fnLiteral += `case '${key}':let bo${key}=parser['${key}'](c,contentType)
|
|
496
|
-
if(bo${key} instanceof Promise)bo${key}=await bo${key}
|
|
497
|
-
if(bo${key} instanceof ElysiaCustomStatusResponse){` + mapResponse(`bo${key}`) + `}if(bo${key}!==undefined)c.body=bo${key}
|
|
498
|
-
break
|
|
499
|
-
`;
|
|
500
|
-
hooks.parse?.length && (fnLiteral += "}"), fnLiteral += "}";
|
|
501
|
-
}
|
|
502
|
-
hooks.parse?.length && (fnLiteral += `
|
|
503
|
-
delete c.contentType`);
|
|
504
|
-
}
|
|
505
|
-
fnLiteral += "}catch(error){throw new ParseError(error)}";
|
|
506
|
-
}
|
|
507
|
-
if (parseReporter.resolve(), hooks?.transform || hasTrace) {
|
|
508
|
-
const reporter = report("transform", {
|
|
509
|
-
total: hooks.transform?.length
|
|
510
|
-
});
|
|
511
|
-
if (hooks.transform?.length) {
|
|
512
|
-
fnLiteral += `let transformed
|
|
513
|
-
`;
|
|
514
|
-
for (let i = 0; i < hooks.transform.length; i++) {
|
|
515
|
-
const transform = hooks.transform[i], endUnit = reporter.resolveChild(transform.fn.name);
|
|
516
|
-
fnLiteral += isAsync(transform) ? `transformed=await e.transform[${i}](c)
|
|
517
|
-
` : `transformed=e.transform[${i}](c)
|
|
518
|
-
`, transform.subType === "mapDerive" ? fnLiteral += "if(transformed instanceof ElysiaCustomStatusResponse){" + mapResponse("transformed") + `}else{transformed.request=c.request
|
|
519
|
-
transformed.store=c.store
|
|
520
|
-
transformed.qi=c.qi
|
|
521
|
-
transformed.path=c.path
|
|
522
|
-
transformed.url=c.url
|
|
523
|
-
transformed.redirect=c.redirect
|
|
524
|
-
transformed.set=c.set
|
|
525
|
-
transformed.error=c.error
|
|
526
|
-
c=transformed}` : fnLiteral += "if(transformed instanceof ElysiaCustomStatusResponse){" + mapResponse("transformed") + `}else Object.assign(c,transformed)
|
|
527
|
-
`, endUnit();
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
reporter.resolve();
|
|
531
|
-
}
|
|
532
|
-
const fileUnions = [];
|
|
533
|
-
if (validator) {
|
|
534
|
-
if (validator.headers) {
|
|
535
|
-
if (validator.headers.hasDefault)
|
|
536
|
-
for (const [key, value] of Object.entries(
|
|
537
|
-
import_value.Value.Default(
|
|
538
|
-
// @ts-ignore
|
|
539
|
-
validator.headers.schema,
|
|
540
|
-
{}
|
|
541
|
-
)
|
|
542
|
-
)) {
|
|
543
|
-
const parsed = typeof value == "object" ? JSON.stringify(value) : typeof value == "string" ? `'${value}'` : value;
|
|
544
|
-
parsed !== void 0 && (fnLiteral += `c.headers['${key}']??=${parsed}
|
|
545
|
-
`);
|
|
546
|
-
}
|
|
547
|
-
fnLiteral += composeCleaner({
|
|
548
|
-
name: "c.headers",
|
|
549
|
-
schema: validator.headers,
|
|
550
|
-
type: "headers",
|
|
551
|
-
normalize
|
|
552
|
-
}), validator.headers.isOptional && (fnLiteral += "if(isNotEmpty(c.headers)){"), validator.headers?.provider === "standard" ? fnLiteral += `let vah=validator.headers.Check(c.headers)
|
|
553
|
-
if(vah instanceof Promise)vah=await vah
|
|
554
|
-
if(vah.issues){` + validation.validate("headers", void 0, "vah.issues") + `}else{c.headers=vah.value}
|
|
555
|
-
` : validator.headers?.schema?.noValidate !== !0 && (fnLiteral += "if(validator.headers.Check(c.headers) === false){" + validation.validate("headers") + "}"), validator.headers.hasTransform && (fnLiteral += coerceTransformDecodeError(
|
|
556
|
-
`c.headers=validator.headers.Decode(c.headers)
|
|
557
|
-
`,
|
|
558
|
-
"headers",
|
|
559
|
-
allowUnsafeValidationDetails
|
|
560
|
-
)), validator.headers.isOptional && (fnLiteral += "}");
|
|
561
|
-
}
|
|
562
|
-
if (validator.params) {
|
|
563
|
-
if (validator.params.hasDefault)
|
|
564
|
-
for (const [key, value] of Object.entries(
|
|
565
|
-
import_value.Value.Default(
|
|
566
|
-
// @ts-ignore
|
|
567
|
-
validator.params.schema,
|
|
568
|
-
{}
|
|
569
|
-
)
|
|
570
|
-
)) {
|
|
571
|
-
const parsed = typeof value == "object" ? JSON.stringify(value) : typeof value == "string" ? `'${value}'` : value;
|
|
572
|
-
parsed !== void 0 && (fnLiteral += `c.params['${key}']??=${parsed}
|
|
573
|
-
`);
|
|
574
|
-
}
|
|
575
|
-
validator.params.provider === "standard" ? fnLiteral += `let vap=validator.params.Check(c.params)
|
|
576
|
-
if(vap instanceof Promise)vap=await vap
|
|
577
|
-
if(vap.issues){` + validation.validate("params", void 0, "vap.issues") + `}else{c.params=vap.value}
|
|
578
|
-
` : validator.params?.schema?.noValidate !== !0 && (fnLiteral += "if(validator.params.Check(c.params)===false){" + validation.validate("params") + "}"), validator.params.hasTransform && (fnLiteral += coerceTransformDecodeError(
|
|
579
|
-
`c.params=validator.params.Decode(c.params)
|
|
580
|
-
`,
|
|
581
|
-
"params",
|
|
582
|
-
allowUnsafeValidationDetails
|
|
583
|
-
));
|
|
584
|
-
}
|
|
585
|
-
if (validator.query) {
|
|
586
|
-
if (import_typebox.Kind in validator.query?.schema && validator.query.hasDefault)
|
|
587
|
-
for (const [key, value] of Object.entries(
|
|
588
|
-
import_value.Value.Default(
|
|
589
|
-
// @ts-ignore
|
|
590
|
-
validator.query.schema,
|
|
591
|
-
{}
|
|
592
|
-
)
|
|
593
|
-
)) {
|
|
594
|
-
const parsed = typeof value == "object" ? JSON.stringify(value) : typeof value == "string" ? `'${value}'` : value;
|
|
595
|
-
parsed !== void 0 && (fnLiteral += `if(c.query['${key}']===undefined)c.query['${key}']=${parsed}
|
|
596
|
-
`);
|
|
597
|
-
}
|
|
598
|
-
fnLiteral += composeCleaner({
|
|
599
|
-
name: "c.query",
|
|
600
|
-
schema: validator.query,
|
|
601
|
-
type: "query",
|
|
602
|
-
normalize
|
|
603
|
-
}), validator.query.isOptional && (fnLiteral += "if(isNotEmpty(c.query)){"), validator.query.provider === "standard" ? fnLiteral += `let vaq=validator.query.Check(c.query)
|
|
604
|
-
if(vaq instanceof Promise)vaq=await vaq
|
|
605
|
-
if(vaq.issues){` + validation.validate("query", void 0, "vaq.issues") + `}else{c.query=vaq.value}
|
|
606
|
-
` : validator.query?.schema?.noValidate !== !0 && (fnLiteral += "if(validator.query.Check(c.query)===false){" + validation.validate("query") + "}"), validator.query.hasTransform && (fnLiteral += coerceTransformDecodeError(
|
|
607
|
-
`c.query=validator.query.Decode(c.query)
|
|
608
|
-
`,
|
|
609
|
-
"query",
|
|
610
|
-
allowUnsafeValidationDetails
|
|
611
|
-
), fnLiteral += coerceTransformDecodeError(
|
|
612
|
-
`c.query=validator.query.Decode(c.query)
|
|
613
|
-
`,
|
|
614
|
-
"query",
|
|
615
|
-
allowUnsafeValidationDetails
|
|
616
|
-
)), validator.query.isOptional && (fnLiteral += "}");
|
|
617
|
-
}
|
|
618
|
-
if (hasBody && validator.body) {
|
|
619
|
-
(validator.body.hasTransform || validator.body.isOptional) && (fnLiteral += `const isNotEmptyObject=c.body&&(typeof c.body==="object"&&(isNotEmpty(c.body)||c.body instanceof ArrayBuffer))
|
|
620
|
-
`);
|
|
621
|
-
const hasUnion = (0, import_schema.isUnion)(validator.body.schema);
|
|
622
|
-
let hasNonUnionFileWithDefault = !1;
|
|
623
|
-
if (validator.body.hasDefault) {
|
|
624
|
-
let value = import_value.Value.Default(
|
|
625
|
-
validator.body.schema,
|
|
626
|
-
validator.body.schema.type === "object" || (0, import_schema.unwrapImportSchema)(validator.body.schema)[import_typebox.Kind] === "Object" ? {} : void 0
|
|
627
|
-
);
|
|
628
|
-
const schema = (0, import_schema.unwrapImportSchema)(validator.body.schema);
|
|
629
|
-
if (!hasUnion && value && typeof value == "object" && ((0, import_schema.hasType)("File", schema) || (0, import_schema.hasType)("Files", schema))) {
|
|
630
|
-
hasNonUnionFileWithDefault = !0;
|
|
631
|
-
for (const [k, v] of Object.entries(value))
|
|
632
|
-
(v === "File" || v === "Files") && delete value[k];
|
|
633
|
-
(0, import_utils.isNotEmpty)(value) || (value = void 0);
|
|
634
|
-
}
|
|
635
|
-
const parsed = typeof value == "object" ? JSON.stringify(value) : typeof value == "string" ? `'${value}'` : value;
|
|
636
|
-
value != null && (Array.isArray(value) ? fnLiteral += `if(!c.body)c.body=${parsed}
|
|
637
|
-
` : typeof value == "object" ? fnLiteral += `c.body=Object.assign(${parsed},c.body)
|
|
638
|
-
` : fnLiteral += `c.body=${parsed}
|
|
639
|
-
`), fnLiteral += composeCleaner({
|
|
640
|
-
name: "c.body",
|
|
641
|
-
schema: validator.body,
|
|
642
|
-
type: "body",
|
|
643
|
-
normalize
|
|
644
|
-
}), validator.body.provider === "standard" ? fnLiteral += `let vab=validator.body.Check(c.body)
|
|
645
|
-
if(vab instanceof Promise)vab=await vab
|
|
646
|
-
if(vab.issues){` + validation.validate("body", void 0, "vab.issues") + `}else{c.body=vab.value}
|
|
647
|
-
` : validator.body?.schema?.noValidate !== !0 && (validator.body.isOptional ? fnLiteral += "if(isNotEmptyObject&&validator.body.Check(c.body)===false){" + validation.validate("body") + "}" : fnLiteral += "if(validator.body.Check(c.body)===false){" + validation.validate("body") + "}");
|
|
648
|
-
} else
|
|
649
|
-
fnLiteral += composeCleaner({
|
|
650
|
-
name: "c.body",
|
|
651
|
-
schema: validator.body,
|
|
652
|
-
type: "body",
|
|
653
|
-
normalize
|
|
654
|
-
}), validator.body.provider === "standard" ? fnLiteral += `let vab=validator.body.Check(c.body)
|
|
655
|
-
if(vab instanceof Promise)vab=await vab
|
|
656
|
-
if(vab.issues){` + validation.validate("body", void 0, "vab.issues") + `}else{c.body=vab.value}
|
|
657
|
-
` : validator.body?.schema?.noValidate !== !0 && (validator.body.isOptional ? fnLiteral += "if(isNotEmptyObject&&validator.body.Check(c.body)===false){" + validation.validate("body") + "}" : fnLiteral += "if(validator.body.Check(c.body)===false){" + validation.validate("body") + "}");
|
|
658
|
-
if (validator.body.hasTransform && (fnLiteral += coerceTransformDecodeError(
|
|
659
|
-
`if(isNotEmptyObject)c.body=validator.body.Decode(c.body)
|
|
660
|
-
`,
|
|
661
|
-
"body",
|
|
662
|
-
allowUnsafeValidationDetails
|
|
663
|
-
)), hasUnion && validator.body.schema.anyOf?.length) {
|
|
664
|
-
const iterator = Object.values(
|
|
665
|
-
validator.body.schema.anyOf
|
|
666
|
-
);
|
|
667
|
-
for (let i = 0; i < iterator.length; i++) {
|
|
668
|
-
const type = iterator[i];
|
|
669
|
-
if ((0, import_schema.hasType)("File", type) || (0, import_schema.hasType)("Files", type)) {
|
|
670
|
-
const candidate = (0, import_schema.getSchemaValidator)(type, {
|
|
671
|
-
// @ts-expect-error private property
|
|
672
|
-
modules: app.definitions.typebox,
|
|
673
|
-
dynamic: !app.config.aot,
|
|
674
|
-
// @ts-expect-error private property
|
|
675
|
-
models: app.definitions.type,
|
|
676
|
-
normalize: app.config.normalize,
|
|
677
|
-
additionalCoerce: (0, import_replace_schema.coercePrimitiveRoot)(),
|
|
678
|
-
sanitize: () => app.config.sanitize
|
|
679
|
-
});
|
|
680
|
-
if (candidate) {
|
|
681
|
-
const isFirst = fileUnions.length === 0, properties = (0, import_schema.getSchemaProperties)(candidate.schema) ?? (0, import_schema.getSchemaProperties)(type);
|
|
682
|
-
if (!properties) continue;
|
|
683
|
-
const iterator2 = Object.entries(properties);
|
|
684
|
-
let validator2 = isFirst ? `
|
|
685
|
-
` : " else ";
|
|
686
|
-
validator2 += `if(fileUnions[${fileUnions.length}].Check(c.body)){`;
|
|
687
|
-
let validateFile = "", validatorLength = 0;
|
|
688
|
-
for (let i2 = 0; i2 < iterator2.length; i2++) {
|
|
689
|
-
const [k, v] = iterator2[i2];
|
|
690
|
-
!v.extension || v[import_typebox.Kind] !== "File" && v[import_typebox.Kind] !== "Files" || (validatorLength && (validateFile += ","), validateFile += `fileType(c.body.${k},${JSON.stringify(v.extension)},'body.${k}')`, validatorLength++);
|
|
691
|
-
}
|
|
692
|
-
validateFile && (validatorLength === 1 ? validator2 += `await ${validateFile}
|
|
693
|
-
` : validatorLength > 1 && (validator2 += `await Promise.all([${validateFile}])
|
|
694
|
-
`), validator2 += "}", fnLiteral += validator2, fileUnions.push(candidate));
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
}
|
|
698
|
-
} else if (hasNonUnionFileWithDefault || !hasUnion && ((0, import_schema.hasType)(
|
|
699
|
-
"File",
|
|
700
|
-
(0, import_schema.unwrapImportSchema)(validator.body.schema)
|
|
701
|
-
) || (0, import_schema.hasType)(
|
|
702
|
-
"Files",
|
|
703
|
-
(0, import_schema.unwrapImportSchema)(validator.body.schema)
|
|
704
|
-
))) {
|
|
705
|
-
let validateFile = "";
|
|
706
|
-
const bodyProperties = (0, import_schema.getSchemaProperties)(
|
|
707
|
-
(0, import_schema.unwrapImportSchema)(validator.body.schema)
|
|
708
|
-
);
|
|
709
|
-
let i = 0;
|
|
710
|
-
if (bodyProperties)
|
|
711
|
-
for (const [k, v] of Object.entries(bodyProperties))
|
|
712
|
-
!v.extension || v[import_typebox.Kind] !== "File" && v[import_typebox.Kind] !== "Files" || (i && (validateFile += ","), validateFile += `fileType(c.body.${k},${JSON.stringify(v.extension)},'body.${k}')`, i++);
|
|
713
|
-
i && (fnLiteral += `
|
|
714
|
-
`), i === 1 ? fnLiteral += `await ${validateFile}
|
|
715
|
-
` : i > 1 && (fnLiteral += `await Promise.all([${validateFile}])
|
|
716
|
-
`);
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
validator.cookie && (validator.cookie.config = (0, import_utils.mergeCookie)(
|
|
720
|
-
validator.cookie.config,
|
|
721
|
-
app.config.cookie ?? {}
|
|
722
|
-
), fnLiteral += `let cookieValue={}
|
|
723
|
-
for(const [key,value] of Object.entries(c.cookie))cookieValue[key]=value.value
|
|
724
|
-
`, validator.cookie.isOptional && (fnLiteral += "if(isNotEmpty(c.cookie)){"), validator.cookie.provider === "standard" ? (fnLiteral += `let vac=validator.cookie.Check(cookieValue)
|
|
725
|
-
if(vac instanceof Promise)vac=await vac
|
|
726
|
-
if(vac.issues){` + validation.validate("cookie", void 0, "vac.issues") + `}else{cookieValue=vac.value}
|
|
727
|
-
`, fnLiteral += `for(const k of Object.keys(cookieValue))c.cookie[k].value=cookieValue[k]
|
|
728
|
-
`) : validator.cookie?.schema?.noValidate !== !0 && (fnLiteral += "if(validator.cookie.Check(cookieValue)===false){" + validation.validate("cookie", "cookieValue") + "}", validator.cookie.hasTransform && (fnLiteral += coerceTransformDecodeError(
|
|
729
|
-
"for(const [key,value] of Object.entries(validator.cookie.Decode(cookieValue))){c.cookie[key].value = value}",
|
|
730
|
-
"cookie",
|
|
731
|
-
allowUnsafeValidationDetails
|
|
732
|
-
))), validator.cookie.isOptional && (fnLiteral += "}"));
|
|
733
|
-
}
|
|
734
|
-
if (hooks?.beforeHandle || hasTrace) {
|
|
735
|
-
const reporter = report("beforeHandle", {
|
|
736
|
-
total: hooks.beforeHandle?.length
|
|
737
|
-
});
|
|
738
|
-
let hasResolve = !1;
|
|
739
|
-
if (hooks.beforeHandle?.length)
|
|
740
|
-
for (let i = 0; i < hooks.beforeHandle.length; i++) {
|
|
741
|
-
const beforeHandle = hooks.beforeHandle[i], endUnit = reporter.resolveChild(beforeHandle.fn.name), returning = hasReturn(beforeHandle);
|
|
742
|
-
if (beforeHandle.subType === "resolve" || beforeHandle.subType === "mapResolve")
|
|
743
|
-
hasResolve || (hasResolve = !0, fnLiteral += `
|
|
744
|
-
let resolved
|
|
745
|
-
`), fnLiteral += isAsync(beforeHandle) ? `resolved=await e.beforeHandle[${i}](c);
|
|
746
|
-
` : `resolved=e.beforeHandle[${i}](c);
|
|
747
|
-
`, beforeHandle.subType === "mapResolve" ? fnLiteral += "if(resolved instanceof ElysiaCustomStatusResponse){" + mapResponse("resolved") + `}else{resolved.request=c.request
|
|
748
|
-
resolved.store=c.store
|
|
749
|
-
resolved.qi=c.qi
|
|
750
|
-
resolved.path=c.path
|
|
751
|
-
resolved.url=c.url
|
|
752
|
-
resolved.redirect=c.redirect
|
|
753
|
-
resolved.set=c.set
|
|
754
|
-
resolved.error=c.error
|
|
755
|
-
c=resolved}` : fnLiteral += "if(resolved instanceof ElysiaCustomStatusResponse){" + mapResponse("resolved") + `}else Object.assign(c, resolved)
|
|
756
|
-
`, endUnit();
|
|
757
|
-
else if (!returning)
|
|
758
|
-
fnLiteral += isAsync(beforeHandle) ? `await e.beforeHandle[${i}](c)
|
|
759
|
-
` : `e.beforeHandle[${i}](c)
|
|
760
|
-
`, endUnit();
|
|
761
|
-
else {
|
|
762
|
-
if (fnLiteral += isAsync(beforeHandle) ? `be=await e.beforeHandle[${i}](c)
|
|
763
|
-
` : `be=e.beforeHandle[${i}](c)
|
|
764
|
-
`, endUnit("be"), fnLiteral += "if(be!==undefined){", reporter.resolve(), hooks.afterHandle?.length || hasTrace) {
|
|
765
|
-
report("handle", {
|
|
766
|
-
name: isHandleFn ? handler.name : void 0
|
|
767
|
-
}).resolve();
|
|
768
|
-
const reporter2 = report("afterHandle", {
|
|
769
|
-
total: hooks.afterHandle?.length
|
|
770
|
-
});
|
|
771
|
-
if (hooks.afterHandle?.length)
|
|
772
|
-
for (let i2 = 0; i2 < hooks.afterHandle.length; i2++) {
|
|
773
|
-
const hook = hooks.afterHandle[i2], returning2 = hasReturn(hook), endUnit2 = reporter2.resolveChild(
|
|
774
|
-
hook.fn.name
|
|
775
|
-
);
|
|
776
|
-
fnLiteral += `c.response=c.responseValue=be
|
|
777
|
-
`, returning2 ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i2}](c)
|
|
778
|
-
` : `af=e.afterHandle[${i2}](c)
|
|
779
|
-
`, fnLiteral += `if(af!==undefined) c.response=c.responseValue=be=af
|
|
780
|
-
`) : fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i2}](c, be)
|
|
781
|
-
` : `e.afterHandle[${i2}](c, be)
|
|
782
|
-
`, endUnit2("af");
|
|
783
|
-
}
|
|
784
|
-
reporter2.resolve();
|
|
785
|
-
}
|
|
786
|
-
validator.response && (fnLiteral += validation.response("be"));
|
|
787
|
-
const mapResponseReporter = report("mapResponse", {
|
|
788
|
-
total: hooks.mapResponse?.length
|
|
789
|
-
});
|
|
790
|
-
if (hooks.mapResponse?.length) {
|
|
791
|
-
fnLiteral += `c.response=c.responseValue=be
|
|
792
|
-
`;
|
|
793
|
-
for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {
|
|
794
|
-
const mapResponse2 = hooks.mapResponse[i2], endUnit2 = mapResponseReporter.resolveChild(
|
|
795
|
-
mapResponse2.fn.name
|
|
796
|
-
);
|
|
797
|
-
fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse2) ? "await " : ""}e.mapResponse[${i2}](c)
|
|
798
|
-
if(mr!==undefined)be=c.response=c.responseValue=mr}`, endUnit2();
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
mapResponseReporter.resolve(), fnLiteral += afterResponse(), fnLiteral += encodeCookie(), fnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${mapResponseContext})}
|
|
802
|
-
`;
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
reporter.resolve();
|
|
806
|
-
}
|
|
807
|
-
function reportHandler(name) {
|
|
808
|
-
const handleReporter = report("handle", {
|
|
809
|
-
name,
|
|
810
|
-
alias: "reportHandler"
|
|
811
|
-
});
|
|
812
|
-
return () => {
|
|
813
|
-
hasTrace && (fnLiteral += 'if(r&&(r[Symbol.iterator]||r[Symbol.asyncIterator])&&typeof r.next==="function"){' + (maybeAsync ? "" : "(async()=>{") + `const stream=await tee(r,3)
|
|
814
|
-
r=stream[0]
|
|
815
|
-
` + (hooks.afterHandle?.length ? `c.response=c.responseValue=r
|
|
816
|
-
` : "") + `const listener=stream[1]
|
|
817
|
-
` + (hasTrace || hooks.afterResponse?.length ? `afterHandlerStreamListener=stream[2]
|
|
818
|
-
` : "") + `${setImmediateFn}(async ()=>{if(listener)for await(const v of listener){}
|
|
819
|
-
`, handleReporter.resolve(), fnLiteral += "})" + (maybeAsync ? "" : "})()") + "}else{", handleReporter.resolve(), fnLiteral += `}
|
|
820
|
-
`);
|
|
821
|
-
};
|
|
822
|
-
}
|
|
823
|
-
if (hooks.afterHandle?.length || hasTrace) {
|
|
824
|
-
const resolveHandler = reportHandler(
|
|
825
|
-
isHandleFn ? handler.name : void 0
|
|
826
|
-
);
|
|
827
|
-
hooks.afterHandle?.length ? fnLiteral += isAsyncHandler ? `let r=c.response=c.responseValue=await ${handle}
|
|
828
|
-
` : `let r=c.response=c.responseValue=${handle}
|
|
829
|
-
` : fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
830
|
-
` : `let r=${handle}
|
|
831
|
-
`, resolveHandler();
|
|
832
|
-
const reporter = report("afterHandle", {
|
|
833
|
-
total: hooks.afterHandle?.length
|
|
834
|
-
});
|
|
835
|
-
if (hooks.afterHandle?.length)
|
|
836
|
-
for (let i = 0; i < hooks.afterHandle.length; i++) {
|
|
837
|
-
const hook = hooks.afterHandle[i], returning = hasReturn(hook), endUnit = reporter.resolveChild(hook.fn.name);
|
|
838
|
-
returning ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i}](c)
|
|
839
|
-
` : `af=e.afterHandle[${i}](c)
|
|
840
|
-
`, endUnit("af"), validator.response ? (fnLiteral += "if(af!==undefined){", reporter.resolve(), fnLiteral += validation.response("af"), fnLiteral += "c.response=c.responseValue=af}") : (fnLiteral += "if(af!==undefined){", reporter.resolve(), fnLiteral += "c.response=c.responseValue=af}")) : (fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i}](c)
|
|
841
|
-
` : `e.afterHandle[${i}](c)
|
|
842
|
-
`, endUnit());
|
|
843
|
-
}
|
|
844
|
-
reporter.resolve(), hooks.afterHandle?.length && (fnLiteral += `r=c.response
|
|
845
|
-
`), validator.response && (fnLiteral += validation.response()), fnLiteral += encodeCookie();
|
|
846
|
-
const mapResponseReporter = report("mapResponse", {
|
|
847
|
-
total: hooks.mapResponse?.length
|
|
848
|
-
});
|
|
849
|
-
if (hooks.mapResponse?.length)
|
|
850
|
-
for (let i = 0; i < hooks.mapResponse.length; i++) {
|
|
851
|
-
const mapResponse2 = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(
|
|
852
|
-
mapResponse2.fn.name
|
|
853
|
-
);
|
|
854
|
-
fnLiteral += `mr=${isAsyncName(mapResponse2) ? "await " : ""}e.mapResponse[${i}](c)
|
|
855
|
-
if(mr!==undefined)r=c.response=c.responseValue=mr
|
|
856
|
-
`, endUnit();
|
|
857
|
-
}
|
|
858
|
-
mapResponseReporter.resolve(), fnLiteral += mapResponse();
|
|
859
|
-
} else {
|
|
860
|
-
const resolveHandler = reportHandler(
|
|
861
|
-
isHandleFn ? handler.name : void 0
|
|
862
|
-
);
|
|
863
|
-
if (validator.response || hooks.mapResponse?.length || hasTrace) {
|
|
864
|
-
fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
865
|
-
` : `let r=${handle}
|
|
866
|
-
`, resolveHandler(), validator.response && (fnLiteral += validation.response());
|
|
867
|
-
const mapResponseReporter = report("mapResponse", {
|
|
868
|
-
total: hooks.mapResponse?.length
|
|
869
|
-
});
|
|
870
|
-
if (hooks.mapResponse?.length) {
|
|
871
|
-
fnLiteral += `
|
|
872
|
-
c.response=c.responseValue=r
|
|
873
|
-
`;
|
|
874
|
-
for (let i = 0; i < hooks.mapResponse.length; i++) {
|
|
875
|
-
const mapResponse2 = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(
|
|
876
|
-
mapResponse2.fn.name
|
|
877
|
-
);
|
|
878
|
-
fnLiteral += `
|
|
879
|
-
if(mr===undefined){mr=${isAsyncName(mapResponse2) ? "await " : ""}e.mapResponse[${i}](c)
|
|
880
|
-
if(mr!==undefined)r=c.response=c.responseValue=mr}
|
|
881
|
-
`, endUnit();
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
mapResponseReporter.resolve(), fnLiteral += encodeCookie(), handler instanceof Response ? (fnLiteral += afterResponse(), fnLiteral += inference.set ? `if(isNotEmpty(c.set.headers)||c.set.status!==200||c.set.redirect||c.set.cookie)return mapResponse(${saveResponse}${handle}.clone(),c.set${mapResponseContext})
|
|
885
|
-
else return ${handle}.clone()` : `return ${handle}.clone()`, fnLiteral += `
|
|
886
|
-
`) : fnLiteral += mapResponse();
|
|
887
|
-
} else if (hasCookie || hasTrace) {
|
|
888
|
-
fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
889
|
-
` : `let r=${handle}
|
|
890
|
-
`, resolveHandler();
|
|
891
|
-
const mapResponseReporter = report("mapResponse", {
|
|
892
|
-
total: hooks.mapResponse?.length
|
|
893
|
-
});
|
|
894
|
-
if (hooks.mapResponse?.length) {
|
|
895
|
-
fnLiteral += `c.response=c.responseValue= r
|
|
896
|
-
`;
|
|
897
|
-
for (let i = 0; i < hooks.mapResponse.length; i++) {
|
|
898
|
-
const mapResponse2 = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(
|
|
899
|
-
mapResponse2.fn.name
|
|
900
|
-
);
|
|
901
|
-
fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse2) ? "await " : ""}e.mapResponse[${i}](c)
|
|
902
|
-
if(mr!==undefined)r=c.response=c.responseValue=mr}`, endUnit();
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
|
-
mapResponseReporter.resolve(), fnLiteral += encodeCookie() + mapResponse();
|
|
906
|
-
} else {
|
|
907
|
-
resolveHandler();
|
|
908
|
-
const handled = isAsyncHandler ? `await ${handle}` : handle;
|
|
909
|
-
handler instanceof Response ? (fnLiteral += afterResponse(), fnLiteral += inference.set ? `if(isNotEmpty(c.set.headers)||c.set.status!==200||c.set.redirect||c.set.cookie)return mapResponse(${saveResponse}${handle}.clone(),c.set${mapResponseContext})
|
|
910
|
-
else return ${handle}.clone()
|
|
911
|
-
` : `return ${handle}.clone()
|
|
912
|
-
`) : fnLiteral += mapResponse(handled);
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
if (fnLiteral += `
|
|
916
|
-
}catch(error){`, !maybeAsync && hooks.error?.length && (fnLiteral += "return(async()=>{"), fnLiteral += `const set=c.set
|
|
917
|
-
if(!set.status||set.status<300)set.status=error?.status||500
|
|
918
|
-
`, hasCookie && (fnLiteral += encodeCookie()), hasTrace && hooks.trace)
|
|
919
|
-
for (let i = 0; i < hooks.trace.length; i++)
|
|
920
|
-
fnLiteral += `report${i}?.resolve(error);reportChild${i}?.(error)
|
|
921
|
-
`;
|
|
922
|
-
const errorReporter = report("error", {
|
|
923
|
-
total: hooks.error?.length
|
|
924
|
-
});
|
|
925
|
-
if (hooks.error?.length) {
|
|
926
|
-
fnLiteral += `c.error=error
|
|
927
|
-
`, hasValidation ? fnLiteral += `if(error instanceof TypeBoxError){c.code="VALIDATION"
|
|
928
|
-
c.set.status=422}else{c.code=error.code??error[ERROR_CODE]??"UNKNOWN"}` : fnLiteral += `c.code=error.code??error[ERROR_CODE]??"UNKNOWN"
|
|
929
|
-
`, fnLiteral += `let er
|
|
930
|
-
`, hooks.mapResponse?.length && (fnLiteral += `let mep
|
|
931
|
-
`);
|
|
932
|
-
for (let i = 0; i < hooks.error.length; i++) {
|
|
933
|
-
const endUnit = errorReporter.resolveChild(hooks.error[i].fn.name);
|
|
934
|
-
if (isAsync(hooks.error[i]) ? fnLiteral += `er=await e.error[${i}](c)
|
|
935
|
-
` : fnLiteral += `er=e.error[${i}](c)
|
|
936
|
-
if(er instanceof Promise)er=await er
|
|
937
|
-
`, endUnit(), hooks.mapResponse?.length) {
|
|
938
|
-
const mapResponseReporter = report("mapResponse", {
|
|
939
|
-
total: hooks.mapResponse?.length
|
|
940
|
-
});
|
|
941
|
-
for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {
|
|
942
|
-
const mapResponse2 = hooks.mapResponse[i2], endUnit2 = mapResponseReporter.resolveChild(
|
|
943
|
-
mapResponse2.fn.name
|
|
944
|
-
);
|
|
945
|
-
fnLiteral += `c.response=c.responseValue=er
|
|
946
|
-
mep=e.mapResponse[${i2}](c)
|
|
947
|
-
if(mep instanceof Promise)mep=await mep
|
|
948
|
-
if(mep!==undefined)er=mep
|
|
949
|
-
`, endUnit2();
|
|
950
|
-
}
|
|
951
|
-
mapResponseReporter.resolve();
|
|
952
|
-
}
|
|
953
|
-
if (fnLiteral += `er=mapEarlyResponse(er,set${mapResponseContext})
|
|
954
|
-
`, fnLiteral += "if(er){", hasTrace && hooks.trace) {
|
|
955
|
-
for (let i2 = 0; i2 < hooks.trace.length; i2++)
|
|
956
|
-
fnLiteral += `report${i2}.resolve()
|
|
957
|
-
`;
|
|
958
|
-
errorReporter.resolve();
|
|
959
|
-
}
|
|
960
|
-
fnLiteral += afterResponse(!1), fnLiteral += "return er}";
|
|
961
|
-
}
|
|
962
|
-
}
|
|
963
|
-
errorReporter.resolve(), fnLiteral += "return handleError(c,error,true)", !maybeAsync && hooks.error?.length && (fnLiteral += "})()"), fnLiteral += "}";
|
|
964
|
-
const adapterVariables = adapter.inject ? Object.keys(adapter.inject).join(",") + "," : "";
|
|
965
|
-
let init = "const {handler,handleError,hooks:e, " + allocateIf("validator,", hasValidation) + "mapResponse,mapCompactResponse,mapEarlyResponse,isNotEmpty,utils:{" + allocateIf("parseQuery,", hasBody) + allocateIf("parseQueryFromURL,", hasQuery) + "},error:{" + allocateIf("ValidationError,", hasValidation) + allocateIf("ParseError", hasBody) + "},fileType,schema,definitions,tee,ERROR_CODE," + allocateIf("parseCookie,", hasCookie) + allocateIf("signCookie,", hasCookie) + allocateIf("decodeURIComponent,", hasQuery) + "ElysiaCustomStatusResponse," + allocateIf("ELYSIA_TRACE,", hasTrace) + allocateIf("ELYSIA_REQUEST_ID,", hasTrace) + allocateIf("parser,", hooks.parse?.length) + allocateIf("getServer,", inference.server) + allocateIf("fileUnions,", fileUnions.length) + adapterVariables + allocateIf("TypeBoxError", hasValidation) + `}=hooks
|
|
966
|
-
const trace=e.trace
|
|
967
|
-
return ${maybeAsync ? "async " : ""}function handle(c){`;
|
|
968
|
-
hooks.beforeHandle?.length && (init += `let be
|
|
969
|
-
`), hooks.afterHandle?.length && (init += `let af
|
|
970
|
-
`), hooks.mapResponse?.length && (init += `let mr
|
|
971
|
-
`), allowMeta && (init += `c.schema=schema
|
|
972
|
-
c.defs=definitions
|
|
973
|
-
`), fnLiteral = init + fnLiteral + "}", init = "";
|
|
974
|
-
try {
|
|
975
|
-
return Function(
|
|
976
|
-
"hooks",
|
|
977
|
-
`"use strict";
|
|
978
|
-
` + fnLiteral
|
|
979
|
-
)({
|
|
980
|
-
handler,
|
|
981
|
-
hooks: (0, import_utils.lifeCycleToFn)(hooks),
|
|
982
|
-
validator: hasValidation ? validator : void 0,
|
|
983
|
-
// @ts-expect-error
|
|
984
|
-
handleError: app.handleError,
|
|
985
|
-
mapResponse: adapterHandler.mapResponse,
|
|
986
|
-
mapCompactResponse: adapterHandler.mapCompactResponse,
|
|
987
|
-
mapEarlyResponse: adapterHandler.mapEarlyResponse,
|
|
988
|
-
isNotEmpty: import_utils.isNotEmpty,
|
|
989
|
-
utils: {
|
|
990
|
-
parseQuery: hasBody ? import_parse_query.parseQuery : void 0,
|
|
991
|
-
parseQueryFromURL: hasQuery ? validator.query?.provider === "standard" ? import_parse_query.parseQueryStandardSchema : import_parse_query.parseQueryFromURL : void 0
|
|
992
|
-
},
|
|
993
|
-
error: {
|
|
994
|
-
ValidationError: hasValidation ? import_error2.ValidationError : void 0,
|
|
995
|
-
ParseError: hasBody ? import_error.ParseError : void 0
|
|
996
|
-
},
|
|
997
|
-
fileType: import_utils3.fileType,
|
|
998
|
-
schema: app.router.history,
|
|
999
|
-
// @ts-expect-error
|
|
1000
|
-
definitions: app.definitions.type,
|
|
1001
|
-
tee: import_utils4.tee,
|
|
1002
|
-
ERROR_CODE: import_error2.ERROR_CODE,
|
|
1003
|
-
parseCookie: hasCookie ? import_cookies.parseCookie : void 0,
|
|
1004
|
-
signCookie: hasCookie ? import_utils.signCookie : void 0,
|
|
1005
|
-
Cookie: hasCookie ? import_index.Cookie : void 0,
|
|
1006
|
-
decodeURIComponent: hasQuery ? import_fast_decode_uri_component.default : void 0,
|
|
1007
|
-
ElysiaCustomStatusResponse: import_error2.ElysiaCustomStatusResponse,
|
|
1008
|
-
ELYSIA_TRACE: hasTrace ? import_trace.ELYSIA_TRACE : void 0,
|
|
1009
|
-
ELYSIA_REQUEST_ID: hasTrace ? import_utils.ELYSIA_REQUEST_ID : void 0,
|
|
1010
|
-
// @ts-expect-error private property
|
|
1011
|
-
getServer: inference.server ? () => app.getServer() : void 0,
|
|
1012
|
-
fileUnions: fileUnions.length ? fileUnions : void 0,
|
|
1013
|
-
TypeBoxError: hasValidation ? import_typebox.TypeBoxError : void 0,
|
|
1014
|
-
parser: app["~parser"],
|
|
1015
|
-
...adapter.inject
|
|
1016
|
-
});
|
|
1017
|
-
} catch (error) {
|
|
1018
|
-
const debugHooks = (0, import_utils.lifeCycleToFn)(hooks);
|
|
1019
|
-
return console.log("[Composer] failed to generate optimized handler"), console.log("---"), console.log({
|
|
1020
|
-
handler: typeof handler == "function" ? handler.toString() : handler,
|
|
1021
|
-
instruction: fnLiteral,
|
|
1022
|
-
hooks: {
|
|
1023
|
-
...debugHooks,
|
|
1024
|
-
// @ts-ignore
|
|
1025
|
-
transform: debugHooks?.transform?.map?.((x) => x.toString()),
|
|
1026
|
-
// @ts-ignore
|
|
1027
|
-
resolve: debugHooks?.resolve?.map?.((x) => x.toString()),
|
|
1028
|
-
// @ts-ignore
|
|
1029
|
-
beforeHandle: debugHooks?.beforeHandle?.map?.(
|
|
1030
|
-
(x) => x.toString()
|
|
1031
|
-
),
|
|
1032
|
-
// @ts-ignore
|
|
1033
|
-
afterHandle: debugHooks?.afterHandle?.map?.(
|
|
1034
|
-
(x) => x.toString()
|
|
1035
|
-
),
|
|
1036
|
-
// @ts-ignore
|
|
1037
|
-
mapResponse: debugHooks?.mapResponse?.map?.(
|
|
1038
|
-
(x) => x.toString()
|
|
1039
|
-
),
|
|
1040
|
-
// @ts-ignore
|
|
1041
|
-
parse: debugHooks?.parse?.map?.((x) => x.toString()),
|
|
1042
|
-
// @ts-ignore
|
|
1043
|
-
error: debugHooks?.error?.map?.((x) => x.toString()),
|
|
1044
|
-
// @ts-ignore
|
|
1045
|
-
afterResponse: debugHooks?.afterResponse?.map?.(
|
|
1046
|
-
(x) => x.toString()
|
|
1047
|
-
),
|
|
1048
|
-
// @ts-ignore
|
|
1049
|
-
stop: debugHooks?.stop?.map?.((x) => x.toString())
|
|
1050
|
-
},
|
|
1051
|
-
validator,
|
|
1052
|
-
// @ts-expect-error
|
|
1053
|
-
definitions: app.definitions.type,
|
|
1054
|
-
error
|
|
1055
|
-
}), console.log("---"), typeof process?.exit == "function" && process.exit(1), () => new Response("Internal Server Error", { status: 500 });
|
|
1056
|
-
}
|
|
1057
|
-
}, createOnRequestHandler = (app, addFn) => {
|
|
1058
|
-
let fnLiteral = "";
|
|
1059
|
-
const reporter = createReport({
|
|
1060
|
-
trace: app.event.trace,
|
|
1061
|
-
addFn: addFn ?? ((word) => {
|
|
1062
|
-
fnLiteral += word;
|
|
1063
|
-
})
|
|
1064
|
-
})("request", {
|
|
1065
|
-
total: app.event.request?.length
|
|
1066
|
-
});
|
|
1067
|
-
if (app.event.request?.length) {
|
|
1068
|
-
fnLiteral += "try{";
|
|
1069
|
-
for (let i = 0; i < app.event.request.length; i++) {
|
|
1070
|
-
const hook = app.event.request[i], withReturn = hasReturn(hook), maybeAsync = isAsync(hook), endUnit = reporter.resolveChild(app.event.request[i].fn.name);
|
|
1071
|
-
withReturn ? (fnLiteral += `re=mapEarlyResponse(${maybeAsync ? "await " : ""}onRequest[${i}](c),c.set)
|
|
1072
|
-
`, endUnit("re"), fnLiteral += `if(re!==undefined)return re
|
|
1073
|
-
`) : (fnLiteral += `${maybeAsync ? "await " : ""}onRequest[${i}](c)
|
|
1074
|
-
`, endUnit());
|
|
1075
|
-
}
|
|
1076
|
-
fnLiteral += "}catch(error){return app.handleError(c,error,false)}";
|
|
1077
|
-
}
|
|
1078
|
-
return reporter.resolve(), fnLiteral;
|
|
1079
|
-
}, createHoc = (app, fnName = "map") => {
|
|
1080
|
-
const hoc = app.extender.higherOrderFunctions;
|
|
1081
|
-
if (!hoc.length) return "return " + fnName;
|
|
1082
|
-
const adapter = app["~adapter"].composeGeneralHandler;
|
|
1083
|
-
let handler = fnName;
|
|
1084
|
-
for (let i = 0; i < hoc.length; i++)
|
|
1085
|
-
handler = `hoc[${i}](${handler},${adapter.parameters})`;
|
|
1086
|
-
return `return function hocMap(${adapter.parameters}){return ${handler}(${adapter.parameters})}`;
|
|
1087
|
-
}, composeGeneralHandler = (app) => {
|
|
1088
|
-
const adapter = app["~adapter"].composeGeneralHandler;
|
|
1089
|
-
app.router.http.build();
|
|
1090
|
-
const isWebstandard = app["~adapter"].isWebStandard, hasTrace = app.event.trace?.length;
|
|
1091
|
-
let fnLiteral = "";
|
|
1092
|
-
const router = app.router;
|
|
1093
|
-
let findDynamicRoute = router.http.root.WS ? "const route=router.find(r.method==='GET'&&r.headers.get('upgrade')==='websocket'?'WS':r.method,p)" : "const route=router.find(r.method,p)";
|
|
1094
|
-
findDynamicRoute += router.http.root.ALL ? `??router.find('ALL',p)
|
|
1095
|
-
` : `
|
|
1096
|
-
`, isWebstandard && (findDynamicRoute += 'if(r.method==="HEAD"){const route=router.find("GET",p);if(route){c.params=route.params;const _res=route.store.handler?route.store.handler(c):route.store.compile()(c);if(_res)return Promise.resolve(_res).then((_res)=>{if(!_res.headers)_res.headers=new Headers();return getResponseLength(_res).then((length)=>{_res.headers.set("content-length", length);return new Response(null,{status:_res.status,statusText:_res.statusText,headers:_res.headers});})});}}');
|
|
1097
|
-
let afterResponse = `c.error=notFound
|
|
1098
|
-
`;
|
|
1099
|
-
if (app.event.afterResponse?.length && !app.event.error) {
|
|
1100
|
-
afterResponse = `
|
|
1101
|
-
c.error=notFound
|
|
1102
|
-
`;
|
|
1103
|
-
const prefix = app.event.afterResponse.some(isAsync) ? "async" : "";
|
|
1104
|
-
afterResponse += `
|
|
1105
|
-
${setImmediateFn}(${prefix}()=>{if(c.responseValue instanceof ElysiaCustomStatusResponse) c.set.status=c.responseValue.code
|
|
1106
|
-
`;
|
|
1107
|
-
for (let i = 0; i < app.event.afterResponse.length; i++) {
|
|
1108
|
-
const fn2 = app.event.afterResponse[i].fn;
|
|
1109
|
-
afterResponse += `
|
|
1110
|
-
${isAsyncName(fn2) ? "await " : ""}afterResponse[${i}](c)
|
|
1111
|
-
`;
|
|
1112
|
-
}
|
|
1113
|
-
afterResponse += `})
|
|
1114
|
-
`;
|
|
1115
|
-
}
|
|
1116
|
-
app.inference.query && (afterResponse += `
|
|
1117
|
-
if(c.qi===-1){c.query={}}else{c.query=parseQueryFromURL(c.url,c.qi+1)}`);
|
|
1118
|
-
const error404 = adapter.error404(
|
|
1119
|
-
!!app.event.request?.length,
|
|
1120
|
-
!!app.event.error?.length,
|
|
1121
|
-
afterResponse
|
|
1122
|
-
);
|
|
1123
|
-
findDynamicRoute += error404.code, findDynamicRoute += `
|
|
1124
|
-
c.params=route.params
|
|
1125
|
-
if(route.store.handler)return route.store.handler(c)
|
|
1126
|
-
return route.store.compile()(c)
|
|
1127
|
-
`;
|
|
1128
|
-
let switchMap = "";
|
|
1129
|
-
for (const [path, methods] of Object.entries(router.static)) {
|
|
1130
|
-
switchMap += `case'${path}':`, app.config.strictPath !== !0 && (switchMap += `case'${(0, import_utils.getLoosePath)(path)}':`);
|
|
1131
|
-
const encoded = (0, import_utils.encodePath)(path);
|
|
1132
|
-
path !== encoded && (switchMap += `case'${encoded}':`), switchMap += "switch(r.method){", ("GET" in methods || "WS" in methods) && (switchMap += "case 'GET':", "WS" in methods && (switchMap += `if(r.headers.get('upgrade')==='websocket')return ht[${methods.WS}].composed(c)
|
|
1133
|
-
`, "GET" in methods || ("ALL" in methods ? switchMap += `return ht[${methods.ALL}].composed(c)
|
|
1134
|
-
` : switchMap += `break map
|
|
1135
|
-
`)), "GET" in methods && (switchMap += `return ht[${methods.GET}].composed(c)
|
|
1136
|
-
`)), isWebstandard && ("GET" in methods || "ALL" in methods) && !("HEAD" in methods) && (switchMap += `case 'HEAD':return Promise.resolve(ht[${methods.GET ?? methods.ALL}].composed(c)).then(_ht=>getResponseLength(_ht).then((length)=>{_ht.headers.set('content-length', length)
|
|
1137
|
-
return new Response(null,{status:_ht.status,statusText:_ht.statusText,headers:_ht.headers})
|
|
1138
|
-
}))
|
|
1139
|
-
`);
|
|
1140
|
-
for (const [method, index] of Object.entries(methods))
|
|
1141
|
-
method === "ALL" || method === "GET" || method === "WS" || (switchMap += `case '${method}':return ht[${index}].composed(c)
|
|
1142
|
-
`);
|
|
1143
|
-
"ALL" in methods ? switchMap += `default:return ht[${methods.ALL}].composed(c)
|
|
1144
|
-
` : switchMap += `default:break map
|
|
1145
|
-
`, switchMap += "}";
|
|
1146
|
-
}
|
|
1147
|
-
const maybeAsync = !!app.event.request?.some(isAsync), adapterVariables = adapter.inject ? Object.keys(adapter.inject).join(",") + "," : "";
|
|
1148
|
-
fnLiteral += `
|
|
1149
|
-
const {app,mapEarlyResponse,NotFoundError,randomId,handleError,status,redirect,getResponseLength,ElysiaCustomStatusResponse,` + // @ts-ignore
|
|
1150
|
-
allocateIf("parseQueryFromURL,", app.inference.query) + allocateIf("ELYSIA_TRACE,", hasTrace) + allocateIf("ELYSIA_REQUEST_ID,", hasTrace) + adapterVariables + `}=data
|
|
1151
|
-
const store=app.singleton.store
|
|
1152
|
-
const decorator=app.singleton.decorator
|
|
1153
|
-
const staticRouter=app.router.static.http
|
|
1154
|
-
const ht=app.router.history
|
|
1155
|
-
const router=app.router.http
|
|
1156
|
-
const trace=app.event.trace?.map(x=>typeof x==='function'?x:x.fn)??[]
|
|
1157
|
-
const notFound=new NotFoundError()
|
|
1158
|
-
const hoc=app.extender.higherOrderFunctions.map(x=>x.fn)
|
|
1159
|
-
`, app.event.request?.length && (fnLiteral += `const onRequest=app.event.request.map(x=>x.fn)
|
|
1160
|
-
`), app.event.afterResponse?.length && (fnLiteral += `const afterResponse=app.event.afterResponse.map(x=>x.fn)
|
|
1161
|
-
`), fnLiteral += error404.declare, app.event.trace?.length && (fnLiteral += "const " + app.event.trace.map((_, i) => `tr${i}=app.event.trace[${i}].fn`).join(",") + `
|
|
1162
|
-
`), fnLiteral += `${maybeAsync ? "async " : ""}function map(${adapter.parameters}){`, app.event.request?.length && (fnLiteral += `let re
|
|
1163
|
-
`), fnLiteral += adapter.createContext(app), app.event.trace?.length && (fnLiteral += "c[ELYSIA_TRACE]=[" + app.event.trace.map((_, i) => `tr${i}(c)`).join(",") + `]
|
|
1164
|
-
`), fnLiteral += createOnRequestHandler(app), switchMap && (fnLiteral += `
|
|
1165
|
-
map: switch(p){
|
|
1166
|
-
` + switchMap + "}"), fnLiteral += findDynamicRoute + `}
|
|
1167
|
-
` + createHoc(app);
|
|
1168
|
-
const handleError = composeErrorHandler(app);
|
|
1169
|
-
app.handleError = handleError;
|
|
1170
|
-
const fn = Function(
|
|
1171
|
-
"data",
|
|
1172
|
-
`"use strict";
|
|
1173
|
-
` + fnLiteral
|
|
1174
|
-
)({
|
|
1175
|
-
app,
|
|
1176
|
-
mapEarlyResponse: app["~adapter"].handler.mapEarlyResponse,
|
|
1177
|
-
NotFoundError: import_error2.NotFoundError,
|
|
1178
|
-
randomId: import_utils.randomId,
|
|
1179
|
-
handleError,
|
|
1180
|
-
status: import_error.status,
|
|
1181
|
-
redirect: import_utils.redirect,
|
|
1182
|
-
getResponseLength: import_utils.getResponseLength,
|
|
1183
|
-
ElysiaCustomStatusResponse: import_error2.ElysiaCustomStatusResponse,
|
|
1184
|
-
// @ts-ignore
|
|
1185
|
-
parseQueryFromURL: app.inference.query ? import_parse_query.parseQueryFromURL : void 0,
|
|
1186
|
-
ELYSIA_TRACE: hasTrace ? import_trace.ELYSIA_TRACE : void 0,
|
|
1187
|
-
ELYSIA_REQUEST_ID: hasTrace ? import_utils.ELYSIA_REQUEST_ID : void 0,
|
|
1188
|
-
...adapter.inject
|
|
1189
|
-
});
|
|
1190
|
-
return import_utils2.isBun && Bun.gc(!1), fn;
|
|
1191
|
-
}, composeErrorHandler = (app) => {
|
|
1192
|
-
const hooks = app.event;
|
|
1193
|
-
let fnLiteral = "";
|
|
1194
|
-
const adapter = app["~adapter"].composeError, adapterVariables = adapter.inject ? Object.keys(adapter.inject).join(",") + "," : "", hasTrace = !!app.event.trace?.length;
|
|
1195
|
-
fnLiteral += "const {mapResponse,ERROR_CODE,ElysiaCustomStatusResponse,ValidationError,TransformDecodeError," + allocateIf("onError,", app.event.error) + allocateIf("afterResponse,", app.event.afterResponse) + allocateIf("trace,", app.event.trace) + allocateIf("onMapResponse,", app.event.mapResponse) + allocateIf("ELYSIA_TRACE,", hasTrace) + allocateIf("ELYSIA_REQUEST_ID,", hasTrace) + adapterVariables + `}=inject
|
|
1196
|
-
`, fnLiteral += "return async function(context,error,skipGlobal){", fnLiteral += "", hasTrace && (fnLiteral += `const id=context[ELYSIA_REQUEST_ID]
|
|
1197
|
-
`);
|
|
1198
|
-
const report = createReport({
|
|
1199
|
-
context: "context",
|
|
1200
|
-
trace: hooks.trace,
|
|
1201
|
-
addFn: (word) => {
|
|
1202
|
-
fnLiteral += word;
|
|
1203
|
-
}
|
|
1204
|
-
}), afterResponse = () => {
|
|
1205
|
-
if (!hooks.afterResponse?.length && !hasTrace) return "";
|
|
1206
|
-
let afterResponse2 = "";
|
|
1207
|
-
const prefix = hooks.afterResponse?.some(isAsync) ? "async" : "";
|
|
1208
|
-
afterResponse2 += `
|
|
1209
|
-
${setImmediateFn}(${prefix}()=>{`;
|
|
1210
|
-
const reporter = createReport({
|
|
1211
|
-
context: "context",
|
|
1212
|
-
trace: hooks.trace,
|
|
1213
|
-
addFn: (word) => {
|
|
1214
|
-
afterResponse2 += word;
|
|
1215
|
-
}
|
|
1216
|
-
})("afterResponse", {
|
|
1217
|
-
total: hooks.afterResponse?.length,
|
|
1218
|
-
name: "context"
|
|
1219
|
-
});
|
|
1220
|
-
if (hooks.afterResponse?.length && hooks.afterResponse)
|
|
1221
|
-
for (let i = 0; i < hooks.afterResponse.length; i++) {
|
|
1222
|
-
const fn = hooks.afterResponse[i].fn, endUnit = reporter.resolveChild(fn.name);
|
|
1223
|
-
afterResponse2 += `
|
|
1224
|
-
${isAsyncName(fn) ? "await " : ""}afterResponse[${i}](context)
|
|
1225
|
-
`, endUnit();
|
|
1226
|
-
}
|
|
1227
|
-
return reporter.resolve(), afterResponse2 += `})
|
|
1228
|
-
`, afterResponse2;
|
|
1229
|
-
};
|
|
1230
|
-
fnLiteral += `const set=context.set
|
|
1231
|
-
let _r
|
|
1232
|
-
if(!context.code)context.code=error.code??error[ERROR_CODE]
|
|
1233
|
-
if(!(context.error instanceof Error))context.error=error
|
|
1234
|
-
if(error instanceof ElysiaCustomStatusResponse){set.status=error.status=error.code
|
|
1235
|
-
error.message=error.response}`, adapter.declare && (fnLiteral += adapter.declare);
|
|
1236
|
-
const saveResponse = hasTrace || hooks.afterResponse?.length ? "context.response = " : "";
|
|
1237
|
-
if (fnLiteral += `if(typeof error?.toResponse==='function'&&!(error instanceof ValidationError)&&!(error instanceof TransformDecodeError)){try{let raw=error.toResponse()
|
|
1238
|
-
if(typeof raw?.then==='function')raw=await raw
|
|
1239
|
-
if(raw instanceof Response)set.status=raw.status
|
|
1240
|
-
context.response=context.responseValue=raw
|
|
1241
|
-
}catch(toResponseError){
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1244
|
-
`, app.event.error)
|
|
1245
|
-
for (let i = 0; i < app.event.error.length; i++) {
|
|
1246
|
-
const handler = app.event.error[i], response = `${isAsync(handler) ? "await " : ""}onError[${i}](context)
|
|
1247
|
-
`;
|
|
1248
|
-
if (fnLiteral += "if(skipGlobal!==true&&!context.response){", hasReturn(handler)) {
|
|
1249
|
-
fnLiteral += `_r=${response}
|
|
1250
|
-
if(_r!==undefined){if(_r instanceof Response){` + afterResponse() + `return mapResponse(_r,set${adapter.mapResponseContext})}if(_r instanceof ElysiaCustomStatusResponse){error.status=error.code
|
|
1251
|
-
error.message=error.response}if(set.status===200||!set.status)set.status=error.status
|
|
1252
|
-
`;
|
|
1253
|
-
const mapResponseReporter2 = report("mapResponse", {
|
|
1254
|
-
total: hooks.mapResponse?.length,
|
|
1255
|
-
name: "context"
|
|
1256
|
-
});
|
|
1257
|
-
if (hooks.mapResponse?.length)
|
|
1258
|
-
for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {
|
|
1259
|
-
const mapResponse = hooks.mapResponse[i2], endUnit = mapResponseReporter2.resolveChild(
|
|
1260
|
-
mapResponse.fn.name
|
|
1261
|
-
);
|
|
1262
|
-
fnLiteral += `context.response=context.responseValue=_r
|
|
1263
|
-
_r=${isAsyncName(mapResponse) ? "await " : ""}onMapResponse[${i2}](context)
|
|
1264
|
-
`, endUnit();
|
|
1265
|
-
}
|
|
1266
|
-
mapResponseReporter2.resolve(), fnLiteral += afterResponse() + `return mapResponse(${saveResponse}_r,set${adapter.mapResponseContext})}`;
|
|
1267
|
-
} else fnLiteral += response;
|
|
1268
|
-
fnLiteral += "}";
|
|
1269
|
-
}
|
|
1270
|
-
fnLiteral += `if(error instanceof ValidationError||error instanceof TransformDecodeError){
|
|
1271
|
-
if(error.error)error=error.error
|
|
1272
|
-
set.status=error.status??422
|
|
1273
|
-
` + afterResponse() + adapter.validationError + `
|
|
1274
|
-
}
|
|
1275
|
-
`, fnLiteral += "if(!context.response&&error instanceof Error){" + afterResponse() + adapter.unknownError + `
|
|
1276
|
-
}`;
|
|
1277
|
-
const mapResponseReporter = report("mapResponse", {
|
|
1278
|
-
total: hooks.mapResponse?.length,
|
|
1279
|
-
name: "context"
|
|
1280
|
-
});
|
|
1281
|
-
if (fnLiteral += `
|
|
1282
|
-
if(!context.response)context.response=context.responseValue=error.message??error
|
|
1283
|
-
`, hooks.mapResponse?.length) {
|
|
1284
|
-
fnLiteral += `let mr
|
|
1285
|
-
`;
|
|
1286
|
-
for (let i = 0; i < hooks.mapResponse.length; i++) {
|
|
1287
|
-
const mapResponse = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(
|
|
1288
|
-
mapResponse.fn.name
|
|
1289
|
-
);
|
|
1290
|
-
fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse) ? "await " : ""}onMapResponse[${i}](context)
|
|
1291
|
-
if(mr!==undefined)error=context.response=context.responseValue=mr}`, endUnit();
|
|
1292
|
-
}
|
|
1293
|
-
}
|
|
1294
|
-
mapResponseReporter.resolve(), fnLiteral += afterResponse() + `
|
|
1295
|
-
return mapResponse(${saveResponse}error,set${adapter.mapResponseContext})}`;
|
|
1296
|
-
const mapFn = (x) => typeof x == "function" ? x : x.fn;
|
|
1297
|
-
return Function(
|
|
1298
|
-
"inject",
|
|
1299
|
-
`"use strict";
|
|
1300
|
-
` + fnLiteral
|
|
1301
|
-
)({
|
|
1302
|
-
mapResponse: app["~adapter"].handler.mapResponse,
|
|
1303
|
-
ERROR_CODE: import_error2.ERROR_CODE,
|
|
1304
|
-
ElysiaCustomStatusResponse: import_error2.ElysiaCustomStatusResponse,
|
|
1305
|
-
ValidationError: import_error2.ValidationError,
|
|
1306
|
-
TransformDecodeError: import_value.TransformDecodeError,
|
|
1307
|
-
onError: app.event.error?.map(mapFn),
|
|
1308
|
-
afterResponse: app.event.afterResponse?.map(mapFn),
|
|
1309
|
-
trace: app.event.trace?.map(mapFn),
|
|
1310
|
-
onMapResponse: app.event.mapResponse?.map(mapFn),
|
|
1311
|
-
ELYSIA_TRACE: hasTrace ? import_trace.ELYSIA_TRACE : void 0,
|
|
1312
|
-
ELYSIA_REQUEST_ID: hasTrace ? import_utils.ELYSIA_REQUEST_ID : void 0,
|
|
1313
|
-
...adapter.inject
|
|
1314
|
-
});
|
|
1315
|
-
};
|
|
1316
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
1317
|
-
0 && (module.exports = {
|
|
1318
|
-
composeErrorHandler,
|
|
1319
|
-
composeGeneralHandler,
|
|
1320
|
-
composeHandler,
|
|
1321
|
-
createHoc,
|
|
1322
|
-
createOnRequestHandler,
|
|
1323
|
-
isAsync
|
|
1324
|
-
});
|