base project
This commit is contained in:
67
node_modules/http-server/lib/shims/https-server-shim.js
generated
vendored
Normal file
67
node_modules/http-server/lib/shims/https-server-shim.js
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
/* eslint-disable no-process-env */
|
||||
/* eslint-disable no-sync */
|
||||
var https = require('https');
|
||||
var fs = require('fs');
|
||||
var core = require('union/lib/core');
|
||||
var RoutingStream = require('union/lib/routing-stream');
|
||||
|
||||
module.exports = function (options) {
|
||||
var isArray = Array.isArray(options.after);
|
||||
var credentials;
|
||||
|
||||
if (!options) {
|
||||
throw new Error('options is required to create a server');
|
||||
}
|
||||
|
||||
function requestHandler(req, res) {
|
||||
var routingStream = new RoutingStream({
|
||||
before: options.before,
|
||||
buffer: options.buffer,
|
||||
after:
|
||||
isArray &&
|
||||
options.after.map(function (After) {
|
||||
return new After();
|
||||
}),
|
||||
request: req,
|
||||
response: res,
|
||||
limit: options.limit,
|
||||
headers: options.headers
|
||||
});
|
||||
|
||||
routingStream.on('error', function (err) {
|
||||
var fn = options.onError || core.errorHandler;
|
||||
fn(err, routingStream, routingStream.target, function () {
|
||||
routingStream.target.emit('next');
|
||||
});
|
||||
});
|
||||
|
||||
req.pipe(routingStream);
|
||||
}
|
||||
|
||||
var serverOptions;
|
||||
|
||||
serverOptions = options.https;
|
||||
if (!serverOptions.key || !serverOptions.cert) {
|
||||
throw new Error(
|
||||
'Both options key and cert are required.'
|
||||
);
|
||||
}
|
||||
|
||||
credentials = {
|
||||
key: fs.readFileSync(serverOptions.key),
|
||||
cert: fs.readFileSync(serverOptions.cert),
|
||||
passphrase: process.env.NODE_HTTP_SERVER_SSL_PASSPHRASE
|
||||
};
|
||||
|
||||
if (serverOptions.ca) {
|
||||
serverOptions.ca = !Array.isArray(serverOptions.ca)
|
||||
? [serverOptions.ca]
|
||||
: serverOptions.ca;
|
||||
|
||||
credentials.ca = serverOptions.ca.map(function (ca) {
|
||||
return fs.readFileSync(ca);
|
||||
});
|
||||
}
|
||||
|
||||
return https.createServer(credentials, requestHandler);
|
||||
};
|
Reference in New Issue
Block a user