ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
37 lines (35 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ts = require("typescript");
const errors = require("./../../errors");
const manipulation_1 = require("./../../manipulation");
const callBaseFill_1 = require("./../callBaseFill");
const common_1 = require("./../common");
const base_1 = require("./../base");
const base_2 = require("./base");
exports.PropertyDeclarationBase = base_1.DecoratableNode(base_2.AbstractableNode(base_1.ScopedNode(base_1.StaticableNode(base_1.DocumentationableNode(base_1.ReadonlyableNode(base_1.QuestionTokenableNode(base_1.InitializerExpressionableNode(base_1.TypedNode(base_1.PropertyNamedNode(base_1.ModifierableNode(common_1.Node)))))))))));
class PropertyDeclaration extends exports.PropertyDeclarationBase {
/**
* Fills the node from a structure.
* @param structure - Structure to fill.
*/
fill(structure) {
callBaseFill_1.callBaseFill(exports.PropertyDeclarationBase.prototype, this, structure);
return this;
}
/**
* Removes the property.
*/
remove() {
const parent = this.getParentOrThrow();
switch (parent.getKind()) {
case ts.SyntaxKind.ClassDeclaration:
manipulation_1.removeClassMember(this);
break;
default:
throw new errors.NotImplementedError(`Not implemented parent syntax kind: ${parent.getKindName()}`);
}
}
}
exports.PropertyDeclaration = PropertyDeclaration;
//# sourceMappingURL=PropertyDeclaration.js.map