UNPKG

firescript

Version:
48 lines (40 loc) 995 B
const FirescriptElement = require('./FirescriptElement') /** * SwitchStatement * * @class SwitchStatement * @extends FirescriptElement * * interface SwitchStatement { * type: 'SwitchStatement'; * discriminant: Expression; * cases: SwitchCase[]; * } */ class SwitchStatement extends FirescriptElement { constructor (ast) { super(ast) this.discriminant = this.createElement(ast.discriminant) this.cases = this.createElementList(ast.cases) } toFSString (ctx) { const discriminant = this.discriminant.toFSString(ctx) const indention = ctx.indent(1) const cases = ctx.each(this.cases, this.blockHandler, ctx.indent()) ctx.indent(-1) return this.renderElement( 'switch ' + discriminant + indention + cases + '\n' ) } blockHandler (str, item, index, arr) { if (index + 1 === arr.length || item.consequent.length === 0) { return str } return str } } module.exports = SwitchStatement