better-npm-init
Version:
A better version of npm init, with templates and more. Usage: better-npm-init <template> [--yarn] [--install] [--git] [--yes] [--help]
37 lines (28 loc) • 874 B
Flow
// @flow
import {
parse as parseUrl,
} from 'url';
import {
UnexpectedStateError,
} from '../errors';
export default (url: string) => {
const urlTokens = parseUrl(url);
if (urlTokens.query !== null) {
throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.');
}
if (urlTokens.hash !== null) {
throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.');
}
if (urlTokens.protocol !== 'http:') {
throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be "http:".');
}
let port = 80;
if (urlTokens.port) {
port = Number.parseInt(urlTokens.port, 10);
}
return {
authorization: urlTokens.auth || null,
hostname: urlTokens.hostname,
port,
};
};