frontend/.pnpm-store/v3/files/57/688492eca2f4adc8159bce1fb551ed2a5a93a056d2e026fc94591c46469a8d49d6e9d8fee51a9b63255de871aba6518ab58d35955c990e39b1b337619b2bf6

35 lines
901 B
Plaintext

"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;
};