UNPKG

mlh-tsd

Version:

Check TypeScript type definitions

42 lines (41 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expressionToString = exports.resolveJSDocTags = void 0; const typescript_1 = require("../../../libraries/typescript/lib/typescript"); /** * Resolve the JSDoc tags from the expression. If these tags couldn't be found, it will return `undefined`. * * @param checker - The TypeScript type checker. * @param expression - The expression to resolve the JSDoc tags for. * @return A unique Set of JSDoc tags or `undefined` if they couldn't be resolved. */ exports.resolveJSDocTags = (checker, expression) => { const ref = typescript_1.isCallLikeExpression(expression) ? checker.getResolvedSignature(expression) : checker.getSymbolAtLocation(expression); if (!ref) { return; } return new Map(ref.getJsDocTags().map(tag => [tag.name, tag])); }; /** * Convert a TypeScript expression to a string. * * @param checker - The TypeScript type checker. * @param expression - The expression to convert. * @return The string representation of the expression or `undefined` if it couldn't be resolved. */ exports.expressionToString = (checker, expression) => { if (typescript_1.isCallLikeExpression(expression)) { const signature = checker.getResolvedSignature(expression); if (!signature) { return; } return checker.signatureToString(signature); } const symbol = checker.getSymbolAtLocation(expression); if (!symbol) { return; } return checker.symbolToString(symbol, expression); };