diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:05:55 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:05:55 +0800 |
| commit | c06f7ee0a40255214c477e13d9b956a7e07c2900 (patch) | |
| tree | f5982a568ef8fab865d0142e71c7494fea3e4c1b /node_modules/csso/cjs/syntax.cjs | |
| parent | 3fd9400d4dccc25aa29b5702216732e0b7542073 (diff) | |
postcss,(plugins): nanocss, postcss-preset-env
Diffstat (limited to 'node_modules/csso/cjs/syntax.cjs')
| -rw-r--r-- | node_modules/csso/cjs/syntax.cjs | 60 |
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; |
