Mute
90231cb2ae
a massive diff due to infrastructure work the completion pane moved to the left of chat no other intended changes for users
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
import {readFileSync} from 'node:fs'
|
|
import {createServer} from 'node:http'
|
|
|
|
const config = {host: '127.0.0.1', port: 9696}
|
|
|
|
const h_cors = {
|
|
'Access-Control-Max-Age': '86400',
|
|
'Access-Control-Allow-Private-Network': 'true',
|
|
'Access-Control-Allow-Origin': '*',
|
|
'Access-Control-Allow-Methods': 'GET, OPTIONS',
|
|
'Access-Control-Allow-Headers': '*',
|
|
// 'Access-Control-Allow-Credentials': 'false', // omit this header to disallow
|
|
}
|
|
const h_all = Object.assign({
|
|
'Content-Type': 'text/javascript',
|
|
'Cache-Control': 'no-cache',
|
|
}, h_cors)
|
|
|
|
/**
|
|
* @typedef {import('node:http').ServerResponse} ServerResponse
|
|
* @type {Record<string,function(ServerResponse):void>}
|
|
*/
|
|
const resp = {
|
|
GET(rx) { rx.writeHead(200, h_all); rx.write(readFileSync('./mbchc.mjs')) },
|
|
OPTIONS(rx) { rx.writeHead(204, h_cors) },
|
|
}
|
|
|
|
const server = createServer((rq, rx) => {
|
|
resp[rq.method] && (new URL(`http://${config.host}:${config.port}${rq.url}`)).pathname === '/' ? resp[rq.method](rx) : rx.writeHead(400)
|
|
rx.end()
|
|
console.log('%s %d %s %s', (new Date()).toISOString(), rx.statusCode, rq.method, rq.url)
|
|
})
|
|
server.listen(config.port, config.host, () => console.log(`Server started at http://${config.host}:${config.port}`))
|