You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
598 B
29 lines
598 B
2 years ago
|
"use strict";
|
||
|
|
||
|
module.exports = function (url, options) {
|
||
|
if (!options) {
|
||
|
options = {};
|
||
|
}
|
||
|
|
||
|
if (!url) {
|
||
|
return url;
|
||
|
}
|
||
|
|
||
|
url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them
|
||
|
|
||
|
if (/^['"].*['"]$/.test(url)) {
|
||
|
url = url.slice(1, -1);
|
||
|
}
|
||
|
|
||
|
if (options.hash) {
|
||
|
url += options.hash;
|
||
|
} // Should url be wrapped?
|
||
|
// See https://drafts.csswg.org/css-values-3/#urls
|
||
|
|
||
|
|
||
|
if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) {
|
||
|
return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\"");
|
||
|
}
|
||
|
|
||
|
return url;
|
||
|
};
|