UNPKG

swish-http

Version:

A Swish implementation that tunnels over HTTP

38 lines (34 loc) 1.08 kB
var path = require('path'); var FileBrute = require('swish-file-brute'); var HttpStore = require('../'); var express = require('express'), app = express(); app.use(express.static(__dirname)); var testSuiteFile = require.resolve('swish-test-suite'); app.get('/swish-test-suite.js', function (request, response) { response.sendFile(testSuiteFile); }); app.get('/swish-http.js', function (request, response) { response.sendFile(path.join(__dirname, '../client.js')); }); var storeCounter = 0; app.post('/new-store', function (request, response) { var path = '/store/' + (storeCounter++); var store = new FileBrute(); var httpStore = new HttpStore(store); app.use(path, httpStore.express()); response.json(path); }); var port = 9012, portAttempts = 10; function tryPort(error) { if (portAttempts-- <= 0) { throw error; } app.listen(port, function (error) { if (error) { port = Math.floor(Math.random()*65536); tryPort(error); } console.log('Listening on :' + port); }) } tryPort();