oak = (callback, { cors = true } = {}) =>
async (Deno) => {
const { Application, Router } = await import(
"https://deno.land/x/oak/mod.ts"
);
const app = new Application();
const router = new Router();
await callback({ Deno, app, router });
if (cors) {
const { oakCors } = await import("https://deno.land/x/cors/mod.ts");
app.use(oakCors());
}
app.use(router.routes());
app.use(router.allowedMethods());
app.addEventListener("listen", (...args) => {
console.log(`Listening: ${JSON.stringify(args)}`);
});
await app.listen({ port: Number(Deno.env.get("PORT")) || 8000 });
}