Express JavaScript API sucks, so meebo

(github.com)

2 points | by medvedevil 4 months ago ago

1 comments

  • medvedevil 4 months ago

    Express is the most popular Node.js framework but it was created before TypeScript existed.

    APIs are contracts. So why are Express contracts written in invisible ink?

    Meaning: - req.body → could be literally anything - res.json() → returns whatever you hand it - TypeScript → just shrugs and says: any

    So I built Meebo to fix this.

    const router = TypedRouter(express.Router());

    const schema = z.object({ id: z.number() })

    router.post("/users", { response: schema }, (req, res) => { res.json({ id: 1 }); <--- this is now validated and typed });

    You get: - Real TypeScript types from your Zod schemas - Runtime validation on every request - Auto-generated Swagger UI