UNPKG

webserv

Version:

a quick, flexible, fully typed development server

59 lines 2.84 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "https", "./startServer", "../log", "pem"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const https_1 = require("https"); const startServer_1 = require("./startServer"); const log_1 = require("../log"); const pem_1 = require("pem"); function createHttpsServer(config) { return () => __awaiter(this, void 0, void 0, function* () { const httpsOptions = config.httpsOptions || {}; if (!httpsOptions.key || !httpsOptions.cert) { const { certificate, clientKey } = yield buildCert(); httpsOptions.key = clientKey; httpsOptions.cert = certificate; } const server = https_1.createServer(httpsOptions, config.onRequest); config.timeout && server.setTimeout(config.timeout); return server; }); } exports.createHttpsServer = createHttpsServer; function startHttpsServer(config) { return startServer_1.startServer(Object.assign(Object.assign({}, config), { createServer: createHttpsServer(config) })); } exports.startHttpsServer = startHttpsServer; function buildCert(pemOptions = { days: 7, selfSigned: true }) { return __awaiter(this, void 0, void 0, function* () { log_1.log.info('Creating self-signed cert'); return new Promise((resolve, reject) => { pem_1.createCertificate(pemOptions, (err, keys) => { if (err) { reject(err); } else { resolve(keys); } }); }); }); } }); //# sourceMappingURL=createHttpsServer.js.map