61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
// Licensed to Elasticsearch B.V under one or more agreements.
|
|
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
|
|
// See the LICENSE file in the project root for more information
|
|
|
|
'use strict'
|
|
|
|
const proxy = require('proxy')
|
|
const { readFileSync } = require('fs')
|
|
const { join } = require('path')
|
|
const http = require('http')
|
|
const https = require('https')
|
|
|
|
const ssl = {
|
|
key: readFileSync(join(__dirname, '..', 'fixtures', 'https.key')),
|
|
cert: readFileSync(join(__dirname, '..', 'fixtures', 'https.cert'))
|
|
}
|
|
|
|
function createProxy () {
|
|
return new Promise((resolve, reject) => {
|
|
const server = proxy(http.createServer())
|
|
server.listen(0, '127.0.0.1', () => {
|
|
resolve(server)
|
|
})
|
|
})
|
|
}
|
|
|
|
function createSecureProxy () {
|
|
return new Promise((resolve, reject) => {
|
|
const server = proxy(https.createServer(ssl))
|
|
server.listen(0, '127.0.0.1', () => {
|
|
resolve(server)
|
|
})
|
|
})
|
|
}
|
|
|
|
function createServer (handler, callback) {
|
|
return new Promise((resolve, reject) => {
|
|
const server = http.createServer()
|
|
server.listen(0, '127.0.0.1', () => {
|
|
resolve(server)
|
|
})
|
|
})
|
|
}
|
|
|
|
function createSecureServer (handler, callback) {
|
|
return new Promise((resolve, reject) => {
|
|
const server = https.createServer(ssl)
|
|
server.listen(0, '127.0.0.1', () => {
|
|
resolve(server)
|
|
})
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
ssl,
|
|
createProxy,
|
|
createSecureProxy,
|
|
createServer,
|
|
createSecureServer
|
|
}
|