• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict'
2
3const http = require('http')
4const https = require('https')
5const server = http.createServer(handler)
6const port = +process.argv[2]
7const prefix = process.argv[3]
8const upstream = process.argv[4]
9var calls = 0
10
11server.listen(port)
12
13function handler (req, res) {
14  if (req.url.indexOf(prefix) !== 0) {
15    throw new Error('request url [' + req.url + '] does not start with [' + prefix + ']')
16  }
17
18  var upstreamUrl = upstream + req.url.substring(prefix.length)
19  https.get(upstreamUrl, function (ures) {
20    ures.on('end', function () {
21      if (++calls === 2) {
22        server.close()
23      }
24    })
25    ures.pipe(res)
26  })
27}
28