UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for AST navigation and code generation.

37 lines (35 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const errors = require("./../../errors"); const callBaseFill_1 = require("./../callBaseFill"); const setBodyTextForNode_1 = require("./helpers/setBodyTextForNode"); function BodyableNode(Base) { return class extends Base { isBodyableNode() { return true; } getBodyOrThrow() { const body = this.getBody(); if (body == null) throw new errors.InvalidOperationError("A node body is required to do this operation."); return body; } getBody() { const body = this.compilerNode.body; return body == null ? undefined : this.global.compilerFactory.getNodeFromCompilerNode(body, this.sourceFile); } setBodyText(text) { const body = this.getBodyOrThrow(); setBodyTextForNode_1.setBodyTextForNode(body, text); return this; } fill(structure) { callBaseFill_1.callBaseFill(Base.prototype, this, structure); if (structure.bodyText != null) this.setBodyText(structure.bodyText); return this; } }; } exports.BodyableNode = BodyableNode; //# sourceMappingURL=BodyableNode.js.map