-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
executable file
·48 lines (41 loc) · 1.31 KB
/
server.js
File metadata and controls
executable file
·48 lines (41 loc) · 1.31 KB
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
import { koa } from '@feathersjs/koa'
import packageRoot from 'app-root-path'
import dotenv from 'dotenv'
import { createServer as _createServer } from 'http'
import { createServer } from 'https'
import send from 'koa-send'
import serve from 'koa-static'
import { readFileSync } from 'node:fs'
import path from 'path'
const cwd = process.cwd()
dotenv.config({ path: packageRoot.path + '/.env.local' })
const app = new koa()
const PORT = parseInt(process.env.VITE_APP_PORT) || 3000
const HTTPS = process.env.VITE_LOCAL_BUILD ?? false
const key = process.env.KEY || 'certs/key.pem'
const cert = process.env.CERT || 'certs/cert.pem'
app.use(
serve(path.join(cwd, 'dist'), {
brotli: true,
setHeaders: (ctx) => {
ctx.setHeader('Origin-Agent-Cluster', '?1')
}
})
)
app.use(async (ctx) => {
await send(ctx, path.join('dist', 'index.html'), {
root: cwd
})
})
app.listen = function () {
let server
if (HTTPS) {
const pathedkey = readFileSync(path.join(packageRoot.path, key))
const pathedcert = readFileSync(path.join(packageRoot.path, cert))
server = createServer({ key: pathedkey, cert: pathedcert }, this.callback())
} else {
server = _createServer(this.callback())
}
return server.listen.apply(server, arguments)
}
app.listen(PORT, () => console.log(`Server listening on port: ${PORT}`))