LookAtMySuitBot/js/node_modules/protocols/lib/index.js

35 lines
901 B
JavaScript

"use strict";
/**
* protocols
* Returns the protocols of an input url.
*
* @name protocols
* @function
* @param {String|URL} input The input url (string or `URL` instance)
* @param {Boolean|Number} first If `true`, the first protocol will be returned. If number, it will represent the zero-based index of the protocols array.
* @return {Array|String} The array of protocols or the specified protocol.
*/
module.exports = function protocols(input, first) {
if (first === true) {
first = 0;
}
var prots = "";
if (typeof input === "string") {
try {
prots = new URL(input).protocol;
} catch (e) {}
} else if (input && input.constructor === URL) {
prots = input.protocol;
}
var splits = prots.split(/\:|\+/).filter(Boolean);
if (typeof first === "number") {
return splits[first];
}
return splits;
};