UNPKG

3.46 kBJavaScriptView Raw
1import ts from 'typescript';
2import * as guards from './guards';
3import * as node_ from './node';
4import * as utils from './utils';
5export function isAmbientNode(node) {
6 const ambient = (ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Ambient) === ts.ModifierFlags.Ambient;
7 return ambient || ts.isInterfaceDeclaration(node) || ts.isTypeAliasDeclaration(node);
8}
9export function isAmbient(node) {
10 if (isAmbientNode(node) || node.getSourceFile().isDeclarationFile) {
11 return true;
12 }
13 for (const ancestor of node_.getAncestors(node)) {
14 if (guards.isDeclaration(ancestor) && isAmbientNode(ancestor)) {
15 return true;
16 }
17 }
18 return false;
19}
20export function getReturnTypeNode(node) {
21 return utils.getValueOrUndefined(node.type);
22}
23
24//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlY2xhcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEtBQUssS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUVqQyxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQW9CO0lBQ2hELE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFFNUcsT0FBTyxPQUFPLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2RixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFvQjtJQUM1QyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsaUJBQWlCLEVBQUU7UUFDakUsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUdELEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMvQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdELE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFzRDtJQUN0RixPQUFPLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXRzLXV0aWxzL3NyYy9kZWNsYXJhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIG5vLWJpdHdpc2VcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCAqIGFzIGd1YXJkcyBmcm9tICcuL2d1YXJkcyc7XG5pbXBvcnQgKiBhcyBub2RlXyBmcm9tICcuL25vZGUnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FtYmllbnROb2RlKG5vZGU6IHRzLkRlY2xhcmF0aW9uKTogYm9vbGVhbiB7XG4gIGNvbnN0IGFtYmllbnQgPSAodHMuZ2V0Q29tYmluZWRNb2RpZmllckZsYWdzKG5vZGUpICYgdHMuTW9kaWZpZXJGbGFncy5BbWJpZW50KSA9PT0gdHMuTW9kaWZpZXJGbGFncy5BbWJpZW50O1xuXG4gIHJldHVybiBhbWJpZW50IHx8IHRzLmlzSW50ZXJmYWNlRGVjbGFyYXRpb24obm9kZSkgfHwgdHMuaXNUeXBlQWxpYXNEZWNsYXJhdGlvbihub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQW1iaWVudChub2RlOiB0cy5EZWNsYXJhdGlvbik6IGJvb2xlYW4ge1xuICBpZiAoaXNBbWJpZW50Tm9kZShub2RlKSB8fCBub2RlLmdldFNvdXJjZUZpbGUoKS5pc0RlY2xhcmF0aW9uRmlsZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3Atc3RhdGVtZW50XG4gIGZvciAoY29uc3QgYW5jZXN0b3Igb2Ygbm9kZV8uZ2V0QW5jZXN0b3JzKG5vZGUpKSB7XG4gICAgaWYgKGd1YXJkcy5pc0RlY2xhcmF0aW9uKGFuY2VzdG9yKSAmJiBpc0FtYmllbnROb2RlKGFuY2VzdG9yKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmV0dXJuVHlwZU5vZGUobm9kZTogdHMuTWV0aG9kRGVjbGFyYXRpb24gfCB0cy5HZXRBY2Nlc3NvckRlY2xhcmF0aW9uKTogdHMuVHlwZU5vZGUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdXRpbHMuZ2V0VmFsdWVPclVuZGVmaW5lZChub2RlLnR5cGUpO1xufVxuIl19