1 | import ts from 'typescript';
|
2 | import * as node_ from './node';
|
3 | import * as utils from './utils';
|
4 | export function getImportClause(node) {
|
5 | return utils.getValueOrUndefined(node.importClause);
|
6 | }
|
7 | export 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 | }
|
14 | export function getNamespaceImportIdentifier(node) {
|
15 | return getNamespaceImport(node) === undefined
|
16 | ? undefined
|
17 | : node_.getFirstDescendantByKind(node, ts.SyntaxKind.Identifier);
|
18 | }
|
19 | export 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 | }
|
30 | export 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
|