UNPKG

10.6 kBJavaScriptView Raw
1import ts from 'typescript';
2import * as utils from './utils';
3export function getName(node) {
4 return node.name;
5}
6export function getDeclarations(node) {
7 const declarations = utils.getValueOrUndefined(node.declarations);
8 return declarations === undefined ? [] : declarations;
9}
10export function getValueDeclaration(node) {
11 return utils.getValueOrUndefined(node.valueDeclaration);
12}
13export function getValueDeclarationOrThrow(node) {
14 return utils.throwIfNullOrUndefined(getValueDeclaration(node), 'value declaration');
15}
16function hasSymbolFlag(node, flag) {
17 return (node.flags & flag) !== 0;
18}
19export function getAliasedSymbol(typeChecker, node) {
20 if (hasSymbolFlag(node, ts.SymbolFlags.Alias)) {
21 return utils.getValueOrUndefined(typeChecker.getAliasedSymbol(node));
22 }
23 return undefined;
24}
25export function getSymbolOrAlias(typeChecker, symbol) {
26 const alias = getAliasedSymbol(typeChecker, symbol);
27 return alias === undefined ? symbol : alias;
28}
29export function getMembers(node) {
30 const members = utils.getValueOrUndefined(node.members);
31 return members === undefined ? utils.getValueOrUndefined(node.exports) : members;
32}
33export function getMembersOrThrow(node) {
34 return utils.throwIfNullOrUndefined(getMembers(node), 'members');
35}
36export function getMember(node, name) {
37 const members = getMembers(node);
38 return members === undefined ? undefined : members.get(name);
39}
40export function getMemberOrThrow(node, name) {
41 return utils.throwIfNullOrUndefined(getMember(node, name), 'symbol member');
42}
43export function getExports(node) {
44 return utils.getValueOrUndefined(node.exports);
45}
46export function getExportsOrThrow(node) {
47 return utils.throwIfNullOrUndefined(getExports(node), 'exports');
48}
49export function getExport(node, name) {
50 const exports = getExports(node);
51 return exports === undefined ? undefined : exports.get(name);
52}
53export function getExportOrThrow(node, name) {
54 return utils.throwIfNullOrUndefined(getExport(node, name), 'symbol export');
55}
56export function isArgumentsSymbol(typeChecker, node) {
57 return typeChecker.isArgumentsSymbol(node);
58}
59export function getTarget(symbol) {
60 const symbolAny = symbol;
61 return symbolAny.target == undefined ? symbol : symbolAny.target;
62}
63export function getParent(symbol) {
64 const symbolAny = symbol;
65 return symbolAny.parent == undefined ? undefined : symbolAny.parent;
66}
67
68//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDdEUsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXRzLXV0aWxzL3NyYy9zeW1ib2wuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWUobm9kZTogdHMuU3ltYm9sKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5vZGUubmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlY2xhcmF0aW9ucyhub2RlOiB0cy5TeW1ib2wpOiByZWFkb25seSB0cy5EZWNsYXJhdGlvbltdIHtcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gdXRpbHMuZ2V0VmFsdWVPclVuZGVmaW5lZChub2RlLmRlY2xhcmF0aW9ucyk7XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9ucyA9PT0gdW5kZWZpbmVkID8gW10gOiBkZWNsYXJhdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZURlY2xhcmF0aW9uKG5vZGU6IHRzLlN5bWJvbCk6IHRzLkRlY2xhcmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHV0aWxzLmdldFZhbHVlT3JVbmRlZmluZWQobm9kZS52YWx1ZURlY2xhcmF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlRGVjbGFyYXRpb25PclRocm93KG5vZGU6IHRzLlN5bWJvbCk6IHRzLkRlY2xhcmF0aW9uIHtcbiAgcmV0dXJuIHV0aWxzLnRocm93SWZOdWxsT3JVbmRlZmluZWQoZ2V0VmFsdWVEZWNsYXJhdGlvbihub2RlKSwgJ3ZhbHVlIGRlY2xhcmF0aW9uJyk7XG59XG5cbmZ1bmN0aW9uIGhhc1N5bWJvbEZsYWcobm9kZTogdHMuU3ltYm9sLCBmbGFnOiB0cy5TeW1ib2xGbGFncyk6IGJvb2xlYW4ge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICByZXR1cm4gKG5vZGUuZmxhZ3MgJiBmbGFnKSAhPT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsaWFzZWRTeW1ib2wodHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBub2RlOiB0cy5TeW1ib2wpOiB0cy5TeW1ib2wgfCB1bmRlZmluZWQge1xuICBpZiAoaGFzU3ltYm9sRmxhZyhub2RlLCB0cy5TeW1ib2xGbGFncy5BbGlhcykpIHtcbiAgICByZXR1cm4gdXRpbHMuZ2V0VmFsdWVPclVuZGVmaW5lZCh0eXBlQ2hlY2tlci5nZXRBbGlhc2VkU3ltYm9sKG5vZGUpKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeW1ib2xPckFsaWFzKHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgc3ltYm9sOiB0cy5TeW1ib2wpOiB0cy5TeW1ib2wge1xuICBjb25zdCBhbGlhcyA9IGdldEFsaWFzZWRTeW1ib2wodHlwZUNoZWNrZXIsIHN5bWJvbCk7XG5cbiAgcmV0dXJuIGFsaWFzID09PSB1bmRlZmluZWQgPyBzeW1ib2wgOiBhbGlhcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1lbWJlcnMobm9kZTogdHMuU3ltYm9sKTogdHMuU3ltYm9sVGFibGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZW1iZXJzID0gdXRpbHMuZ2V0VmFsdWVPclVuZGVmaW5lZChub2RlLm1lbWJlcnMpO1xuXG4gIHJldHVybiBtZW1iZXJzID09PSB1bmRlZmluZWQgPyB1dGlscy5nZXRWYWx1ZU9yVW5kZWZpbmVkKG5vZGUuZXhwb3J0cykgOiBtZW1iZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVtYmVyc09yVGhyb3cobm9kZTogdHMuU3ltYm9sKTogdHMuU3ltYm9sVGFibGUge1xuICByZXR1cm4gdXRpbHMudGhyb3dJZk51bGxPclVuZGVmaW5lZChnZXRNZW1iZXJzKG5vZGUpLCAnbWVtYmVycycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVtYmVyKG5vZGU6IHRzLlN5bWJvbCwgbmFtZTogc3RyaW5nKTogdHMuU3ltYm9sIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWVtYmVycyA9IGdldE1lbWJlcnMobm9kZSk7XG5cbiAgcmV0dXJuIG1lbWJlcnMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IG1lbWJlcnMuZ2V0KG5hbWUgYXMgdHMuX19TdHJpbmcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVtYmVyT3JUaHJvdyhub2RlOiB0cy5TeW1ib2wsIG5hbWU6IHN0cmluZyk6IHRzLlN5bWJvbCB7XG4gIHJldHVybiB1dGlscy50aHJvd0lmTnVsbE9yVW5kZWZpbmVkKGdldE1lbWJlcihub2RlLCBuYW1lKSwgJ3N5bWJvbCBtZW1iZXInKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4cG9ydHMobm9kZTogdHMuU3ltYm9sKTogdHMuU3ltYm9sVGFibGUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdXRpbHMuZ2V0VmFsdWVPclVuZGVmaW5lZChub2RlLmV4cG9ydHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhwb3J0c09yVGhyb3cobm9kZTogdHMuU3ltYm9sKTogdHMuU3ltYm9sVGFibGUge1xuICByZXR1cm4gdXRpbHMudGhyb3dJZk51bGxPclVuZGVmaW5lZChnZXRFeHBvcnRzKG5vZGUpLCAnZXhwb3J0cycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhwb3J0KG5vZGU6IHRzLlN5bWJvbCwgbmFtZTogc3RyaW5nKTogdHMuU3ltYm9sIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZXhwb3J0cyA9IGdldEV4cG9ydHMobm9kZSk7XG5cbiAgcmV0dXJuIGV4cG9ydHMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGV4cG9ydHMuZ2V0KG5hbWUgYXMgdHMuX19TdHJpbmcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhwb3J0T3JUaHJvdyhub2RlOiB0cy5TeW1ib2wsIG5hbWU6IHN0cmluZyk6IHRzLlN5bWJvbCB7XG4gIHJldHVybiB1dGlscy50aHJvd0lmTnVsbE9yVW5kZWZpbmVkKGdldEV4cG9ydChub2RlLCBuYW1lKSwgJ3N5bWJvbCBleHBvcnQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJndW1lbnRzU3ltYm9sKHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgbm9kZTogdHMuU3ltYm9sKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlQ2hlY2tlci5pc0FyZ3VtZW50c1N5bWJvbChub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhcmdldChzeW1ib2w6IHRzLlN5bWJvbCk6IHRzLlN5bWJvbCB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbiAgY29uc3Qgc3ltYm9sQW55OiBhbnkgPSBzeW1ib2w7XG5cbiAgcmV0dXJuIHN5bWJvbEFueS50YXJnZXQgPT0gdW5kZWZpbmVkID8gc3ltYm9sIDogc3ltYm9sQW55LnRhcmdldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcmVudChzeW1ib2w6IHRzLlN5bWJvbCk6IHRzLlN5bWJvbCB8IHVuZGVmaW5lZCB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbiAgY29uc3Qgc3ltYm9sQW55OiBhbnkgPSBzeW1ib2w7XG5cbiAgcmV0dXJuIHN5bWJvbEFueS5wYXJlbnQgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc3ltYm9sQW55LnBhcmVudDtcbn1cbiJdfQ==