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.
35 lines
874 B
35 lines
874 B
var split = require('../utils/split'); |
|
|
|
var BRACE_PREFIX = /^\(/; |
|
var BRACE_SUFFIX = /\)$/; |
|
var IMPORT_PREFIX_PATTERN = /^@import/i; |
|
var QUOTE_PREFIX_PATTERN = /['"]\s{0,31}/; |
|
var QUOTE_SUFFIX_PATTERN = /\s{0,31}['"]/; |
|
var URL_PREFIX_PATTERN = /^url\(\s{0,31}/i; |
|
var URL_SUFFIX_PATTERN = /\s{0,31}\)/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;
|
|
|