Browse Source

Listen for HTTP and HTTPS traffic

pull/2/head
Luke Childs 7 years ago
parent
commit
9a3c206d11
  1. 19
      package-lock.json
  2. 1
      package.json
  3. 41
      src/index.js

19
package-lock.json

@ -824,6 +824,11 @@
}
}
},
"create-cert": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/create-cert/-/create-cert-0.1.1.tgz",
"integrity": "sha512-mJw3QDogtEJtiObEhGefGiRUg7DacTeeQ0cXSTS2RZv6v0EABeZ2LB4dhpx4sHumKuQxmLESugvjJY2bBFodAQ=="
},
"cross-spawn": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
@ -2660,8 +2665,7 @@
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"isobject": {
"version": "2.1.0",
@ -4215,8 +4219,7 @@
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"p-cancelable": {
"version": "0.2.0",
@ -4330,6 +4333,11 @@
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
"dev": true
},
"pem": {
"version": "1.9.7",
"resolved": "https://registry.npmjs.org/pem/-/pem-1.9.7.tgz",
"integrity": "sha1-04f5lvKSx8nepjmlNYBedMtQMWE="
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@ -5199,8 +5207,7 @@
"which": {
"version": "1.2.14",
"resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
"integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
"dev": true
"integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU="
},
"widest-line": {
"version": "1.0.0",

1
package.json

@ -29,6 +29,7 @@
},
"homepage": "https://github.com/lukechilds/create-test-server",
"dependencies": {
"create-cert": "^0.1.1",
"express": "^4.15.3",
"get-port": "^3.1.0",
"pify": "^3.0.0"

41
src/index.js

@ -1,21 +1,42 @@
'use strict';
const http = require('http');
const https = require('https');
const express = require('express');
const getPort = require('get-port');
const pify = require('pify');
const createCert = require('create-cert');
const createTestServer = () => getPort().then(port => {
const app = express();
const server = http.createServer(app);
const createTestServer = () => Promise.all([
getPort(),
getPort(),
createCert()
])
.then(results => {
const app = express();
app.port = results[0];
app.sslPort = results[1];
app.sslCert = results[2];
app.host = 'localhost';
app.url = `http://${app.host}:${app.port}`;
app.sslUrl = `https://${app.host}:${app.sslPort}`;
app.host = 'localhost';
app.port = port;
app.url = `http://${app.host}:${app.port}`;
app.listen = pify(server.listen.bind(server, app.port));
app.close = pify(server.close.bind(server));
const server = http.createServer(app);
const sslServer = https.createServer({
key: app.sslCert.keys.clientKey,
cert: app.sslCert.keys.certificate
}, app);
return app.listen().then(() => app);
});
app.listen = () => Promise.all([
pify(server.listen.bind(server))(app.port),
pify(sslServer.listen.bind(sslServer))(app.sslPort)
]);
app.close = () => Promise.all([
pify(server.close.bind(server))(),
pify(sslServer.close.bind(sslServer))()
]);
return app.listen().then(() => app);
});
module.exports = createTestServer;

Loading…
Cancel
Save