summaryrefslogtreecommitdiff
path: root/node_modules/csso/cjs/syntax.cjs
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/cjs/syntax.cjs
parent3fd9400d4dccc25aa29b5702216732e0b7542073 (diff)
postcss,(plugins): nanocss, postcss-preset-env
Diffstat (limited to 'node_modules/csso/cjs/syntax.cjs')
-rw-r--r--node_modules/csso/cjs/syntax.cjs60
1 files changed, 60 insertions, 0 deletions
diff --git a/node_modules/csso/cjs/syntax.cjs b/node_modules/csso/cjs/syntax.cjs
new file mode 100644
index 00000000..527604c0
--- /dev/null
+++ b/node_modules/csso/cjs/syntax.cjs
@@ -0,0 +1,60 @@
+'use strict';
+
+const cssTree = require('css-tree');
+const compress = require('./compress.cjs');
+const specificity = require('./restructure/prepare/specificity.cjs');
+
+function encodeString(value) {
+ const stringApostrophe = cssTree.string.encode(value, true);
+ const stringQuote = cssTree.string.encode(value);
+
+ return stringApostrophe.length < stringQuote.length
+ ? stringApostrophe
+ : stringQuote;
+}
+
+const {
+ lexer,
+ tokenize,
+ parse,
+ generate,
+ walk,
+ find,
+ findLast,
+ findAll,
+ fromPlainObject,
+ toPlainObject
+} = cssTree.fork({
+ node: {
+ String: {
+ generate(node) {
+ this.token(cssTree.tokenTypes.String, encodeString(node.value));
+ }
+ },
+ Url: {
+ generate(node) {
+ const encodedUrl = cssTree.url.encode(node.value);
+ const string = encodeString(node.value);
+
+ this.token(cssTree.tokenTypes.Url,
+ encodedUrl.length <= string.length + 5 /* "url()".length */
+ ? encodedUrl
+ : 'url(' + string + ')'
+ );
+ }
+ }
+ }
+});
+
+exports.compress = compress;
+exports.specificity = specificity;
+exports.find = find;
+exports.findAll = findAll;
+exports.findLast = findLast;
+exports.fromPlainObject = fromPlainObject;
+exports.generate = generate;
+exports.lexer = lexer;
+exports.parse = parse;
+exports.toPlainObject = toPlainObject;
+exports.tokenize = tokenize;
+exports.walk = walk;