const { format } = require('url');
const { networkInterfaces } = require('os');

const port = process.env.PORT || 8080;
const isLAN = x => x.family === 'IPv4' && !x.internal;

module.exports = function (opts) {
	opts = Object.assign({ hostname: 'localhost', port, https:false }, opts);
	opts.protocol = opts.https ? 'https' : 'http';

	let k, tmp;
	let local = format(opts);
	let nets = networkInterfaces();
	for (k in nets) {
		if (tmp = nets[k].find(isLAN)) {
			opts.hostname = tmp.address; // network IP
			break;
		}
	}

	return { local, network: format(opts) };
}