ntts
Version:
A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.
40 lines (35 loc) • 1.04 kB
text/typescript
import {
ClassDeclaration,
ClassExpression,
GetAccessorDeclaration,
MethodDeclaration,
Node,
PropertyDeclaration,
SetAccessorDeclaration,
} from 'ts-morph';
type MethodFunction =
MethodDeclaration
| PropertyDeclaration
| GetAccessorDeclaration
| SetAccessorDeclaration;
class MethodFunctionHandler {
static getMethodFunctionNames = (_class: ClassExpression | ClassDeclaration): string[] => _class
.getMembers()
.reduce((names: string[], member) => {
if (Node.isConstructorDeclaration(member) || Node.isClassStaticBlockDeclaration(member)) {
return names;
}
return names.concat(member.getName());
}, []);
static getMethodFunction = (
name: string,
_class: ClassExpression | ClassDeclaration,
): MethodFunction | undefined => {
const member = _class.getMember(name);
if (Node.isConstructorDeclaration(member) || Node.isClassStaticBlockDeclaration(member)) {
return undefined;
}
return member;
};
}
export default MethodFunctionHandler;