UNPKG

5.88 kBJavaScriptView Raw
1import ts from 'typescript';
2import * as node_ from './node';
3import * as utils from './utils';
4export function getImportClause(node) {
5 return utils.getValueOrUndefined(node.importClause);
6}
7export function getNamespaceImport(node) {
8 const clause = getImportClause(node);
9 if (clause === undefined) {
10 return undefined;
11 }
12 return node_.getFirstDescendantByKind(node, ts.SyntaxKind.NamespaceImport);
13}
14export function getNamespaceImportIdentifier(node) {
15 return getNamespaceImport(node) === undefined
16 ? undefined
17 : node_.getFirstDescendantByKind(node, ts.SyntaxKind.Identifier);
18}
19export function getDefaultImport(node) {
20 const clause = getImportClause(node);
21 if (clause === undefined) {
22 return undefined;
23 }
24 const namespaceImport = node_.getFirstDescendantByKind(node, ts.SyntaxKind.NamespaceImport);
25 if (namespaceImport !== undefined) {
26 return undefined;
27 }
28 return clause.name;
29}
30export function getNamedImports(node) {
31 const clause = getImportClause(node);
32 if (clause === undefined) {
33 return [];
34 }
35 const namedImports = clause.namedBindings === undefined || !ts.isNamedImports(clause.namedBindings) ? undefined : clause.namedBindings;
36 if (namedImports === undefined) {
37 return [];
38 }
39 const imps = utils.getValueOrUndefined(namedImports.elements);
40 return imps === undefined ? [] : imps;
41}
42
43//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcG9ydERlY2xhcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEtBQUssS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUVqQyxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQTBCO0lBQ3hELE9BQU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQTBCO0lBQzNELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDeEIsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxPQUFPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQTBCO0lBQ3JFLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUztRQUMzQyxDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUEwQjtJQUN6RCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3hCLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVGLElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRTtRQUNqQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDO0FBR0QsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUEwQjtJQUN4RCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3hCLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLGFBQWEsS0FBSyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO0lBQ3BILElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTtRQUM5QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5RCxPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3hDLENBQUMiLCJmaWxlIjoibmVvLW9uZS10cy11dGlscy9zcmMvaW1wb3J0RGVjbGFyYXRpb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgKiBhcyBub2RlXyBmcm9tICcuL25vZGUnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRDbGF1c2Uobm9kZTogdHMuSW1wb3J0RGVjbGFyYXRpb24pOiB0cy5JbXBvcnRDbGF1c2UgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdXRpbHMuZ2V0VmFsdWVPclVuZGVmaW5lZChub2RlLmltcG9ydENsYXVzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW1lc3BhY2VJbXBvcnQobm9kZTogdHMuSW1wb3J0RGVjbGFyYXRpb24pOiB0cy5OYW1lc3BhY2VJbXBvcnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBjbGF1c2UgPSBnZXRJbXBvcnRDbGF1c2Uobm9kZSk7XG4gIGlmIChjbGF1c2UgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gbm9kZV8uZ2V0Rmlyc3REZXNjZW5kYW50QnlLaW5kKG5vZGUsIHRzLlN5bnRheEtpbmQuTmFtZXNwYWNlSW1wb3J0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVzcGFjZUltcG9ydElkZW50aWZpZXIobm9kZTogdHMuSW1wb3J0RGVjbGFyYXRpb24pOiB0cy5JZGVudGlmaWVyIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldE5hbWVzcGFjZUltcG9ydChub2RlKSA9PT0gdW5kZWZpbmVkXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IG5vZGVfLmdldEZpcnN0RGVzY2VuZGFudEJ5S2luZChub2RlLCB0cy5TeW50YXhLaW5kLklkZW50aWZpZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEltcG9ydChub2RlOiB0cy5JbXBvcnREZWNsYXJhdGlvbik6IHRzLklkZW50aWZpZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBjbGF1c2UgPSBnZXRJbXBvcnRDbGF1c2Uobm9kZSk7XG4gIGlmIChjbGF1c2UgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBuYW1lc3BhY2VJbXBvcnQgPSBub2RlXy5nZXRGaXJzdERlc2NlbmRhbnRCeUtpbmQobm9kZSwgdHMuU3ludGF4S2luZC5OYW1lc3BhY2VJbXBvcnQpO1xuICBpZiAobmFtZXNwYWNlSW1wb3J0ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGNsYXVzZS5uYW1lO1xufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgZXhwb3J0LW5hbWVcbmV4cG9ydCBmdW5jdGlvbiBnZXROYW1lZEltcG9ydHMobm9kZTogdHMuSW1wb3J0RGVjbGFyYXRpb24pOiByZWFkb25seSB0cy5JbXBvcnRTcGVjaWZpZXJbXSB7XG4gIGNvbnN0IGNsYXVzZSA9IGdldEltcG9ydENsYXVzZShub2RlKTtcbiAgaWYgKGNsYXVzZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgbmFtZWRJbXBvcnRzID1cbiAgICBjbGF1c2UubmFtZWRCaW5kaW5ncyA9PT0gdW5kZWZpbmVkIHx8ICF0cy5pc05hbWVkSW1wb3J0cyhjbGF1c2UubmFtZWRCaW5kaW5ncykgPyB1bmRlZmluZWQgOiBjbGF1c2UubmFtZWRCaW5kaW5ncztcbiAgaWYgKG5hbWVkSW1wb3J0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgaW1wcyA9IHV0aWxzLmdldFZhbHVlT3JVbmRlZmluZWQobmFtZWRJbXBvcnRzLmVsZW1lbnRzKTtcblxuICByZXR1cm4gaW1wcyA9PT0gdW5kZWZpbmVkID8gW10gOiBpbXBzO1xufVxuIl19