Sha256: 9c9483d0f91ff445eaabf0cd5318ce178b086077d2915ed22e35393b93d6dde5

Contents?: true

Size: 929 Bytes

Versions: 23

Compression:

Stored size: 929 Bytes

Contents

'use strict';

const { URL } = require('url');

/**
 * Get unit from value node
 *
 * Returns `null` if the unit is not found.
 *
 * @param {string} urlString
 */
module.exports = function (urlString) {
	let protocol = null;

	try {
		protocol = new URL(urlString).protocol;
	} catch (err) {
		return null;
	}

	if (protocol === null || typeof protocol === 'undefined') {
		return null;
	}

	const scheme = protocol.slice(0, -1); // strip trailing `:`

	// The URL spec does not require a scheme to be followed by `//`, but checking
	// for it allows this rule to differentiate <scheme>:<hostname> urls from
	// <hostname>:<port> urls. `data:` scheme urls are an exception to this rule.
	const slashIndex = protocol.length;
	const expectedSlashes = urlString.slice(slashIndex, slashIndex + 2);
	const isSchemeLessUrl = expectedSlashes !== '//' && scheme !== 'data';

	if (isSchemeLessUrl) {
		return null;
	}

	return scheme;
};

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
trusty-cms-5.0.7 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.6 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.5 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.4 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.3 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.2 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.1 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.3.5 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-5.0.0 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.3.4 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.3.3 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.3.2 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.3.1 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.3 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.2.3 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.2.2 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.2.1 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.2 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.1.9 node_modules/stylelint/lib/utils/getSchemeFromUrl.js
trusty-cms-4.1.8 node_modules/stylelint/lib/utils/getSchemeFromUrl.js