forked from APIDevTools/json-schema-ref-parser
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.ts
68 lines (61 loc) · 1.7 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
console.log(`
Setting up vitest in browser env...
`);
import { dirname, join } from "path";
import http from "http";
import fs from "fs";
import path from "path";
const __dirname = dirname(__filename);
const root = path.join(__dirname, "..", "..");
const setup = async () => {
const server = http
.createServer(function (request, response) {
const filePath = "." + request.url;
const extname = path.extname(filePath);
let contentType = "text/html";
switch (extname) {
case ".js":
contentType = "text/javascript";
break;
case ".css":
contentType = "text/css";
break;
case ".json":
contentType = "application/json";
break;
case ".png":
contentType = "image/png";
break;
case ".jpg":
contentType = "image/jpg";
break;
case ".wav":
contentType = "audio/wav";
break;
}
fs.readFile(join(root, filePath), function (error, content) {
if (error) {
if (error.code == "ENOENT") {
response.writeHead(404);
response.end("Sorry, check with the site admin for error: " + error.code + " ..\n");
response.end();
} else {
response.writeHead(500);
response.end("Sorry, check with the site admin for error: " + error.code + " ..\n");
response.end();
}
} else {
response.writeHead(200, { "Content-Type": contentType });
response.end(content, "utf-8");
}
});
})
.listen(3000);
return () => {
// teardown
if (server) {
server.close();
}
};
};
export default setup;