UNPKG

@swell/cli

Version:

Swell's command line interface/utility

30 lines (29 loc) 963 B
import localtunnel from 'localtunnel'; import ngrok from 'ngrok'; import { LOCAL_PROXY_PROVIDER } from './constants.js'; export async function getProxyUrl(port) { const provider = LOCAL_PROXY_PROVIDER || 'localtunnel'; try { switch (provider) { case 'local': { return `http://localhost:${port}`; } case 'ngrok': { return await ngrok.connect({ addr: port, region: 'us', // TODO: make it configurable }); } // eslint-disable-next-line unicorn/no-useless-switch-case case 'localtunnel': default: { const tunnel = await localtunnel({ port }); return tunnel.url; } } } catch (error) { console.log(error); throw new Error(`Unable to start tunnel on port ${port} (${provider}): ${error.message}`); } }