import express from 'express'; import unpackByOutpoint from './unpackByOutpoint'; // Polyfills and `lbry-redux` global.fetch = require('node-fetch'); global.window = global; if (typeof global.fetch === 'object') { global.fetch = global.fetch.default; } const { Lbry } = require('lbry-redux'); delete global.window; export default async function startSandbox() { const port = 5278; const sandbox = express(); sandbox.get('/set/:outpoint', async (req, res) => { const { outpoint } = req.params; const resolvedPath = await unpackByOutpoint(Lbry, outpoint); sandbox.use(`/sandbox/${outpoint}/`, express.static(resolvedPath)); res.send(`/sandbox/${outpoint}/`); }); sandbox .listen(port, 'localhost', () => console.log(`Sandbox listening on port ${port}.`)) .on('error', err => { if (err.code === 'EADDRINUSE') { console.log( `Server already listening at localhost:${port}. This is probably another LBRY app running. If not, games in the app will not work.` ); } }); }