fix: listening and web config

This commit is contained in:
cha0s 2024-02-17 20:03:23 -06:00
parent e7353b8a9e
commit 96f23f07a1
2 changed files with 19 additions and 11 deletions

View File

@ -74,11 +74,17 @@ export const createHttpServer = async (flecks) => {
if (host) {
args.push(host);
}
args.push(async (error) => {
if (error) {
reject(error);
return;
const onError = (error) => {
if ('EADDRINUSE' === error.code) {
error.message = (
`HTTP server couldn't connect: '${[host, port].join(':')}' already in use!`
);
}
reject(error);
};
httpServer.on('error', onError);
args.push(async () => {
httpServer.off('error', onError);
await flecks.invokeSequentialAsync('@flecks/web/server.up', httpServer);
const actualPort = 0 === port ? httpServer.address().port : port;
debug(

View File

@ -8,6 +8,15 @@ const {
export {configSource};
export const hooks = {
'@flecks/core.starting': (flecks) => {
const {
host = 'production' === NODE_ENV ? '0.0.0.0' : 'localhost',
port,
public: httpPublic,
} = flecks.get('@flecks/web');
flecks.web.host = host;
flecks.web.public = httpPublic || [host, port].join(':');
},
'@flecks/web.routes': (flecks) => {
const routes = [
{
@ -60,15 +69,8 @@ export const mixin = (Flecks) => class FlecksWithWeb extends Flecks {
constructor(runtime) {
super(runtime);
if (!this.web) {
const {
host = 'production' === NODE_ENV ? '0.0.0.0' : 'localhost',
port,
public: httpPublic,
} = runtime.config['@flecks/web'];
this.web = {
config: runtime['@flecks/web'],
host,
public: httpPublic || [host, port].join(':'),
server: undefined,
};
}