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;
 | 
						|
};
 |