1 | "use strict";
|
2 |
|
3 |
|
4 | Object.defineProperty(exports, "__esModule", { value: true });
|
5 | exports.AstImport = exports.AstImportKind = void 0;
|
6 | const node_core_library_1 = require("@rushstack/node-core-library");
|
7 | const AstEntity_1 = require("./AstEntity");
|
8 |
|
9 |
|
10 |
|
11 | var AstImportKind;
|
12 | (function (AstImportKind) {
|
13 | |
14 |
|
15 |
|
16 | AstImportKind[AstImportKind["DefaultImport"] = 0] = "DefaultImport";
|
17 | |
18 |
|
19 |
|
20 | AstImportKind[AstImportKind["NamedImport"] = 1] = "NamedImport";
|
21 | |
22 |
|
23 |
|
24 | AstImportKind[AstImportKind["StarImport"] = 2] = "StarImport";
|
25 | |
26 |
|
27 |
|
28 | AstImportKind[AstImportKind["EqualsImport"] = 3] = "EqualsImport";
|
29 | |
30 |
|
31 |
|
32 | AstImportKind[AstImportKind["ImportType"] = 4] = "ImportType";
|
33 | })(AstImportKind = exports.AstImportKind || (exports.AstImportKind = {}));
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | class AstImport extends AstEntity_1.AstSyntheticEntity {
|
39 | constructor(options) {
|
40 | super();
|
41 | this.importKind = options.importKind;
|
42 | this.modulePath = options.modulePath;
|
43 | this.exportName = options.exportName;
|
44 |
|
45 | this.isTypeOnlyEverywhere = options.isTypeOnly;
|
46 | this.key = AstImport.getKey(options);
|
47 | }
|
48 |
|
49 | get localName() {
|
50 |
|
51 | return this.exportName;
|
52 | }
|
53 | |
54 |
|
55 |
|
56 | static getKey(options) {
|
57 | switch (options.importKind) {
|
58 | case AstImportKind.DefaultImport:
|
59 | return `${options.modulePath}:${options.exportName}`;
|
60 | case AstImportKind.NamedImport:
|
61 | return `${options.modulePath}:${options.exportName}`;
|
62 | case AstImportKind.StarImport:
|
63 | return `${options.modulePath}:*`;
|
64 | case AstImportKind.EqualsImport:
|
65 | return `${options.modulePath}:=`;
|
66 | case AstImportKind.ImportType: {
|
67 | const subKey = !options.exportName
|
68 | ? '*'
|
69 | : options.exportName.includes('.')
|
70 | ? options.exportName.split('.')[0]
|
71 | : options.exportName;
|
72 | return `${options.modulePath}:${subKey}`;
|
73 | }
|
74 | default:
|
75 | throw new node_core_library_1.InternalError('Unknown AstImportKind');
|
76 | }
|
77 | }
|
78 | }
|
79 | exports.AstImport = AstImport;
|
80 |
|
\ | No newline at end of file |