Skip to content

wobsoriano/elysia-autoroutes

Repository files navigation

elysia-autoroutes

File system routes for Elysia.js.

Install

bun install elysia-autoroutes

Usage

Register the plugin

Note: It uses your project's /routes directory as source by default.

import { Elysia } from 'elysia'
import { autoroutes } from 'elysia-autoroutes'

const app = new Elysia()
  .use(
    autoroutes({
      routesDir: "./routes", // -> optional, defaults to './routes'
      prefix: "/api", // -> optional, defaults to ''
      generateTags: false, // -> optional, defaults to true
    })
  )
  .listen(3000)

export type ElysiaApp = typeof app

Create your first route

// routes/index.ts
import type { ElysiaApp } from './app'

export default (app: ElysiaApp) => app.get('/', { hello: 'world' })

Directory Structure

Files inside your project's /routes directory will get matched a url path automatically.

├── app.ts
├── routes
    ├── index.ts // index routes
    ├── posts
        ├── index.ts
        └── [id].ts // dynamic params
    └── users.ts
└── package.json
  • /routes/index.ts → /
  • /routes/posts/index.ts → /posts
  • /routes/posts/[id].ts → /posts/:id
  • /routes/users.ts → /users

License

MIT