ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
38 lines (36 loc) • 1.37 kB
JavaScript
;
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