firescript
Version:
Firescript transpiler
35 lines (30 loc) • 764 B
JavaScript
const SuperArray = require('superarr')
const JSElement = require('./JSElement')
/**
* TemplateLiteral
*
* @class TemplateLiteral
* @extends JSElement
*
* interface TemplateLiteral {
* type: 'TemplateLiteral';
* quasis: TemplateElement[];
* expressions: Expression[];
* }
*/
class TemplateLiteral extends JSElement {
constructor (ast) {
super(ast)
this.quasis = this.createElementList(ast.quasis)
this.expressions = this.createElementList(ast.expressions)
}
compile (buffer) {
buffer.registerItem(this.location)
buffer.write('`')
const elements = SuperArray.merge(this.quasis, this.expressions)
elements[0].head = true
buffer.loop(elements, '')
buffer.write('`')
}
}
module.exports = TemplateLiteral