summaryrefslogtreecommitdiff
path: root/node_modules/csso/lib/replace/AttributeSelector.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-10-14 15:05:55 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-10-14 15:05:55 +0800
commitc06f7ee0a40255214c477e13d9b956a7e07c2900 (patch)
treef5982a568ef8fab865d0142e71c7494fea3e4c1b /node_modules/csso/lib/replace/AttributeSelector.js
parent3fd9400d4dccc25aa29b5702216732e0b7542073 (diff)
postcss,(plugins): nanocss, postcss-preset-env
Diffstat (limited to 'node_modules/csso/lib/replace/AttributeSelector.js')
-rw-r--r--node_modules/csso/lib/replace/AttributeSelector.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/csso/lib/replace/AttributeSelector.js b/node_modules/csso/lib/replace/AttributeSelector.js
new file mode 100644
index 00000000..3821530c
--- /dev/null
+++ b/node_modules/csso/lib/replace/AttributeSelector.js
@@ -0,0 +1,28 @@
+// 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);
+}
+
+export default function(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
+ };
+ }
+};