Nevertheless Published Mine

    TypeScript icon, indicating that this package has built-in type declarations

    0.3.2 • Public • Published

    Reliability Rating Security Rating

    Bun Bakery

    Bun-Bakery is a web framework for Bun. It uses a file based router in style like svelte-kit. No need to define routes during runtime.

    Quick Start

    bun add @kapsonfire/bun-bakery

    On your main script import Router from bun-bakery and define your pathes. i.e. main.ts

    import {Router} from "@kapsonfire/bun-bakery"
    new Router({
        assetsPath: import.meta.dir + '/assets/',
        routesPath: import.meta.dir + '/routes/'

    After that run the server and open your browser http://localhost:3000

    bun main.ts


    Routes are added automatically when creating files inside your routesPath when exporting functions with the corresponding Method Names. Given example above create index.ts inside routes/ and export a GET function calling ctx.sendResponse().

    import {Context} from "@kapsonfire/bun-bakery"
    export async function GET(ctx: Context) {
        ctx.sendResponse(new Response('hello world!'));


    Routes can have parameters inside dirname and/or filename. Just put the parameter name inside brackets and it will be added to ctx.params. In example: given routes/user/[username].ts and open http://localhost:3000/user/kapsonfire

    import {Context} from "@kapsonfire/bun-bakery"
    export async function GET(ctx: Context) {
        ctx.sendResponse(new Response('hello '+ ctx.params.username +'!'));

    will output hello kapsonfire!

    Spread Paramaters

    Routes can also have wildcard/spread paramaters. In example: given routes/users/[...usernames].ts and open http://localhost:3000/users/kapsonfire/jarred/tricked

    import {Context} from "@kapsonfire/bun-bakery"
    export async function GET(ctx: Context) {

    will output



    Inside the context variable you can access the native bun Request object inside ctx.request. ctx.sendResponse expects a native bun Response object.


    bun-bakery supports some life-cycles to add middleware

    • onRequest will be called before the router handles the request
    • onRoute will be called before the route function will be called
    • onResponse will be called after the route function finished
        onRequest: (ctx: Context) => { ctx.params.injected = "1"; console.log('onRequest', ctx) },
        onRoute: (ctx: Context) => console.log('onRoute', ctx),
        onResponse: (ctx: Context) => {
            ctx.response.headers.set('content-type', 'application/jsonx');
            console.log('onResponse', ctx)


    npm i @kapsonfire/bun-bakery

    DownloadsWeekly Downloads






    Unpacked Size

    28.1 kB

    Total Files


    Last publish


    • kapsonfire