forked from enviPath/enviPy
Current Dev State
This commit is contained in:
49
static/js/ketcher2/node_modules/budo/lib/server.js
generated
vendored
Normal file
49
static/js/ketcher2/node_modules/budo/lib/server.js
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
var http = require('http')
|
||||
var https = require('https')
|
||||
var pem = require('pem')
|
||||
var createMiddleware = require('./middleware')
|
||||
var fs = require('fs')
|
||||
|
||||
module.exports = function createServer (entryMiddleware, opts, cb) {
|
||||
var handler = createMiddleware(entryMiddleware, opts)
|
||||
var ssl = opts.ssl
|
||||
|
||||
if (ssl && (!opts.cert && opts.key) || (!opts.key && opts.cert)) {
|
||||
throw new TypeError('If you specify a cert, you must specify a key and vice versa.\n' +
|
||||
'Or, you can omit the "cert" and "key" options to generate a new self-signed certificate.')
|
||||
}
|
||||
|
||||
if (opts.ssl) {
|
||||
if (opts.cert && opts.key) {
|
||||
// user specified their own cert/key pair
|
||||
create({
|
||||
cert: fs.readFileSync(opts.cert),
|
||||
key: fs.readFileSync(opts.key)
|
||||
})
|
||||
} else {
|
||||
// generate a self-signed cert
|
||||
pem.createCertificate({ days: 1, selfSigned: true }, function (err, keys) {
|
||||
if (err) return cb(err)
|
||||
create({
|
||||
key: keys.serviceKey,
|
||||
cert: keys.certificate
|
||||
})
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// no HTTPS, handle normally
|
||||
create()
|
||||
}
|
||||
|
||||
function create (httpsOpts) {
|
||||
var server = ssl
|
||||
? https.createServer(httpsOpts, handler)
|
||||
: http.createServer(handler)
|
||||
server.setLiveOptions = handler.setLiveOptions
|
||||
|
||||
// TODO: Perhaps --ssl should support some sort of HTTP -> HTTPS redirect
|
||||
process.nextTick(function () {
|
||||
cb(null, server)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user