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.
32 lines
821 B
32 lines
821 B
import { walk } from 'css-tree'; |
|
import Atrule from './Atrule.js'; |
|
import AttributeSelector from './AttributeSelector.js'; |
|
import Value from './Value.js'; |
|
import Dimension from './Dimension.js'; |
|
import Percentage from './Percentage.js'; |
|
import { Number } from './Number.js'; |
|
import Url from './Url.js'; |
|
import { compressHex, compressIdent, compressFunction } from './color.js'; |
|
|
|
const handlers = { |
|
Atrule, |
|
AttributeSelector, |
|
Value, |
|
Dimension, |
|
Percentage, |
|
Number, |
|
Url, |
|
Hash: compressHex, |
|
Identifier: compressIdent, |
|
Function: compressFunction |
|
}; |
|
|
|
export default function(ast) { |
|
walk(ast, { |
|
leave(node, item, list) { |
|
if (handlers.hasOwnProperty(node.type)) { |
|
handlers[node.type].call(this, node, item, list); |
|
} |
|
} |
|
}); |
|
};
|
|
|