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

1
package.json

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

41
src/index.js

@ -1,21 +1,42 @@
'use strict'; 'use strict';
const http = require('http'); const http = require('http');
const https = require('https');
const express = require('express'); const express = require('express');
const getPort = require('get-port'); const getPort = require('get-port');
const pify = require('pify'); const pify = require('pify');
const createCert = require('create-cert');
const createTestServer = () => getPort().then(port => { const createTestServer = () => Promise.all([
const app = express(); getPort(),
const server = http.createServer(app); 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'; const server = http.createServer(app);
app.port = port; const sslServer = https.createServer({
app.url = `http://${app.host}:${app.port}`; key: app.sslCert.keys.clientKey,
app.listen = pify(server.listen.bind(server, app.port)); cert: app.sslCert.keys.certificate
app.close = pify(server.close.bind(server)); }, 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; module.exports = createTestServer;

Loading…
Cancel
Save