Skip to main content
Glama
SiroSuzume

MCP ts-morph Refactoring Tools

by SiroSuzume
get-declaration-identifier.ts1.17 kB
import { Node, type Statement, type Identifier } from "ts-morph"; /** * Statement (主に宣言) から主要な Identifier ノードを取得する。 * internal-dependencies.ts の自己参照チェックロジックをベースにする。 */ export function getDeclarationIdentifier( statement: Statement, ): Identifier | undefined { let nameNode: Node | undefined; if (Node.isVariableStatement(statement)) { // VariableStatement の場合は最初の VariableDeclaration を見る nameNode = statement.getDeclarations()[0]?.getNameNode(); } else if ( Node.isFunctionDeclaration(statement) || Node.isClassDeclaration(statement) || Node.isInterfaceDeclaration(statement) || Node.isTypeAliasDeclaration(statement) || Node.isEnumDeclaration(statement) ) { nameNode = statement.getNameNode(); } else if (Node.isVariableDeclaration(statement)) { // VariableDeclaration 自体が渡された場合 (あまりないが) nameNode = statement.getNameNode(); } // 他のケース (EnumMember, Parameter など) も必要に応じて追加可能 if (nameNode && Node.isIdentifier(nameNode)) { return nameNode; } return undefined; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SiroSuzume/mcp-ts-morph'

If you have feedback or need assistance with the MCP directory API, please join our Discord server