32 lines
		
	
	
		
			598 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			598 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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;
 | 
						|
    };
 | 
						|
};
 |