|
1 |
| -import { readFileSync } from 'fs' |
2 |
| -import glob from 'glob' |
3 |
| -import express from 'express' |
| 1 | +/** |
| 2 | + * @file A simple express server variant of GRS can run GRS in a docker container. |
| 3 | + * This is not intended to be used in the development; please use the `vercel dev` |
| 4 | + * command instead. |
| 5 | + */ |
| 6 | +import { readFileSync } from "fs"; |
| 7 | +import glob from "glob"; |
| 8 | +import express from "express"; |
4 | 9 |
|
5 |
| -const vercelConfig = JSON.parse(readFileSync('./vercel.json', 'utf8')) |
6 |
| -const vercelFunctions = Object.keys(vercelConfig.functions) |
| 10 | +const vercelConfig = JSON.parse(readFileSync("./vercel.json", "utf8")); |
| 11 | +const vercelFunctions = Object.keys(vercelConfig.functions); |
7 | 12 |
|
8 |
| -const port = process.env.PORT || 3000 |
9 |
| -const app = express() |
| 13 | +const port = process.env.PORT || 3000; |
| 14 | +const app = express(); |
10 | 15 |
|
11 |
| -const files = vercelFunctions.map(gl => glob.sync(gl)).flat() |
12 |
| -await loadApiRoutes(files) |
| 16 | +const files = vercelFunctions.map((gl) => glob.sync(gl)).flat(); |
| 17 | +await loadApiRoutes(files); |
13 | 18 |
|
14 | 19 | app.listen(port, () => {
|
15 |
| - console.log(`Server listening on port ${port}`) |
16 |
| -}) |
| 20 | + console.log(`Server listening on port ${port}`); |
| 21 | +}); |
17 | 22 |
|
| 23 | +/** |
| 24 | + * Loads all api routes from the `api` directory. |
| 25 | + * @param {string[]} files Api endpoint files. |
| 26 | + */ |
18 | 27 | async function loadApiRoutes(files) {
|
19 | 28 | for (const file of files) {
|
20 |
| - const route = `/${file.replace('.js', '').replace('index', '')}` |
21 |
| - console.log(`Loading route '${route}' with handler from '${file}'`) |
22 |
| - const handler = await import(`../${file}`) |
23 |
| - app.get(route, handler.default) |
| 29 | + const route = `/${file.replace(".js", "").replace("index", "")}`; |
| 30 | + console.log(`Loading route '${route}' with handler from '${file}'`); |
| 31 | + const handler = await import(`../${file}`); |
| 32 | + app.get(route, handler.default); |
24 | 33 | }
|
25 | 34 | }
|
0 commit comments