UNPKG

tunnelmole

Version:

Tunnelmole, an open source ngrok alternative. Instant public URLs for any http/https based application. Available as a command line application or as an NPM dependency for your code. Stable and maintained. Good test coverage. Works behind firewalls

33 lines 1.86 kB
import { eventHandler, URL_ASSIGNED } from '../events/event-handler.js'; import chalk from 'chalk'; export default async function hostnameAssigned(message, websocket, options) { const port = options.port; if (typeof port === 'undefined') { console.error('Please specify a port e.g. run "tmole 80"'); } const httpsUrl = `https://${message.hostname}`; const httpUrl = `http://${message.hostname}`; const destinationUrl = `http://localhost:${port}`; const encodedHttpsUrl = Buffer.from(httpsUrl).toString('base64'); if (process.env.TUNNELMOLE_QUIET_MODE !== '1') { console.info('='.repeat(process.stdout.columns)); console.info('Your Tunnelmole Public URLs are below and are accessible internet wide. Always use HTTPs for the best security'); console.info(''); console.info(`${chalk.greenBright.bold(httpsUrl)}${chalk.bold(destinationUrl)}`); console.info(`${chalk.greenBright.bold(httpUrl)}${chalk.bold(destinationUrl)}`); console.info('='.repeat(process.stdout.columns)); } console.info(chalk.bold('\nShare your creation with the world!')); printSharingNetwork('Reddit', 'reddit', encodedHttpsUrl); printSharingNetwork('Hacker News', 'hackernews', encodedHttpsUrl); printSharingNetwork('BlueSky', 'bluesky', encodedHttpsUrl); printSharingNetwork('X (Twitter)', 'twitter', encodedHttpsUrl); printSharingNetwork('LinkedIn', 'linkedin', encodedHttpsUrl); console.info("\n\n"); eventHandler.emit(URL_ASSIGNED, httpsUrl); } const printSharingNetwork = (displayNetworkName, network, encodedHttpsUrl) => { const shareUrl = `https://dashboard.tunnelmole.com/share/${network}/${encodedHttpsUrl}`; console.info(`${displayNetworkName}: ${chalk.greenBright.bold(shareUrl)}`); }; //# sourceMappingURL=hostname-assigned.js.map