You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
855 B

import http from 'http';
import https from 'https';
import pify from 'pify';
import getPort from 'get-port';
export const host = 'localhost';
const getPortify = pify(getPort);
export const createServer = () => {
return getPortify()
.then(port => {
const s = http.createServer((req, resp) => s.emit(req.url, req, resp));
10 years ago
s.host = host;
s.port = port;
s.url = `http://${host}:${port}`;
s.protocol = 'http';
10 years ago
s.listen = pify(s.listen);
s.close = pify(s.close);
10 years ago
return s;
});
};
export const createSSLServer = (opts) => {
return getPortify()
.then(port => {
const s = https.createServer(opts, (req, resp) => s.emit(req.url, req, resp));
s.host = host;
s.port = port;
s.url = `https://${host}:${port}`;
s.protocol = 'https';
10 years ago
s.listen = pify(s.listen);
s.close = pify(s.close);
return s;
});
};