classDeclarationUtils.js 1.2 KB

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var ts = require("typescript");
  4. exports.getDeclaredProperties = function (declaration) {
  5. var members = declaration.members;
  6. var ctr = members.find(ts.isConstructorDeclaration);
  7. var params = (ctr ? ctr.parameters.filter(ts.isParameter) : []);
  8. return members.filter(function (x) { return ts.isPropertyDeclaration(x) || ts.isGetAccessor(x) || ts.isSetAccessor(x); }).concat(params);
  9. };
  10. exports.getDeclaredPropertyNames = function (declaration) {
  11. return exports.getDeclaredProperties(declaration)
  12. .filter(function (p) { return p.name && ts.isIdentifier(p.name); })
  13. .map(function (p) { return p.name.text; })
  14. .reduce(function (accum, p) {
  15. accum[p] = true;
  16. return accum;
  17. }, {});
  18. };
  19. exports.getDeclaredMethods = function (declaration) {
  20. return declaration.members.filter(ts.isMethodDeclaration);
  21. };
  22. exports.getDeclaredMethodNames = function (declaration) {
  23. return exports.getDeclaredMethods(declaration)
  24. .map(function (d) { return d.name.text; })
  25. .reduce(function (accum, m) {
  26. accum[m] = true;
  27. return accum;
  28. }, {});
  29. };