amiddy
Version:
Middleware server with high configurability for development
1 lines • 985 B
JavaScript
import http from"http";import https from"https";import express from"express";import logger from"./logger.js";import certificate from"./certificate.js";import proxy from"./proxy/index.js";const privateApi={listen:message=>()=>{logger.success(""),logger.success("Started","server-start"),logger.success(message,"server-start"),logger.success("")}},service={};service.create=config=>{let server;const app=express(),vhostConf=config.vhost,isHttps=vhostConf.https,protocol=isHttps?"https":"http";let ssl=null;if(isHttps){const sslConfig=config.sslFiles;ssl=sslConfig?certificate.read(sslConfig):certificate.generate(vhostConf.name,config.selfsigned)}app.use(proxy.create(config,ssl)),app.disable("x-powered-by"),server=isHttps?https.createServer({cert:ssl.cert,key:ssl.key||ssl["private"]},app):http.createServer(app);const message=`Open: ${protocol}://${vhostConf.name}:${vhostConf.port}`;server.listen(vhostConf.port,privateApi.listen(message))};export{privateApi};export default service;