An easy-to-use, file-based router to Elysia
To use Webster in your Elysia app, register it on your Elysia instance.
import { Elysia } from "elysia";
import { webster } from "webster-router";
const app = new Elysia()
.use(
webster({
dir: "./src/my-routes", // uses src/routes by default
})
)
.listen(3000);// routes/index.ts
import type { Route } from "webster-router";
export const get: Route = {
handler: () => "Hello, Webster!",
};Routes are defined as variables whose names are HTTP verbs. If you're using TypeScript, make sure to import the Route type. This means that one route file can handle multiple methods
export const get: Route = {
handler: () => "Hello, Webster!",
};
export const delete: Route = {
handler: () => "Bye, Webster. :(",
};Each route is passed an Elysia Context
export const get: Route = {
handler: (context) => context.path,
};To define a schema, add a schema property to a method object, and define the schema the same way you would in a normal Elysia app
import { t } from 'elysia'
export const get: Route = {
schema: {
query: t.Object({
name: t.String()
})
}
handler: (context) => context.path,
};To create a dynamic route, create a folder with the :<parameter-name> format. For example, if we want to create a path that takes in an id parameter, we'd create a folder called :id. Elysia will put the id value in context.params
export const get: Route = {
handler: ({ params }) => {
return params.id;
},
};Now, if we visit /123, we will see '123' returned back to us.