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.
31 lines
598 B
31 lines
598 B
var generate = require('css-tree').generate; |
|
|
|
function Index() { |
|
this.seed = 0; |
|
this.map = Object.create(null); |
|
} |
|
|
|
Index.prototype.resolve = function(str) { |
|
var index = this.map[str]; |
|
|
|
if (!index) { |
|
index = ++this.seed; |
|
this.map[str] = index; |
|
} |
|
|
|
return index; |
|
}; |
|
|
|
module.exports = function createDeclarationIndexer() { |
|
var ids = new Index(); |
|
|
|
return function markDeclaration(node) { |
|
var id = generate(node); |
|
|
|
node.id = ids.resolve(id); |
|
node.length = id.length; |
|
node.fingerprint = null; |
|
|
|
return node; |
|
}; |
|
};
|
|
|