UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for AST navigation and code generation.

38 lines (36 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts = require("typescript"); const errors = require("./../../../errors"); const callBaseFill_1 = require("./../../callBaseFill"); const callBaseGetStructure_1 = require("./../../callBaseGetStructure"); function AbstractableNode(Base) { return class extends Base { isAbstract() { return this.getAbstractKeyword() != null; } getAbstractKeyword() { return this.getFirstModifierByKind(ts.SyntaxKind.AbstractKeyword); } getAbstractKeywordOrThrow() { return errors.throwIfNullOrUndefined(this.getAbstractKeyword(), "Expected to find an abstract keyword."); } setIsAbstract(isAbstract) { this.toggleModifier("abstract", isAbstract); return this; } fill(structure) { callBaseFill_1.callBaseFill(Base.prototype, this, structure); if (structure.isAbstract != null) this.setIsAbstract(structure.isAbstract); return this; } getStructure() { return callBaseGetStructure_1.callBaseGetStructure(Base.prototype, this, { isAbstract: this.isAbstract() }); } }; } exports.AbstractableNode = AbstractableNode; //# sourceMappingURL=AbstractableNode.js.map