diff options
Diffstat (limited to 'node_modules/csso/cjs/replace/AttributeSelector.cjs')
| -rw-r--r-- | node_modules/csso/cjs/replace/AttributeSelector.cjs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/node_modules/csso/cjs/replace/AttributeSelector.cjs b/node_modules/csso/cjs/replace/AttributeSelector.cjs new file mode 100644 index 00000000..f06724fc --- /dev/null +++ b/node_modules/csso/cjs/replace/AttributeSelector.cjs @@ -0,0 +1,32 @@ +'use strict'; + +// Can unquote attribute detection +// Adopted implementation of Mathias Bynens +// https://github.com/mathiasbynens/mothereff.in/blob/master/unquoted-attributes/eff.js +const blockUnquoteRx = /^(-?\d|--)|[\u0000-\u002c\u002e\u002f\u003A-\u0040\u005B-\u005E\u0060\u007B-\u009f]/; + +function canUnquote(value) { + if (value === '' || value === '-') { + return false; + } + + return !blockUnquoteRx.test(value); +} + +function AttributeSelector(node) { + const attrValue = node.value; + + if (!attrValue || attrValue.type !== 'String') { + return; + } + + if (canUnquote(attrValue.value)) { + node.value = { + type: 'Identifier', + loc: attrValue.loc, + name: attrValue.value + }; + } +} + +module.exports = AttributeSelector; |
