import { Application, Router } from "@oak/oak"; import { oakCors } from "@tajpouria/cors"; import data from "./data.json" with { type: "json" }; import routeStaticFilesFrom from "./util/routeStaticFilesFrom.ts"; const router = new Router(); router.get("/api/dinosaurs", (context) => { context.response.body = data; }); router.get("/api/dinosaurs/:dinosaur", (context) => { if (!context?.params?.dinosaur) { context.response.body = "No dinosaur name provided."; } const dinosaur = data.find((item) => item.name.toLowerCase() === context.params.dinosaur.toLowerCase() ); context.response.body = dinosaur ? dinosaur : "No dinosaur found."; }); const app = new Application(); app.use(oakCors()); app.use(router.routes()); app.use(router.allowedMethods()); app.use(routeStaticFilesFrom([ `${Deno.cwd()}/dist`, `${Deno.cwd()}/public`, ])); await app.listen({ port: 8000 });