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.
36 lines
854 B
36 lines
854 B
var split = require('../utils/split');
|
|
|
|
var BRACE_PREFIX = /^\(/;
|
|
var BRACE_SUFFIX = /\)$/;
|
|
var IMPORT_PREFIX_PATTERN = /^@import/i;
|
|
var QUOTE_PREFIX_PATTERN = /['"]\s*/;
|
|
var QUOTE_SUFFIX_PATTERN = /\s*['"]/;
|
|
var URL_PREFIX_PATTERN = /^url\(\s*/i;
|
|
var URL_SUFFIX_PATTERN = /\s*\)/i;
|
|
|
|
function extractImportUrlAndMedia(atRuleValue) {
|
|
var uri;
|
|
var mediaQuery;
|
|
var stripped;
|
|
var parts;
|
|
|
|
stripped = atRuleValue
|
|
.replace(IMPORT_PREFIX_PATTERN, '')
|
|
.trim()
|
|
.replace(URL_PREFIX_PATTERN, '(')
|
|
.replace(URL_SUFFIX_PATTERN, ')')
|
|
.replace(QUOTE_PREFIX_PATTERN, '')
|
|
.replace(QUOTE_SUFFIX_PATTERN, '');
|
|
|
|
parts = split(stripped, ' ');
|
|
|
|
uri = parts[0]
|
|
.replace(BRACE_PREFIX, '')
|
|
.replace(BRACE_SUFFIX, '');
|
|
mediaQuery = parts.slice(1).join(' ');
|
|
|
|
return [uri, mediaQuery];
|
|
}
|
|
|
|
module.exports = extractImportUrlAndMedia;
|