You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							1.5 KiB
						
					
					
				'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;
 | 
						|
 |