diff options
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; |
