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