Skip to content

Elysia

PropertyDescription
server-
MethodDescription
all-
as-
compileForce all route handlers to compile immediately (sets precompile: true on the config and triggers a fresh build of the fetch handler).
decorateDefine custom property to Context accessible for all handler.
deleteRegister handler for path with method [DELETE]
derive-
getRegister handler for path with method [GET]
group-
guardApply a hook and schema to every route defined after it on this instance.
handler-
has-
headRegister handler for path with method [HEAD]
headers-
listen-
macroDeclare a custom route property: applying it on a route or guard folds the definition’s schema, lifecycle hooks, and derive result into that route
mapDerive-
mapResponse-
methodRegister handler for path with custom method
model-
mount-
onAfterHandle-
onAfterResponse-
onBeforeHandle-
onError-
onParse-
onRequest-
onStartCalled after server is ready for serving
onStopCalled after server stop serving request
onTransform-
optionsRegister handler for path with method [OPTIONS]
parser-
patchRegister handler for path with method [PATCH]
postRegister handler for path with method [POST]
putRegister handler for path with method [PUT]
queryRegister handler for path with method [QUERY]
Ref-
stateAssign global mutable state accessible for all handler.
stopStop the underlying server (if any), then run every onStop handler
trace-
useMerge a plugin instance
wrapAdd a higher order function over Elysia.fetch
wsRegister a WebSocket route as (path, options), (path, handler), or (path, options, handler). Requires .use(websocket()) from elysia/websocket.

Defined in: elysia/dist/base.d.ts:44

Type ParameterDefault type
BasePath extends string""
Scope extends EventScope"local"
Singleton extends SingletonBaseDefaultSingleton
Definitions extends DefinitionBaseobject
Metadata extends MetadataBaseDefaultMetadata
Routes extends RouteBaseobject
Ephemeral extends EphemeralTypeDefaultEphemeral
Volatile extends EphemeralTypeDefaultEphemeral
new Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>(config?): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:127

ParameterType
config?ElysiaConfig<BasePath, Scope>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>

optional server?: Server;

Defined in: elysia/dist/base.d.ts:94

get fetch(): (request) => MaybePromise<Response>;

Defined in: elysia/dist/base.d.ts:1047

(request) => MaybePromise<Response>


get handle(): (url, options?) => Promise<Response>;

Defined in: elysia/dist/base.d.ts:1049

(url, options?) => Promise<Response>


get history(): readonly HistoryEntry[];

Defined in: elysia/dist/base.d.ts:99

readonly HistoryEntry[]


get models(): Definitions["typebox"];

Defined in: elysia/dist/base.d.ts:830

Registered reusable models (via .model()), keyed by name.

Definitions["typebox"]


get modules(): Promise<void>;

Defined in: elysia/dist/base.d.ts:813

Promise<void>


get pending(): boolean;

Defined in: elysia/dist/base.d.ts:814

boolean


get routes(): PublicRoute[];

Defined in: elysia/dist/base.d.ts:134

Every registered route with its merged hooks. Development shares a frozen cache. Production rebuilds the list on every read so its metadata can be released after startup.

PublicRoute[]

all<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): this;

Defined in: elysia/dist/base.d.ts:1011

Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>-
Schema extends IntersectIfObjectSchema<object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"], "", false>, "", false> ? UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>> : object, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

this

all<Path, Schema, Decorator, Handle>(path, fn): this;

Defined in: elysia/dist/base.d.ts:1014

Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"], "", false>, "", false> ? UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>> : object, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

this


as(type): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: Ephemeral["derive"] & Volatile["derive"];
error: [...Ephemeral["error"][], ...Volatile["error"][]];
response: UnionResponseStatus<Ephemeral["response"], Volatile["response"]>;
schema: MergeSchema<Volatile["schema"], Ephemeral["schema"]>;
schemas: Ephemeral["schemas"] & Volatile["schemas"];
}, DefaultEphemeral>;

Defined in: elysia/dist/base.d.ts:436

ParameterType
type"plugin"

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: Ephemeral["derive"] & Volatile["derive"]; error: [...Ephemeral["error"][], ...Volatile["error"][]]; response: UnionResponseStatus<Ephemeral["response"], Volatile["response"]>; schema: MergeSchema<Volatile["schema"], Ephemeral["schema"]>; schemas: Ephemeral["schemas"] & Volatile["schemas"]; }, DefaultEphemeral>

as(type): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"] & Ephemeral["derive"] & Volatile["derive"];
store: Singleton["store"];
}, {
error: [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]];
typebox: Definitions["typebox"];
}, {
macro: Metadata["macro"];
macroFn: Metadata["macroFn"];
parser: Metadata["parser"];
response: UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>;
schema: MergeSchema<MergeSchema<Volatile["schema"], Ephemeral["schema"]>, Metadata["schema"]>;
schemas: Metadata["schemas"] & Ephemeral["schemas"] & Volatile["schemas"];
}, Routes, DefaultEphemeral, DefaultEphemeral>;

Defined in: elysia/dist/base.d.ts:443

ParameterType
type"global"

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"] & Ephemeral["derive"] & Volatile["derive"]; store: Singleton["store"]; }, { error: [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]]; typebox: Definitions["typebox"]; }, { macro: Metadata["macro"]; macroFn: Metadata["macroFn"]; parser: Metadata["parser"]; response: UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>; schema: MergeSchema<MergeSchema<Volatile["schema"], Ephemeral["schema"]>, Metadata["schema"]>; schemas: Metadata["schemas"] & Ephemeral["schemas"] & Volatile["schemas"]; }, Routes, DefaultEphemeral, DefaultEphemeral>


compile(): this;

Defined in: elysia/dist/base.d.ts:1043

Force all route handlers to compile immediately (sets precompile: true on the config and triggers a fresh build of the fetch handler).

this


decorate<Name, Value>(name, value): Elysia<BasePath, Scope, {
decorator: { [K in string | number | symbol]: (Singleton["decorator"] & { [k in string]: Value })[K] };
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:147

Define custom property to Context accessible for all handler.


Type Parameter
Name extends string
Value
ParameterType
nameName
valueValue

Elysia<BasePath, Scope, { decorator: { [K in string | number | symbol]: (Singleton[“decorator”] & { [k in string]: Value })[K] }; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())
decorate<NewDecorators>(decorators): Elysia<BasePath, Scope, {
decorator: { [K in string | number | symbol]: (Singleton["decorator"] & NewDecorators)[K] };
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:152

Define custom property to Context accessible for all handler.


Type Parameter
NewDecorators extends Record<string, unknown>
ParameterType
decoratorsNewDecorators

Elysia<BasePath, Scope, { decorator: { [K in string | number | symbol]: (Singleton[“decorator”] & NewDecorators)[K] }; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())
decorate<NewDecorators>(mapper): Elysia<BasePath, Scope, {
decorator: NewDecorators;
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:157

Define custom property to Context accessible for all handler.


Type Parameter
NewDecorators extends Record<string, unknown>
ParameterType
mapper(decorators) => NewDecorators

Elysia<BasePath, Scope, { decorator: NewDecorators; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())
decorate<Name, Value>(
type,
name,
value
): Elysia<BasePath, Scope, {
decorator: { [K in string | number | symbol]: (Singleton["decorator"] & { [k in string]: Value })[K] };
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:162

Define custom property to Context accessible for all handler.


Type Parameter
Name extends string
Value
ParameterType
type"append"
nameName
valueValue

Elysia<BasePath, Scope, { decorator: { [K in string | number | symbol]: (Singleton[“decorator”] & { [k in string]: Value })[K] }; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())
decorate<Name, Value>(
type,
name,
value
): Elysia<BasePath, Scope, {
decorator: { [K in string | number | symbol]: (Omit<Singleton["decorator"], Name> & { [k in string]: Value })[K] };
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:167

Define custom property to Context accessible for all handler.


Type Parameter
Name extends string
Value
ParameterType
type"override"
nameName
valueValue

Elysia<BasePath, Scope, { decorator: { [K in string | number | symbol]: (Omit<Singleton[“decorator”], Name> & { [k in string]: Value })[K] }; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())
decorate<NewDecorators>(type, decorators): Elysia<BasePath, Scope, {
decorator: { [K in string | number | symbol]: (Singleton["decorator"] & NewDecorators)[K] };
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:172

Define custom property to Context accessible for all handler.


Type Parameter
NewDecorators extends Record<string, unknown>
ParameterType
type"append"
decoratorsNewDecorators

Elysia<BasePath, Scope, { decorator: { [K in string | number | symbol]: (Singleton[“decorator”] & NewDecorators)[K] }; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())
decorate<NewDecorators>(type, decorators): Elysia<BasePath, Scope, {
decorator: { [K in string | number | symbol]: (Omit<Singleton["decorator"], keyof NewDecorators> & NewDecorators)[K] };
derive: Singleton["derive"];
store: Singleton["store"];
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:177

Define custom property to Context accessible for all handler.


Type Parameter
NewDecorators extends Record<string, unknown>
ParameterType
type"override"
decoratorsNewDecorators

Elysia<BasePath, Scope, { decorator: { [K in string | number | symbol]: (Omit<Singleton[“decorator”], keyof NewDecorators> & NewDecorators)[K] }; derive: Singleton["derive"]; store: Singleton["store"]; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.decorate('getDate', () => Date.now())
.get('/', ({ getDate }) => getDate())

delete<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "delete", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:926

Register handler for path with method [DELETE]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "delete", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.delete('/', () => 'hi')
.delete('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
delete<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "delete", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:929

Register handler for path with method [DELETE]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "delete", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.delete('/', () => 'hi')
.delete('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

derive<Derivative>(transform): LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:278

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
transform(context) => MaybePromise<Derivative>

LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>

derive<Derivative>(scope, transform): LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:279

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scope"local"
transform(context) => MaybePromise<Derivative>

LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>

derive<Derivative>(scope, transform): PluginHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:280

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scope"plugin"
transform(context) => MaybePromise<Derivative>

PluginHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>

derive<Derivative>(scope, transform): GlobalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:281

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scope"global"
transform(context) => MaybePromise<Derivative>

GlobalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>

derive<As, Derivative>(options, transform): ScopedHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:283

Type Parameter
As extends "global" | "local" | "scoped"
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
options{ as: As; }
options.asAs
transform(context) => MaybePromise<Derivative>

ScopedHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>

derive<HookScope, Derivative>(scope, transform): ScopedHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:286

Type Parameter
HookScope extends EventScope
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scopeHookScope
transform(context) => MaybePromise<Derivative>

ScopedHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>


get<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "get", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:846

Register handler for path with method [GET]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…) | MaybePromise<InlineResponse>-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "get", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.get('/', () => 'hi')
.get('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
get<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "get", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:849

Register handler for path with method [GET]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "get", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.get('/', () => 'hi')
.get('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

group<Prefix, NewElysia>(prefix, run): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:602

Type Parameter
Prefix extends string
NewElysia extends AnyElysia
ParameterType
prefixPrefix
run(group) => NewElysia

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>

group<Prefix, Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle, NewElysia>(
prefix,
schema,
run
): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:610

Type Parameter
Prefix extends string
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Prefix>> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<JoinPath<BasePath, Prefix>> : object extends Input ? ResolvePath<JoinPath<BasePath, Prefix>> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<JoinPath<BasePath, Prefix>> : object extends Input ? ResolvePath<JoinPath<BasePath, Prefix>> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
NewElysia extends AnyElysia
ParameterType
prefixPrefix
schemaInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>
run(group) => NewElysia

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>

group<Prefix, Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle, NewElysia>(
prefix,
schema,
run
): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:626

Type Parameter
Prefix extends string
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Prefix>> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<JoinPath<BasePath, Prefix>> : object extends Input ? ResolvePath<JoinPath<BasePath, Prefix>> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<JoinPath<BasePath, Prefix>> : object extends Input ? ResolvePath<JoinPath<BasePath, Prefix>> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
NewElysia extends AnyElysia
ParameterType
prefixPrefix
schemaInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>
run(group) => NewElysia

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>


guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(hook): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"] & MacroContext["derive"];
error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]];
response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: Volatile["schema"];
schemas: Volatile["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext;
}>;

Defined in: elysia/dist/base.d.ts:470

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"] & MacroContext["derive"]; error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]; response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: Volatile["schema"]; schemas: Volatile["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext; }>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(hook): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"] & MacroContext["derive"];
error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]];
response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Volatile["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Volatile["schema"]>;
schemas: Volatile["schemas"] & MacroContext;
}>;

Defined in: elysia/dist/base.d.ts:481

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"] & MacroContext["derive"]; error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]; response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Volatile["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Volatile["schema"]>; schemas: Volatile["schemas"] & MacroContext; }>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle, NewElysia>(hook, run): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:490

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
NewElysia extends AnyElysia
ParameterType
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>
run(group) => NewElysia

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle, NewElysia>(hook, run): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:506

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
NewElysia extends AnyElysia
ParameterType
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>
run(group) => NewElysia

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes & NewElysia["~Routes"], Ephemeral, Volatile>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(scope, hook): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"] & MacroContext["derive"];
error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]];
response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: Volatile["schema"];
schemas: Volatile["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext;
}>;

Defined in: elysia/dist/base.d.ts:532

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
scope"local"
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"] & MacroContext["derive"]; error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]; response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: Volatile["schema"]; schemas: Volatile["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext; }>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(scope, hook): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"] & MacroContext["derive"];
error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]];
response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Volatile["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Volatile["schema"]>;
schemas: Volatile["schemas"] & MacroContext;
}>;

Defined in: elysia/dist/base.d.ts:543

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
scope"local"
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"] & MacroContext["derive"]; error: [...Volatile["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]; response: UnionResponseStatus<UnionResponseStatus<Volatile["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Volatile["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Volatile["schema"]>; schemas: Volatile["schemas"] & MacroContext; }>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(scope, hook): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: Ephemeral["derive"] & MacroContext["derive"];
error: [...Ephemeral["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]];
response: UnionResponseStatus<UnionResponseStatus<Ephemeral["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: Ephemeral["schema"];
schemas: Ephemeral["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext;
}, Volatile>;

Defined in: elysia/dist/base.d.ts:552

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
scope"plugin"
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: Ephemeral["derive"] & MacroContext["derive"]; error: [...Ephemeral["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]; response: UnionResponseStatus<UnionResponseStatus<Ephemeral["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: Ephemeral["schema"]; schemas: Ephemeral["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext; }, Volatile>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(scope, hook): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: Ephemeral["derive"] & MacroContext["derive"];
error: [...Ephemeral["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]];
response: UnionResponseStatus<UnionResponseStatus<Ephemeral["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Ephemeral["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Ephemeral["schema"]>;
schemas: Ephemeral["schemas"] & MacroContext;
}, Volatile>;

Defined in: elysia/dist/base.d.ts:563

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
scope"plugin"
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: Ephemeral["derive"] & MacroContext["derive"]; error: [...Ephemeral["error"][], ...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]; response: UnionResponseStatus<UnionResponseStatus<Ephemeral["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Ephemeral["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Ephemeral["schema"]>; schemas: Ephemeral["schemas"] & MacroContext; }, Volatile>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(scope, hook): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"] & MacroContext["derive"];
store: Singleton["store"];
}, WithErrorEntries<Definitions, [...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]>, {
macro: Metadata["macro"];
macroFn: Metadata["macroFn"];
parser: Metadata["parser"];
response: UnionResponseStatus<UnionResponseStatus<Metadata["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: Metadata["schema"];
schemas: Metadata["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext;
}, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:572

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
scope"global"
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"] & MacroContext["derive"]; store: Singleton["store"]; }, WithErrorEntries<Definitions, [...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]>, { macro: Metadata["macro"]; macroFn: Metadata["macroFn"]; parser: Metadata["parser"]; response: UnionResponseStatus<UnionResponseStatus<Metadata["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: Metadata["schema"]; schemas: Metadata["schemas"] & UnwrapRoute<Input, Definitions["typebox"], ""> & MacroContext; }, Routes, Ephemeral, Volatile>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)
guard<Input, Schema, MacroContext, BeforeHandle, AfterHandle, ErrorHandle>(scope, hook): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"] & MacroContext["derive"];
store: Singleton["store"];
}, WithErrorEntries<Definitions, [...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]>, {
macro: Metadata["macro"];
macroFn: Metadata["macroFn"];
parser: Metadata["parser"];
response: UnionResponseStatus<UnionResponseStatus<Metadata["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>;
schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Metadata["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Metadata["schema"]>;
schemas: Metadata["schemas"] & MacroContext;
}, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:588

Apply a hook and schema to every route defined after it on this instance.


Type Parameter
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends | UnwrapRoute<Input, Definitions["typebox"], BasePath> | { body: undefined extends UnwrapBodySchema<Input["body"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["body"] : UnwrapBodySchema<Input["body"], Definitions["typebox"], "output">; cookie: undefined extends UnwrapSchema<Input["cookie"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["cookie"] : UnwrapSchema<Input["cookie"], Definitions["typebox"], "output">; headers: undefined extends UnwrapSchema<Input["headers"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["headers"] : UnwrapSchema<Input["headers"], Definitions["typebox"], "output">; params: IsNever<keyof object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">> extends true ? IsNever<keyof MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["params"]> extends true ? object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["params"] : object extends Input["params"] ? ResolvePath<BasePath> : object extends Input ? ResolvePath<BasePath> : UnwrapSchema<Input["params"], Definitions["typebox"], "output">; query: undefined extends UnwrapSchema<Input["query"], Definitions["typebox"], "output"> ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["query"] : UnwrapSchema<Input["query"], Definitions["typebox"], "output">; response: object extends Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<any[any][k], Definitions[“typebox”]> extends A ? A extends File ? File | ElysiaFile : A : unknown } : unknown ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] & Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & object : MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] : object extends MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>["response"] ? Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…)[(…)], (…)[(…)]> extends A ? A extends File ? (…) | (…) : A : unknown } : unknown : Input["response"] extends string | AnySchema ? object : Input["response"] extends object ? { [k in string | number | symbol]: UnwrapResponseSchema<(…), (…)> extends A ? (…) extends (…) ? (…) : (…) : unknown } : unknown & Omit<MergeSchema<Volatile["schema"], MergeSchema<…[…], …[…]>>["response"], keyof Input["response"] extends string | AnySchema ? object : …[…] extends object ? { [k in (...)]: (...) } : unknown>; } & RouteSchema
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
BeforeHandle extends MaybeArray<OptionalHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
AfterHandle extends MaybeArray<AfterHandler<Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ErrorHandle extends MaybeArray<ErrorHandler<Definitions["error"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, MacroContext>>>
ParameterType
scope"global"
hookInput extends any ? Input : { [K in string | number | symbol]: Input[K] } & object & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"] & MacroContext["derive"]; store: Singleton["store"]; }, WithErrorEntries<Definitions, [...CatchAllEntries<ErrorHandle>[], ...MacroCatchAll<MacroContext["return" & keyof MacroContext]>[]]>, { macro: Metadata["macro"]; macroFn: Metadata["macroFn"]; parser: Metadata["parser"]; response: UnionResponseStatus<UnionResponseStatus<Metadata["response"], ElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle>>, UnionResponseStatus<ElysiaHandlerToResponseSchemaAmbiguous<AfterHandle>, UnionResponseStatus<ErrorHookStatus<ErrorHandle>, WithoutMacroCatch<MacroContext["return" & keyof MacroContext]> & object>>>; schema: object extends Pick<Input, Extract<keyof Input, keyof InputSchema<string>>> ? Metadata["schema"] : MergeSchema<UnwrapRoute<Input, Definitions["typebox"], "">, Metadata["schema"]>; schemas: Metadata["schemas"] & MacroContext; }, Routes, Ephemeral, Volatile>

new Elysia()
.guard({ body: t.Object({ name: t.String() }) })
.post('/', ({ body }) => body)

handler(
index,
immediate?,
route?,
aliases?,
table?
): CompiledHandler;

Defined in: elysia/dist/base.d.ts:1044

ParameterType
indexnumber
immediate?boolean
route?InternalRoute
aliases?StaticMapAliases
table?RouteTable

CompiledHandler


has(plugin): boolean;

Defined in: elysia/dist/base.d.ts:812

ParameterType
pluginAnyElysia

boolean


head<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "head", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:986

Register handler for path with method [HEAD]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "head", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.head('/', () => 'hi')
.head('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
head<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "head", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:989

Register handler for path with method [HEAD]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "head", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.head('/', () => 'hi')
.head('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

headers(headers): this;

Defined in: elysia/dist/base.d.ts:229

ParameterType
headersRecord<string, string>

this


listen(options, callback?): this;

Defined in: elysia/dist/base.d.ts:1050

ParameterType
optionsstring | number | Partial<Options<unknown, string>>
callback?ListenCallback

this


macro<NewMacro, Refs>(macro): Elysia<BasePath, Scope, Singleton, Definitions, {
macro: Metadata["macro"] & Partial<{ [K in string | number | symbol]: { [K in string | number | symbol]: NewMacro[K] extends Function ? any[any] extends (a: Params) => any ? MacroOptionLambda<(...)> extends never ? Params : unknown : boolean : boolean }[K] }>;
macroFn: Metadata["macroFn"] & NewMacro;
parser: Metadata["parser"];
response: Metadata["response"];
schema: Metadata["schema"];
schemas: Metadata["schemas"];
}, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:677

Declare a custom route property: applying it on a route or guard folds the definition’s schema, lifecycle hooks, and derive result into that route

new Elysia()
.macro({
auth: {
headers: t.Object({ authorization: t.String() }),
derive: ({ headers }) => ({ user: headers.authorization })
},
role: (role: 'admin' | 'user') => ({
beforeHandle() { ... }
})
})
.get('/', { auth: true, role: 'admin' }, ({ user }) => user)
Type ParameterDefault type
NewMacro-
Refsobject
ParameterType
macroObjectMacroDefs<NewMacro, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>, Singleton & object, Definitions, Metadata["macro"], Metadata["macroFn"], Refs>

Elysia<BasePath, Scope, Singleton, Definitions, { macro: Metadata["macro"] & Partial<{ [K in string | number | symbol]: { [K in string | number | symbol]: NewMacro[K] extends Function ? any[any] extends (a: Params) => any ? MacroOptionLambda<(…)> extends never ? Params : unknown : boolean : boolean }[K] }>; macroFn: Metadata["macroFn"] & NewMacro; parser: Metadata["parser"]; response: Metadata["response"]; schema: Metadata["schema"]; schemas: Metadata["schemas"]; }, Routes, Ephemeral, Volatile>


mapDerive<Derivative>(transform): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: ExcludeElysiaResponse<Derivative>;
error: Volatile["error"];
response: UnionResponseStatus<Volatile["response"], DeriveResponse<Derivative>>;
schema: Volatile["schema"];
schemas: Volatile["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:287

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
transform(context) => MaybePromise<Derivative>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: ExcludeElysiaResponse<Derivative>; error: Volatile["error"]; response: UnionResponseStatus<Volatile["response"], DeriveResponse<Derivative>>; schema: Volatile["schema"]; schemas: Volatile["schemas"]; }>

mapDerive<Derivative>(scope, transform): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: ExcludeElysiaResponse<Derivative>;
error: Volatile["error"];
response: UnionResponseStatus<Volatile["response"], DeriveResponse<Derivative>>;
schema: Volatile["schema"];
schemas: Volatile["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:294

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scope"local"
transform(context) => MaybePromise<Derivative>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: ExcludeElysiaResponse<Derivative>; error: Volatile["error"]; response: UnionResponseStatus<Volatile["response"], DeriveResponse<Derivative>>; schema: Volatile["schema"]; schemas: Volatile["schemas"]; }>

mapDerive<Derivative>(scope, transform): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: ExcludeElysiaResponse<Derivative>;
error: Ephemeral["error"];
response: UnionResponseStatus<Ephemeral["response"], DeriveResponse<Derivative>>;
schema: Ephemeral["schema"];
schemas: Ephemeral["schemas"];
}, Volatile>;

Defined in: elysia/dist/base.d.ts:301

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scope"plugin"
transform(context) => MaybePromise<Derivative>

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: ExcludeElysiaResponse<Derivative>; error: Ephemeral["error"]; response: UnionResponseStatus<Ephemeral["response"], DeriveResponse<Derivative>>; schema: Ephemeral["schema"]; schemas: Ephemeral["schemas"]; }, Volatile>

mapDerive<Derivative>(scope, transform): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: ExcludeElysiaResponse<Derivative>;
store: Singleton["store"];
}, Definitions, {
macro: Metadata["macro"];
macroFn: Metadata["macroFn"];
parser: Metadata["parser"];
response: UnionResponseStatus<Metadata["response"], DeriveResponse<Derivative>>;
schema: Metadata["schema"];
schemas: Metadata["schemas"];
}, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:308

Type Parameter
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scope"global"
transform(context) => MaybePromise<Derivative>

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: ExcludeElysiaResponse<Derivative>; store: Singleton["store"]; }, Definitions, { macro: Metadata["macro"]; macroFn: Metadata["macroFn"]; parser: Metadata["parser"]; response: UnionResponseStatus<Metadata["response"], DeriveResponse<Derivative>>; schema: Metadata["schema"]; schemas: Metadata["schemas"]; }, Routes, Ephemeral, Volatile>

mapDerive<As, Derivative>(options, transform): ScopedMapDeriveReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:321

Type Parameter
As extends "global" | "local" | "scoped"
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
options{ as: As; }
options.asAs
transform(context) => MaybePromise<Derivative>

ScopedMapDeriveReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>

mapDerive<HookScope, Derivative>(scope, transform): ScopedMapDeriveReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>;

Defined in: elysia/dist/base.d.ts:324

Type Parameter
HookScope extends EventScope
Derivative extends | void | Record<string, unknown> | Error | ElysiaStatus<any, any, any>
ParameterType
scopeHookScope
transform(context) => MaybePromise<Derivative>

ScopedMapDeriveReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, DeriveResponse<Derivative>, ExcludeElysiaResponse<Derivative>>


mapResponse(fn): this;

Defined in: elysia/dist/base.d.ts:334

ParameterType
fnMaybeArray<MapResponse<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>>>

this

mapResponse<As>(options, fn): this;

Defined in: elysia/dist/base.d.ts:336

Type Parameter
As extends "global" | "local" | "scoped"
ParameterType
options{ as: As; }
options.asAs
fnMaybeArray<MapResponse<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, LegacyScope<As>>>

this

mapResponse<HookScope>(scope, fn): this;

Defined in: elysia/dist/base.d.ts:339

Type Parameter
HookScope extends EventScope
ParameterType
scopeHookScope
fnMaybeArray<MapResponse<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, HookScope>>

this


method<Method, Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
method,
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Method, Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:1005

Register handler for path with custom method


Type ParameterDefault type
Method extends HTTPMethod-
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
methodMethod
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Method, Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.method('Elysia', '/', 'hi')
method<Method, Path, Schema, Decorator, Handle>(
method,
path,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Method, Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:1008

Register handler for path with custom method


Type Parameter
Method extends HTTPMethod
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
methodMethod
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Method, Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.method('Elysia', '/', 'hi')

model<Name, Model>(name, model): Elysia<BasePath, Scope, Singleton, {
error: Definitions["error"];
typebox: Definitions["typebox"] & { [name in string]: Model };
}, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:815

Type Parameter
Name extends string
Model extends AnySchema
ParameterType
nameName
modelModel

Elysia<BasePath, Scope, Singleton, { error: Definitions["error"]; typebox: Definitions["typebox"] & { [name in string]: Model }; }, Metadata, Routes, Ephemeral, Volatile>

model<Recorder>(record): Elysia<BasePath, Scope, Singleton, {
error: Definitions["error"];
typebox: Definitions["typebox"] & Recorder;
}, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:819

Type Parameter
Recorder extends Record<string, AnySchema>
ParameterType
recordRecorder

Elysia<BasePath, Scope, Singleton, { error: Definitions["error"]; typebox: Definitions["typebox"] & Recorder; }, Metadata, Routes, Ephemeral, Volatile>

model<NewType>(mapper): Elysia<BasePath, Scope, Singleton, {
error: Definitions["error"];
typebox: { [Name in string | number | symbol]: NewType[Name] extends TRef<Name & string> ? Definitions["typebox"][Name] : NewType[Name] };
}, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:823

Type Parameter
NewType extends Record<string, AnySchema>
ParameterType
mapper(decorators) => NewType

Elysia<BasePath, Scope, Singleton, { error: Definitions["error"]; typebox: { [Name in string | number | symbol]: NewType[Name] extends TRef<Name & string> ? Definitions[“typebox”][Name] : NewType[Name] }; }, Metadata, Routes, Ephemeral, Volatile>


mount(handle): this;

Defined in: elysia/dist/base.d.ts:1037

ParameterType
handle(request) => MaybePromise<Response>

this

mount(path, handle): this;

Defined in: elysia/dist/base.d.ts:1038

ParameterType
pathstring
handle(request) => MaybePromise<Response>

this


onAfterHandle<Handler>(fn): LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:325

Type Parameter
Handler extends MaybeArray<AfterHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>>>
ParameterType
fnHandler

LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onAfterHandle<Handler>(scope, fn): LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:326

Type Parameter
Handler extends MaybeArray<AfterHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>>>
ParameterType
scope"local"
fnHandler

LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onAfterHandle<Handler>(scope, fn): PluginHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:327

Type Parameter
Handler extends MaybeArray<AfterHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, "plugin">>
ParameterType
scope"plugin"
fnHandler

PluginHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onAfterHandle<Handler>(scope, fn): GlobalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:328

Type Parameter
Handler extends MaybeArray<AfterHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, "global">>
ParameterType
scope"global"
fnHandler

GlobalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onAfterHandle<As, Handler>(options, fn): ScopedHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:330

Type Parameter
As extends "global" | "local" | "scoped"
Handler extends MaybeArray<AfterHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, LegacyScope<As>>>
ParameterType
options{ as: As; }
options.asAs
fnHandler

ScopedHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onAfterHandle<HookScope, Handler>(scope, fn): ScopedHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:333

Type Parameter
HookScope extends EventScope
Handler extends MaybeArray<AfterHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, HookScope>>
ParameterType
scopeHookScope
fnHandler

ScopedHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>


onAfterResponse(fn): this;

Defined in: elysia/dist/base.d.ts:340

ParameterType
fnAfterResponseHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>>

this

onAfterResponse<As>(options, fn): this;

Defined in: elysia/dist/base.d.ts:342

Type Parameter
As extends "global" | "local" | "scoped"
ParameterType
options{ as: As; }
options.asAs
fnAfterResponseHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, LegacyScope<As>>

this

onAfterResponse<HookScope>(scope, fn): this;

Defined in: elysia/dist/base.d.ts:345

Type Parameter
HookScope extends EventScope
ParameterType
scopeHookScope
fnAfterResponseHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, HookScope>

this


onBeforeHandle<Handler>(fn): LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:269

Type Parameter
Handler extends MaybeArray<OptionalHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>>>
ParameterType
fnHandler

LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onBeforeHandle<Handler>(scope, fn): LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:270

Type Parameter
Handler extends MaybeArray<OptionalHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>>>
ParameterType
scope"local"
fnHandler

LocalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onBeforeHandle<Handler>(scope, fn): PluginHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:271

Type Parameter
Handler extends MaybeArray<OptionalHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, "plugin">>
ParameterType
scope"plugin"
fnHandler

PluginHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onBeforeHandle<Handler>(scope, fn): GlobalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:272

Type Parameter
Handler extends MaybeArray<OptionalHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, "global">>
ParameterType
scope"global"
fnHandler

GlobalHookReturn<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onBeforeHandle<As, Handler>(options, fn): ScopedHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:274

Type Parameter
As extends "global" | "local" | "scoped"
Handler extends MaybeArray<OptionalHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, LegacyScope<As>>>
ParameterType
options{ as: As; }
options.asAs
fnHandler

ScopedHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>

onBeforeHandle<HookScope, Handler>(scope, fn): ScopedHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>;

Defined in: elysia/dist/base.d.ts:277

Type Parameter
HookScope extends EventScope
Handler extends MaybeArray<OptionalHandler<HookContextSchema<Metadata, Ephemeral, Volatile, BasePath>, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, HookScope>>
ParameterType
scopeHookScope
fnHandler

ScopedHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, ElysiaHandlerToResponseSchemaAmbiguous<Handler>>


onError<Handler>(fn): CatchAllHookReturn<"local", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>;

Defined in: elysia/dist/base.d.ts:346

Type Parameter
Handler extends MaybeArray<ErrorHandler<[...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], { }, Singleton>>
ParameterType
fnHandler

CatchAllHookReturn<"local", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>

onError<E, Fn>(error, fn): Scope extends "local" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"];
error: [...Volatile["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>];
response: Volatile["response"];
schema: Volatile["schema"];
schemas: Volatile["schemas"];
}> : Scope extends "plugin" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: Ephemeral["derive"];
error: [...Ephemeral["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>];
response: Ephemeral["response"];
schema: Ephemeral["schema"];
schemas: Ephemeral["schemas"];
}, Volatile> : Elysia<BasePath, Scope, Singleton, {
error: [...Definitions["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>];
typebox: Definitions["typebox"];
}, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:347

Type Parameter
E extends AnyErrorConstructor & (…args) => Error
Fn extends (context) => unknown
ParameterType
errorE
fnFn

Scope extends "local" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"]; error: [...Volatile["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>]; response: Volatile["response"]; schema: Volatile["schema"]; schemas: Volatile["schemas"]; }> : Scope extends "plugin" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: Ephemeral["derive"]; error: [...Ephemeral["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>]; response: Ephemeral["response"]; schema: Ephemeral["schema"]; schemas: Ephemeral["schemas"]; }, Volatile> : Elysia<BasePath, Scope, Singleton, { error: [...Definitions["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>]; typebox: Definitions["typebox"]; }, Metadata, Routes, Ephemeral, Volatile>

onError<E, Value>(error, value): Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"];
error: [...Volatile["error"][], ErrorDefinitionEntry<E, Value>];
response: Volatile["response"];
schema: Volatile["schema"];
schemas: Volatile["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:367

Type Parameter
E extends AnyErrorConstructor & (…args) => Error
Value
ParameterType
errorE
valueValue

Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"]; error: [...Volatile["error"][], ErrorDefinitionEntry<E, Value>]; response: Volatile["response"]; schema: Volatile["schema"]; schemas: Volatile["schemas"]; }>

onError<Handler>(scope, fn): CatchAllHookReturn<"local", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>;

Defined in: elysia/dist/base.d.ts:374

Type Parameter
Handler extends MaybeArray<ErrorHandler<[...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], { }, Singleton & object>>
ParameterType
scope"local"
fnHandler

CatchAllHookReturn<"local", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>

onError<Handler>(scope, fn): CatchAllHookReturn<"plugin", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>;

Defined in: elysia/dist/base.d.ts:377

Type Parameter
Handler extends MaybeArray<ErrorHandler<[...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], { }, Singleton & object>>
ParameterType
scope"plugin"
fnHandler

CatchAllHookReturn<"plugin", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>

onError<Handler>(scope, fn): CatchAllHookReturn<"global", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>;

Defined in: elysia/dist/base.d.ts:380

Type Parameter
Handler extends MaybeArray<ErrorHandler<[...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], { }, Singleton & object>>
ParameterType
scope"global"
fnHandler

CatchAllHookReturn<"global", BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>

onError<As, Handler>(options, fn): CatchAllHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>;

Defined in: elysia/dist/base.d.ts:384

Type Parameter
As extends "global" | "local" | "scoped"
Handler extends MaybeArray<ErrorHandler<[...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], { }, Singleton & object>>
ParameterType
options{ as: As; }
options.asAs
fnHandler

CatchAllHookReturn<LegacyScope<As>, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>

onError<HookScope, Handler>(scope, fn): CatchAllHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>;

Defined in: elysia/dist/base.d.ts:389

Type Parameter
HookScope extends EventScope
Handler extends MaybeArray<ErrorHandler<[...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], { }, Singleton & object>>
ParameterType
scopeHookScope
fnHandler

CatchAllHookReturn<HookScope, BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Handler>

onError<S, E, Fn>(
scope,
error,
fn
): S extends "global" ? Elysia<BasePath, Scope, Singleton, {
error: [...Definitions["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>];
typebox: Definitions["typebox"];
}, Metadata, Routes, Ephemeral, Volatile> : S extends "plugin" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: Ephemeral["derive"];
error: [...Ephemeral["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>];
response: Ephemeral["response"];
schema: Ephemeral["schema"];
schemas: Ephemeral["schemas"];
}, Volatile> : Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"];
error: [...Volatile["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>];
response: Volatile["response"];
schema: Volatile["schema"];
schemas: Volatile["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:392

Type Parameter
S extends EventScope
E extends AnyErrorConstructor & (…args) => Error
Fn extends (context) => unknown
ParameterType
scopeS
errorE
fnFn

S extends "global" ? Elysia<BasePath, Scope, Singleton, { error: [...Definitions["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>]; typebox: Definitions["typebox"]; }, Metadata, Routes, Ephemeral, Volatile> : S extends "plugin" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: Ephemeral["derive"]; error: [...Ephemeral["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>]; response: Ephemeral["response"]; schema: Ephemeral["schema"]; schemas: Ephemeral["schemas"]; }, Volatile> : Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"]; error: [...Volatile["error"][], ErrorDefinitionEntry<E, ReturnType<Fn>>]; response: Volatile["response"]; schema: Volatile["schema"]; schemas: Volatile["schemas"]; }>

onError<S, E, Value>(
scope,
error,
value
): S extends "global" ? Elysia<BasePath, Scope, Singleton, {
error: [...Definitions["error"][], ErrorDefinitionEntry<E, Value>];
typebox: Definitions["typebox"];
}, Metadata, Routes, Ephemeral, Volatile> : S extends "plugin" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, {
derive: Ephemeral["derive"];
error: [...Ephemeral["error"][], ErrorDefinitionEntry<E, Value>];
response: Ephemeral["response"];
schema: Ephemeral["schema"];
schemas: Ephemeral["schemas"];
}, Volatile> : Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, {
derive: Volatile["derive"];
error: [...Volatile["error"][], ErrorDefinitionEntry<E, Value>];
response: Volatile["response"];
schema: Volatile["schema"];
schemas: Volatile["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:414

Type Parameter
S extends EventScope
E extends AnyErrorConstructor & (…args) => Error
Value
ParameterType
scopeS
errorE
valueValue

S extends "global" ? Elysia<BasePath, Scope, Singleton, { error: [...Definitions["error"][], ErrorDefinitionEntry<E, Value>]; typebox: Definitions["typebox"]; }, Metadata, Routes, Ephemeral, Volatile> : S extends "plugin" ? Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, { derive: Ephemeral["derive"]; error: [...Ephemeral["error"][], ErrorDefinitionEntry<E, Value>]; response: Ephemeral["response"]; schema: Ephemeral["schema"]; schemas: Ephemeral["schemas"]; }, Volatile> : Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, { derive: Volatile["derive"]; error: [...Volatile["error"][], ErrorDefinitionEntry<E, Value>]; response: Volatile["response"]; schema: Volatile["schema"]; schemas: Volatile["schemas"]; }>


onParse(fn): this;

Defined in: elysia/dist/base.d.ts:231

ParameterType
fnMaybeArray<BodyHandler<BasePath extends `${string}/:${string}` | `${string}/*${string}` ? Omit<{ }, "params"> & object : object, HookContextSingleton<Singleton, Ephemeral, Volatile>>>

this

onParse(name): this;

Defined in: elysia/dist/base.d.ts:232

ParameterType
namestring

this

onParse<As>(options, fn): this;

Defined in: elysia/dist/base.d.ts:234

Type Parameter
As extends "global" | "local" | "scoped"
ParameterType
options{ as: As; }
options.asAs
fnMaybeArray<BodyHandler<BasePath extends `${string}/:${string}` | `${string}/*${string}` ? Omit<{ }, "params"> & object : object, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, LegacyScope<As>>>

this

onParse<HookScope>(scope, fn): this;

Defined in: elysia/dist/base.d.ts:237

Type Parameter
HookScope extends EventScope
ParameterType
scopeHookScope
fnMaybeArray<BodyHandler<BasePath extends `${string}/:${string}` | `${string}/*${string}` ? Omit<{ }, "params"> & object : object, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, HookScope>>

this


onRequest(fn): this;

Defined in: elysia/dist/base.d.ts:230

ParameterType
fnMaybeArray<PreHandler<{ }, Singleton>>

this


onStart(handler): this;

Defined in: elysia/dist/base.d.ts:262

Called after server is ready for serving


ParameterType
handlerMaybeArray<GracefulHandler<Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>>>

this

new Elysia()
.onStart(({ server }) => {
console.log(`Running at ${server?.url}`)
})
.listen(3000)

onStop(handler): this;

Defined in: elysia/dist/base.d.ts:1080

Called after server stop serving request


ParameterType
handlerMaybeArray<GracefulHandler<Elysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>>>

this

new Elysia()
.onStop((app) => {
closeDatabase()
})

onTransform(fn): this;

Defined in: elysia/dist/base.d.ts:263

ParameterType
fnMaybeArray<TransformHandler<BasePath extends `${string}/:${string}` | `${string}/*${string}` ? Omit<{ }, "params"> & object : object, HookContextSingleton<Singleton, Ephemeral, Volatile>>>

this

onTransform<As>(options, fn): this;

Defined in: elysia/dist/base.d.ts:265

Type Parameter
As extends "global" | "local" | "scoped"
ParameterType
options{ as: As; }
options.asAs
fnMaybeArray<TransformHandler<BasePath extends `${string}/:${string}` | `${string}/*${string}` ? Omit<{ }, "params"> & object : object, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, LegacyScope<As>>>

this

onTransform<HookScope>(scope, fn): this;

Defined in: elysia/dist/base.d.ts:268

Type Parameter
HookScope extends EventScope
ParameterType
scopeHookScope
fnMaybeArray<TransformHandler<BasePath extends `${string}/:${string}` | `${string}/*${string}` ? Omit<{ }, "params"> & object : object, HookContextSingleton<Singleton, Ephemeral, Volatile>, undefined, HookScope>>

this


options<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "options", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:946

Register handler for path with method [OPTIONS]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "options", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.options('/', () => 'hi')
.options('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
options<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "options", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:949

Register handler for path with method [OPTIONS]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "options", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.options('/', () => 'hi')
.options('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

parser<Name>(name, fn): Elysia<BasePath, Scope, Singleton, Definitions, {
macro: Metadata["macro"];
macroFn: Metadata["macroFn"];
parser: Metadata["parser"] & { [name in string]: BodyHandler<any, any> };
response: Metadata["response"];
schema: Metadata["schema"];
schemas: Metadata["schemas"];
}, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:238

Type Parameter
Name extends string
ParameterType
nameName
fnBodyHandler<MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>, BasePath> & Metadata["schemas"] & Ephemeral["schemas"] & Volatile["schemas"], Singleton & object>

Elysia<BasePath, Scope, Singleton, Definitions, { macro: Metadata["macro"]; macroFn: Metadata["macroFn"]; parser: Metadata["parser"] & { [name in string]: BodyHandler<any, any> }; response: Metadata["response"]; schema: Metadata["schema"]; schemas: Metadata["schemas"]; }, Routes, Ephemeral, Volatile>


patch<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "patch", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:906

Register handler for path with method [PATCH]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "patch", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.patch('/', () => 'hi')
.patch('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
patch<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "patch", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:909

Register handler for path with method [PATCH]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "patch", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.patch('/', () => 'hi')
.patch('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

post<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "post", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:866

Register handler for path with method [POST]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "post", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.post('/', () => 'hi')
.post('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
post<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "post", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:869

Register handler for path with method [POST]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "post", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.post('/', () => 'hi')
.post('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

put<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "put", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:886

Register handler for path with method [PUT]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "put", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.put('/', () => 'hi')
.put('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
put<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "put", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:889

Register handler for path with method [PUT]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "put", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.put('/', () => 'hi')
.put('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

query<Path, Input, Schema, Decorator, MacroContext, Handle, UnknownKey>(
path,
hook,
fn
): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "query", Path, Schema, MacroContext, Handle, Input>;

Defined in: elysia/dist/base.d.ts:966

Register handler for path with method [QUERY]


Type ParameterDefault type
Path extends string-
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & RouteHookCapture-
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>-
Decorator extends SingletonBase & object-
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }-
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…) | ((context) => MaybePromise<Response> | MaybePromise<{} extends (NoInfer<Schema> & MacroContext)[“response”] ? unknown : Error | ((NoInfer<Schema> & MacroContext)[“response”] extends { …; } ? (NoInfer<Schema> & MacroContext)[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | (NoInfer<Schema> & MacroContext)[“re…)-
UnknownKey extends PropertyKeyExclude<keyof Input, HookObjectKey | keyof Metadata["macro"]>
ParameterType
pathPath
hookobject & Input extends any ? Input : { [K in string | number | symbol]: Input[K] } & MacroOptionContext<Metadata["macroFn"], Schema, Decorator> & UnknownHookKey<UnknownKey>
fnHandle

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "query", Path, Schema, MacroContext, Handle, Input>

import { Elysia, t } from 'elysia'
new Elysia()
.query('/', () => 'hi')
.query('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')
query<Path, Schema, Decorator, Handle>(path, fn): AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "query", Path, Schema, {
}, Handle>;

Defined in: elysia/dist/base.d.ts:969

Register handler for path with method [QUERY]


Type Parameter
Path extends string
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<{ }, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", true>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
Decorator extends SingletonBase & object
Handle extends | MaybePromise<InlineResponse> | ((context) => MaybePromise<Response> | MaybePromise<{} extends NoInfer<Schema>[“response”] ? unknown : Error | (NoInfer<Schema>[“response”] extends { …; } ? NoInfer<Schema>[“response”][200] | … 2 more … | AsyncGenerator<…> : unknown) | NoInfer<Schema>[“response”][keyof NoInfer<Schema>[“response”]] | InlineHandlerResponse<…)
ParameterType
pathPath
fnHandle & Metadata["macro"]

AddRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, "query", Path, Schema, { }, Handle>

import { Elysia, t } from 'elysia'
new Elysia()
.query('/', () => 'hi')
.query('/hook', { query: t.Object({ name: t.String() }) }, () => 'hi')

Ref<Key>(key): TRef<Key>;

Defined in: elysia/dist/base.d.ts:831

Type Parameter
Key extends string
ParameterType
keyKey

TRef<Key>


state<Name, Value>(name, value): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & { [k in string | number | symbol]: Value })[K] };
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:194

Assign global mutable state accessible for all handler.


Type Parameter
Name extends string | number | symbol
Value
ParameterType
nameName
valueValue

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & { [k in string | number | symbol]: Value })[K] }; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)
state<NewStore>(store): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & NewStore)[K] };
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:199

Assign global mutable state accessible for all handler.


Type Parameter
NewStore extends Record<string, unknown>
ParameterType
storeNewStore

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & NewStore)[K] }; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)
state<NewStore>(mapper): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: NewStore;
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:204

Assign global mutable state accessible for all handler.


Type Parameter
NewStore extends Record<string, unknown>
ParameterType
mapper(store) => NewStore

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: NewStore; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)
state<Name, Value>(
type,
name,
value
): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & { [k in string | number | symbol]: Value })[K] };
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:209

Assign global mutable state accessible for all handler.


Type Parameter
Name extends string | number | symbol
Value
ParameterType
type"append"
nameName
valueValue

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & { [k in string | number | symbol]: Value })[K] }; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)
state<Name, Value>(
type,
name,
value
): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: { [K in string | number | symbol]: (Omit<Singleton["store"], Name> & { [k in string | number | symbol]: Value })[K] };
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:214

Assign global mutable state accessible for all handler.


Type Parameter
Name extends string | number | symbol
Value
ParameterType
type"override"
nameName
valueValue

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: { [K in string | number | symbol]: (Omit<Singleton[“store”], Name> & { [k in string | number | symbol]: Value })[K] }; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)
state<NewStore>(type, store): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & NewStore)[K] };
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:219

Assign global mutable state accessible for all handler.


Type Parameter
NewStore extends Record<string, unknown>
ParameterType
type"append"
storeNewStore

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & NewStore)[K] }; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)
state<NewStore>(type, store): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"];
derive: Singleton["derive"];
store: { [K in string | number | symbol]: (Omit<Singleton["store"], keyof NewStore> & NewStore)[K] };
}, Definitions, Metadata, Routes, Ephemeral, Volatile>;

Defined in: elysia/dist/base.d.ts:224

Assign global mutable state accessible for all handler.


Type Parameter
NewStore extends Record<string, unknown>
ParameterType
type"override"
storeNewStore

Elysia<BasePath, Scope, { decorator: Singleton["decorator"]; derive: Singleton["derive"]; store: { [K in string | number | symbol]: (Omit<Singleton[“store”], keyof NewStore> & NewStore)[K] }; }, Definitions, Metadata, Routes, Ephemeral, Volatile>

new Elysia()
.state('counter', 0)
.get('/', ({ store }) => ++store.counter)

stop(closeActiveConnections?): Promise<void>;

Defined in: elysia/dist/base.d.ts:1090

Stop the underlying server (if any), then run every onStop handler

Awaiting stop() from inside an onStart, onStop or WebSocket lifecycle callback is only supported while that callback is still synchronous

ParameterTypeDescription
closeActiveConnections?booleanPass true to terminate active transports. Omit (or pass false) to drain safely.

Promise<void>


trace(fn): this;

Defined in: elysia/dist/base.d.ts:430

ParameterType
fnTraceHandler<any, any>

this

trace<As>(options, fn): this;

Defined in: elysia/dist/base.d.ts:432

Type Parameter
As extends "global" | "local" | "scoped"
ParameterType
options{ as: As; }
options.asAs
fnTraceHandler<any, any>

this

trace<HookScope>(scope, fn): this;

Defined in: elysia/dist/base.d.ts:435

Type Parameter
HookScope extends EventScope
ParameterType
scopeHookScope
fnTraceHandler<any, any>

this


use<NewElysia>(instance): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"];
derive: Singleton["derive"] & NewElysia["~Singleton"]["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & NewElysia["~Singleton"]["store"])[K] };
}, {
error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]];
typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"];
}, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>> : Routes & CreateEden<BasePath, ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>>>, Ephemeral, {
derive: Volatile["derive"] & NewElysia["~Ephemeral"]["derive"];
error: [...Volatile["error"][], ...NewElysia["~Ephemeral"]["error"][]];
response: UnionResponseStatus<Volatile["response"], NewElysia["~Ephemeral"]["response"]>;
schema: Volatile["schema"] & NewElysia["~Ephemeral"]["schema"];
schemas: Volatile["schemas"] & NewElysia["~Ephemeral"]["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:691

Merge a plugin instance

Type Parameter
NewElysia extends AnyElysia
ParameterType
instanceNewElysia

Elysia<BasePath, Scope, { decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"]; derive: Singleton["derive"] & NewElysia["~Singleton"]["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & NewElysia[“~Singleton”][“store”])[K] }; }, { error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]]; typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"]; }, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>> : Routes & CreateEden<BasePath, ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>>>, Ephemeral, { derive: Volatile["derive"] & NewElysia["~Ephemeral"]["derive"]; error: [...Volatile["error"][], ...NewElysia["~Ephemeral"]["error"][]]; response: UnionResponseStatus<Volatile["response"], NewElysia["~Ephemeral"]["response"]>; schema: Volatile["schema"] & NewElysia["~Ephemeral"]["schema"]; schemas: Volatile["schemas"] & NewElysia["~Ephemeral"]["schemas"]; }>

use<Instances, Param>(instances): MergeElysiaInstances<Instances, BasePath, Scope, Singleton, Definitions, Metadata, Ephemeral, Volatile, Routes>;

Defined in: elysia/dist/base.d.ts:712

Merge multiple plugin instances, or a factory returning them

A factory taking no app has its array inferred by the instance overload above, as an array rather than a tuple, so its plugins are lost: return it as const

Type ParameterDefault type
Instances extends AnyElysia[]-
Param extends AnyElysiaElysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>
ParameterType
instancesInstances | ((app) => readonly [Instances])

MergeElysiaInstances<Instances, BasePath, Scope, Singleton, Definitions, Metadata, Ephemeral, Volatile, Routes>

use<NewElysia, Param, Factory>(plugin): IgnoresApp<Factory> extends true ? Elysia<BasePath, Scope, {
decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"];
derive: Singleton["derive"] & NewElysia["~Singleton"]["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & NewElysia["~Singleton"]["store"])[K] };
}, {
error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]];
typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"];
}, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>> : Routes & CreateEden<BasePath, ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>>>, Ephemeral, {
derive: Volatile["derive"] & NewElysia["~Ephemeral"]["derive"];
error: [...Volatile["error"][], ...NewElysia["~Ephemeral"]["error"][]];
response: UnionResponseStatus<Volatile["response"], NewElysia["~Ephemeral"]["response"]>;
schema: Volatile["schema"] & NewElysia["~Ephemeral"]["schema"];
schemas: Volatile["schemas"] & NewElysia["~Ephemeral"]["schemas"];
}> : Elysia<BasePath, Scope, {
decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"];
derive: Singleton["derive"] & NewElysia["~Singleton"]["derive"];
store: { [K in string | number | symbol]: (Singleton["store"] & NewElysia["~Singleton"]["store"])[K] };
}, {
error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]];
typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"];
}, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & NewElysia["~Routes"] : Routes & CreateEden<BasePath, NewElysia["~Routes"]>, {
derive: Ephemeral["derive"] & NewElysia["~Ephemeral"]["derive"];
error: NewElysia["~Ephemeral"]["error"];
response: UnionResponseStatus<Ephemeral["response"], NewElysia["~Ephemeral"]["response"]>;
schema: Ephemeral["schema"] & NewElysia["~Ephemeral"]["schema"];
schemas: Ephemeral["schemas"] & NewElysia["~Ephemeral"]["schemas"];
}, {
derive: Volatile["derive"] & NewElysia["~Volatile"]["derive"];
error: NewElysia["~Volatile"]["error"];
response: UnionResponseStatus<Volatile["response"], NewElysia["~Volatile"]["response"]>;
schema: Volatile["schema"] & NewElysia["~Volatile"]["schema"];
schemas: Volatile["schemas"] & NewElysia["~Volatile"]["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:721

Inline functional plugin

A factory that ignores app is assumed to return a new instance, used as a plugin the same way as .use(instance). One returning the parent it captured is mistyped, types can’t see instance identity. A factory declaring a parameter, even an optional one, is typed as returning app

Type ParameterDefault type
NewElysia extends AnyElysia-
Param extends AnyElysiaElysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>
Factoryunknown
ParameterType
pluginFactory & (app) => NewElysia

IgnoresApp<Factory> extends true ? Elysia<BasePath, Scope, { decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"]; derive: Singleton["derive"] & NewElysia["~Singleton"]["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & NewElysia[“~Singleton”][“store”])[K] }; }, { error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]]; typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"]; }, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>> : Routes & CreateEden<BasePath, ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>>>, Ephemeral, { derive: Volatile["derive"] & NewElysia["~Ephemeral"]["derive"]; error: [...Volatile["error"][], ...NewElysia["~Ephemeral"]["error"][]]; response: UnionResponseStatus<Volatile["response"], NewElysia["~Ephemeral"]["response"]>; schema: Volatile["schema"] & NewElysia["~Ephemeral"]["schema"]; schemas: Volatile["schemas"] & NewElysia["~Ephemeral"]["schemas"]; }> : Elysia<BasePath, Scope, { decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"]; derive: Singleton["derive"] & NewElysia["~Singleton"]["derive"]; store: { [K in string | number | symbol]: (Singleton[“store”] & NewElysia[“~Singleton”][“store”])[K] }; }, { error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]]; typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"]; }, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & NewElysia["~Routes"] : Routes & CreateEden<BasePath, NewElysia["~Routes"]>, { derive: Ephemeral["derive"] & NewElysia["~Ephemeral"]["derive"]; error: NewElysia["~Ephemeral"]["error"]; response: UnionResponseStatus<Ephemeral["response"], NewElysia["~Ephemeral"]["response"]>; schema: Ephemeral["schema"] & NewElysia["~Ephemeral"]["schema"]; schemas: Ephemeral["schemas"] & NewElysia["~Ephemeral"]["schemas"]; }, { derive: Volatile["derive"] & NewElysia["~Volatile"]["derive"]; error: NewElysia["~Volatile"]["error"]; response: UnionResponseStatus<Volatile["response"], NewElysia["~Volatile"]["response"]>; schema: Volatile["schema"] & NewElysia["~Volatile"]["schema"]; schemas: Volatile["schemas"] & NewElysia["~Volatile"]["schemas"]; }>

use<NewElysia>(instance): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"];
derive: Singleton["derive"] & Partial<NewElysia["~Singleton"]["derive"]>;
store: { [K in string | number | symbol]: (Singleton["store"] & NewElysia["~Singleton"]["store"])[K] };
}, {
error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]];
typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"];
}, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>> : Routes & CreateEden<BasePath, ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>>>, Ephemeral, {
derive: Volatile["derive"] & Partial<NewElysia["~Ephemeral"]["derive"]>;
error: [...Volatile["error"][], ...NewElysia["~Ephemeral"]["error"][]];
response: UnionResponseStatus<Volatile["response"], NewElysia["~Ephemeral"]["response"]>;
schema: Volatile["schema"] & NewElysia["~Ephemeral"]["schema"];
schemas: Volatile["schemas"] & NewElysia["~Ephemeral"]["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:763

async plugin instance

A factory that ignores app is assumed to resolve to a new instance, used as a plugin the same way. One resolving to the parent it captured is mistyped, types can’t see instance identity. A factory declaring a parameter, even an optional one, is typed as returning app, see the async functional plugin below

Type Parameter
NewElysia extends AnyElysia
ParameterType
instance| Promise< | NewElysia | { default: NewElysia; }> | ((app?) => MaybePromise< | NewElysia | { default: NewElysia; }>)

Elysia<BasePath, Scope, { decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"]; derive: Singleton["derive"] & Partial<NewElysia["~Singleton"]["derive"]>; store: { [K in string | number | symbol]: (Singleton[“store”] & NewElysia[“~Singleton”][“store”])[K] }; }, { error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]]; typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"]; }, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>> : Routes & CreateEden<BasePath, ResolveUsedRouteErrors<NewElysia["~Routes"], [...Definitions["error"][], ...Ephemeral["error"][], ...Volatile["error"][]], UnionResponseStatus<Metadata["response"], UnionResponseStatus<Ephemeral["response"], Volatile["response"]>>>>, Ephemeral, { derive: Volatile["derive"] & Partial<NewElysia["~Ephemeral"]["derive"]>; error: [...Volatile["error"][], ...NewElysia["~Ephemeral"]["error"][]]; response: UnionResponseStatus<Volatile["response"], NewElysia["~Ephemeral"]["response"]>; schema: Volatile["schema"] & NewElysia["~Ephemeral"]["schema"]; schemas: Volatile["schemas"] & NewElysia["~Ephemeral"]["schemas"]; }>

use<NewElysia, Param>(plugin): Elysia<BasePath, Scope, {
decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"];
derive: Singleton["derive"] & Partial<NewElysia["~Singleton"]["derive"]>;
store: { [K in string | number | symbol]: (Singleton["store"] & NewElysia["~Singleton"]["store"])[K] };
}, {
error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]];
typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"];
}, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & NewElysia["~Routes"] : Routes & CreateEden<BasePath, NewElysia["~Routes"]>, {
derive: Ephemeral["derive"] & Partial<NewElysia["~Ephemeral"]["derive"]>;
error: NewElysia["~Ephemeral"]["error"];
response: UnionResponseStatus<Ephemeral["response"], NewElysia["~Ephemeral"]["response"]>;
schema: Ephemeral["schema"] & NewElysia["~Ephemeral"]["schema"];
schemas: Ephemeral["schemas"] & NewElysia["~Ephemeral"]["schemas"];
}, {
derive: Volatile["derive"] & Partial<NewElysia["~Volatile"]["derive"]>;
error: NewElysia["~Volatile"]["error"];
response: UnionResponseStatus<Volatile["response"], NewElysia["~Volatile"]["response"]>;
schema: Volatile["schema"] & NewElysia["~Volatile"]["schema"];
schemas: Volatile["schemas"] & NewElysia["~Volatile"]["schemas"];
}>;

Defined in: elysia/dist/base.d.ts:784

Async functional plugin

Type ParameterDefault type
NewElysia extends AnyElysia-
Param extends AnyElysiaElysia<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile>
ParameterType
plugin| ((app) => Promise<NewElysia>) | Promise<(app) => MaybePromise<NewElysia>> | Promise<{ default: (app) => MaybePromise<NewElysia>; }>

Elysia<BasePath, Scope, { decorator: Singleton["decorator"] & NewElysia["~Singleton"]["decorator"]; derive: Singleton["derive"] & Partial<NewElysia["~Singleton"]["derive"]>; store: { [K in string | number | symbol]: (Singleton[“store”] & NewElysia[“~Singleton”][“store”])[K] }; }, { error: [...Definitions["error"][], ...NewElysia["~Definitions"]["error"][]]; typebox: Definitions["typebox"] & NewElysia["~Definitions"]["typebox"]; }, MergeMetadata<Metadata, NewElysia["~Metadata"]>, BasePath extends "" ? Routes & NewElysia["~Routes"] : Routes & CreateEden<BasePath, NewElysia["~Routes"]>, { derive: Ephemeral["derive"] & Partial<NewElysia["~Ephemeral"]["derive"]>; error: NewElysia["~Ephemeral"]["error"]; response: UnionResponseStatus<Ephemeral["response"], NewElysia["~Ephemeral"]["response"]>; schema: Ephemeral["schema"] & NewElysia["~Ephemeral"]["schema"]; schemas: Ephemeral["schemas"] & NewElysia["~Ephemeral"]["schemas"]; }, { derive: Volatile["derive"] & Partial<NewElysia["~Volatile"]["derive"]>; error: NewElysia["~Volatile"]["error"]; response: UnionResponseStatus<Volatile["response"], NewElysia["~Volatile"]["response"]>; schema: Volatile["schema"] & NewElysia["~Volatile"]["schema"]; schemas: Volatile["schemas"] & NewElysia["~Volatile"]["schemas"]; }>

use(app): this;

Defined in: elysia/dist/base.d.ts:809

Fallback for values the typed overloads cannot model

ParameterType
appMaybePromise< | AnyElysia | AnyElysia[] | { default: unknown; } | ((app) => unknown)>

this


wrap<T>(callback): this;

Defined in: elysia/dist/base.d.ts:1066

Add a higher order function over Elysia.fetch

Type ParameterDefault type
T extends (…params) => MaybePromise<Response>(request, …rest) => MaybePromise<Response>
ParameterType
callbackWrapFn<T>

this

const ctx = new AsyncLocalStorage<{ counter: number }>()
new Elysia()
.wrap(
(fetch) => (request, ...rest) =>
ctx.run({ counter: 0 }, () => fetch(request, ...rest))
)
.get('/', () => ctx.getStore())

ws<Path, Input, Schema, MacroContext>(path, options): AddWSRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Path, Schema, MacroContext, void, Input["error"], Input["beforeHandle"]>;

Defined in: elysia/dist/base.d.ts:1022

Register a WebSocket route as (path, options), (path, handler), or (path, options, handler). Requires .use(websocket()) from elysia/websocket.

Type Parameter
Path extends string
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & WSHookCapture
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
ParameterType
pathPath
options{ [K in string | number | symbol]: Input[K] } & object & TypedWebSocketHandler<Omit<{ [K in string | number | symbol]: ({ body: PrettifyIfObject<(…)[(…)] & (…)[(…)]>; cookie: undefined extends ((…) & (…))[“cookie”] ? Record<string, Cookie<(…)>> : Record<(…), (…)> & { [K in (…)]: (…) }; headers: undefined extends ((…) & (…))[“headers”] ? {} extends NonNullable<(…)> ? Record<(…), (…)> : (…)[(…)] : PrettifyIfObject<(…) & (…)>; params: undefined extends ((…) & (…))[“params”] ? {} extends NonNullable<(…)> ? Record<(…), (…)> : (…)[(…)] : PrettifyIfObject<(…) & (…)>; query: undefined extends ((…) & (…))[“query”] ? {} extends NonNullable<(…)> ? Record<(…), (…)> : (…)[(…)] : PrettifyIfObject<(…) & (…)> } & ContextBase<Schema & MacroContext, Singleton & { derive: (…) & (…) & (…) }> & (Singleton & { derive: (…) & (…) & (…) })[“decorator”] & Omit<(Singleton & { derive: … })[“derive”], keyof InputSchema<string>>)[K] }, "body"> & Omit<ElysiaWSLike<{ [K in string | number | symbol]: ({ body: PrettifyIfObject<(…) & (…)>; cookie: undefined extends (…)[(…)] ? Record<(…), (…)> : (…) & (…); headers: undefined extends (…)[(…)] ? (…) extends (…) ? (…) : (…) : PrettifyIfObject<(…)>; params: undefined extends (…)[(…)] ? (…) extends (…) ? (…) : (…) : PrettifyIfObject<(…)>; query: undefined extends (…)[(…)] ? (…) extends (…) ? (…) : (…) : PrettifyIfObject<(…)> } & ContextBase<Schema & MacroContext, Singleton & { derive: … }> & (Singleton & { derive: … })[“decorator”] & Omit<((…) & (…))[“derive”], keyof InputSchema<(…)>>)[K] }, Schema & MacroContext>, "body"> & object, Schema & MacroContext> & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>

AddWSRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Path, Schema, MacroContext, void, Input["error"], Input["beforeHandle"]>

ws<Path, Input, Schema, MacroContext, Handler>(path, handler): AddWSRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Path, Schema, MacroContext, WSHandlerResponse<Handler>>;

Defined in: elysia/dist/base.d.ts:1027

Register a WebSocket route as (path, options), (path, handler), or (path, options, handler). Requires .use(websocket()) from elysia/websocket.

Type Parameter
Path extends string
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string>
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
Handler extends WSMessageHandler<Schema & MacroContext, Singleton & object>
ParameterType
pathPath
handlerHandler

AddWSRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Path, Schema, MacroContext, WSHandlerResponse<Handler>>

ws<Path, Input, Schema, MacroContext, Handler>(
path,
options,
handler
): AddWSRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Path, Schema, MacroContext, WSHandlerResponse<Handler>, Input["error"], Input["beforeHandle"]>;

Defined in: elysia/dist/base.d.ts:1030

Register a WebSocket route as (path, options), (path, handler), or (path, options, handler). Requires .use(websocket()) from elysia/websocket.

Type Parameter
Path extends string
Input extends BaseMacro & InputSchema<keyof Definitions["typebox"] & string> & WSHookCapture
Schema extends IntersectIfObjectSchema<MergeSchema<UnwrapRoute<Input, Definitions["typebox"], JoinPath<BasePath, Path>>, MergeSchema<Volatile["schema"], MergeSchema<Ephemeral["schema"], Metadata["schema"]>>, "", undefined extends Input["params"] ? true : false>, MergeScopedSchemas<Metadata["schemas"], Ephemeral["schemas"], Volatile["schemas"]>>
MacroContext extends | Macro<{ }, { }, { }, DefaultSingleton, []> | { [K in string | number | symbol]: (InnerMacroToContext<Metadata[“macroFn”], Pick<Input, Extract<keyof Metadata[“macroFn”], keyof Input>>, Definitions[“typebox”], []> extends A ? { [K in string | number | symbol]: K extends “derive” ? UnionToIntersect<A[K]> : K extends “meta” ? ((…)[(…)] & { value: … })[“value”] : A[K] } & { return: FlattenMacroResponse<A[“return”]> } : {})[K] }
Handler extends WSMessageHandler<Schema & MacroContext, Singleton & object>
ParameterType
pathPath
options{ [K in string | number | symbol]: Input[K] } & object & TypedWebSocketHandler<Omit<{ [K in string | number | symbol]: ({ body: PrettifyIfObject<(…)[(…)] & (…)[(…)]>; cookie: undefined extends ((…) & (…))[“cookie”] ? Record<string, Cookie<(…)>> : Record<(…), (…)> & { [K in (…)]: (…) }; headers: undefined extends ((…) & (…))[“headers”] ? {} extends NonNullable<(…)> ? Record<(…), (…)> : (…)[(…)] : PrettifyIfObject<(…) & (…)>; params: undefined extends ((…) & (…))[“params”] ? {} extends NonNullable<(…)> ? Record<(…), (…)> : (…)[(…)] : PrettifyIfObject<(…) & (…)>; query: undefined extends ((…) & (…))[“query”] ? {} extends NonNullable<(…)> ? Record<(…), (…)> : (…)[(…)] : PrettifyIfObject<(…) & (…)> } & ContextBase<Schema & MacroContext, Singleton & { derive: (…) & (…) & (…) }> & (Singleton & { derive: (…) & (…) & (…) })[“decorator”] & Omit<(Singleton & { derive: … })[“derive”], keyof InputSchema<string>>)[K] }, "body"> & Omit<ElysiaWSLike<{ [K in string | number | symbol]: ({ body: PrettifyIfObject<(…) & (…)>; cookie: undefined extends (…)[(…)] ? Record<(…), (…)> : (…) & (…); headers: undefined extends (…)[(…)] ? (…) extends (…) ? (…) : (…) : PrettifyIfObject<(…)>; params: undefined extends (…)[(…)] ? (…) extends (…) ? (…) : (…) : PrettifyIfObject<(…)>; query: undefined extends (…)[(…)] ? (…) extends (…) ? (…) : (…) : PrettifyIfObject<(…)> } & ContextBase<Schema & MacroContext, Singleton & { derive: … }> & (Singleton & { derive: … })[“decorator”] & Omit<((…) & (…))[“derive”], keyof InputSchema<(…)>>)[K] }, Schema & MacroContext>, "body"> & object, Schema & MacroContext> & MacroOptionContext<Metadata["macroFn"], Schema, GuardHookSingleton<Singleton, Ephemeral, Volatile, { derive: { }; }>>
handlerHandler

AddWSRoute<BasePath, Scope, Singleton, Definitions, Metadata, Routes, Ephemeral, Volatile, Path, Schema, MacroContext, WSHandlerResponse<Handler>, Input["error"], Input["beforeHandle"]>

Last updated:

Type to search the documentation.

    Up arrowDown arrow to navigateEnter to selectEscape to close