mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			738 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			738 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| /**
 | |
|  * Expose `Compiler`.
 | |
|  */
 | |
| 
 | |
| module.exports = Compiler;
 | |
| 
 | |
| /**
 | |
|  * Initialize a compiler.
 | |
|  *
 | |
|  * @param {Type} name
 | |
|  * @return {Type}
 | |
|  * @api public
 | |
|  */
 | |
| 
 | |
| function Compiler(opts) {
 | |
|   this.options = opts || {};
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Emit `str`
 | |
|  */
 | |
| 
 | |
| Compiler.prototype.emit = function(str) {
 | |
|   return str;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Visit `node`.
 | |
|  */
 | |
| 
 | |
| Compiler.prototype.visit = function(node){
 | |
|   return this[node.type](node);
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Map visit over array of `nodes`, optionally using a `delim`
 | |
|  */
 | |
| 
 | |
| Compiler.prototype.mapVisit = function(nodes, delim){
 | |
|   var buf = '';
 | |
|   delim = delim || '';
 | |
| 
 | |
|   for (var i = 0, length = nodes.length; i < length; i++) {
 | |
|     buf += this.visit(nodes[i]);
 | |
|     if (delim && i < length - 1) buf += this.emit(delim);
 | |
|   }
 | |
| 
 | |
|   return buf;
 | |
| };
 |