-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.ts
37 lines (28 loc) · 1.01 KB
/
server.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
import { oakCors } from "https://deno.land/x/cors/mod.ts";
import * as parser from "./parser.ts";
const router = new Router();
router.get("/", (ctx) => {
ctx.response.body = "Hello world!";
});
router.post("/", async ({ request, response }) => {
const requestBody = request.body(); // content type automatically detected
let content = "";
if (requestBody.type === "json") {
const value = await requestBody.value; // an object of parsed JSON
content = value.content || "";
}
let result = parser.images(parser.annotations(parser.lineBreaks(content)));
try {
result = await parser.links(result);
} catch (e) {
console.error(e);
}
result = parser.etc(result);
response.body = JSON.stringify({ content: result });
});
const app = new Application();
app.use(oakCors());
app.use(router.routes());
app.addEventListener("listen", (e) => console.log("Listening on http://localhost:8080"));
await app.listen({ port: 8080 });