Repository URL to install this package:
|
Version:
4.1.3-alpha.1 ▾
|
/**
* Expose `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) {
let buf = ''
delim = delim || ''
for (let i = 0, length = nodes.length; i < length; i++) {
buf += this.visit(nodes[i])
if (delim && i < length - 1) {
buf += this.emit(delim)
}
}
return buf
}
export default Compiler