lbry-desktop/src/platforms/electron/startSandbox.js

31 lines
791 B
JavaScript
Raw Normal View History

2019-03-15 02:54:17 +01:00
import express from 'express';
import unpackByOutpoint from './unpackByOutpoint';
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
// Polyfills and `lbry-redux`
global.fetch = require('node-fetch');
global.window = global;
2019-03-18 06:09:50 +01:00
if (typeof global.fetch === 'object') {
2019-03-15 02:54:17 +01:00
global.fetch = global.fetch.default;
}
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
const { Lbry } = require('lbry-redux');
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
delete global.window;
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
export default async function startSandbox() {
const sandbox = express();
const port = 5278;
2019-03-05 05:46:57 +01:00
2019-03-18 06:09:50 +01:00
sandbox.get('/set/:outpoint', async(req, res) => {
2019-03-15 02:54:17 +01:00
const { outpoint } = req.params;
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
const resolvedPath = await unpackByOutpoint(Lbry, outpoint);
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
sandbox.use(`/sandbox/${outpoint}/`, express.static(resolvedPath));
2019-03-05 05:46:57 +01:00
2019-03-15 02:54:17 +01:00
res.send(`/sandbox/${outpoint}/`);
});
sandbox.listen(port, 'localhost', () => console.log(`Sandbox listening on port ${port}.`));
}