@simplysm/sd-cli 7.0.59 → 7.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SdCliBuildResultError.d.ts +5 -0
- package/dist/SdCliBuildResultError.mjs +8 -0
- package/dist/bin/sd-cli.d.ts +2 -0
- package/dist/bin/sd-cli.mjs +3 -3
- package/dist/build-tool/SdCliCacheCompilerHost.d.ts +10 -0
- package/dist/build-tool/SdCliCordova.d.ts +16 -0
- package/dist/build-tool/SdCliCordova.mjs +171 -0
- package/dist/build-tool/SdCliIndexFileGenerator.d.ts +13 -0
- package/dist/{entry-points → build-tool}/SdCliIndexFileGenerator.mjs +4 -3
- package/dist/build-tool/SdCliNgCacheCompilerHost.d.ts +11 -0
- package/dist/build-tool/SdCliPackageLinter.d.ts +8 -0
- package/dist/build-tool/SdCliPackageLinter.mjs +19 -2
- package/dist/builder/SdCliClientBuilder.d.ts +23 -0
- package/dist/builder/SdCliClientBuilder.mjs +68 -6
- package/dist/builder/SdCliJsLibBuilder.d.ts +14 -0
- package/dist/builder/SdCliServerBuilder.d.ts +25 -0
- package/dist/builder/SdCliServerBuilder.mjs +11 -13
- package/dist/builder/SdCliTsLibBuilder.d.ts +34 -0
- package/dist/builder/SdCliTsLibBuilder.mjs +90 -20
- package/dist/commons.d.ts +85 -0
- package/dist/entry-points/SdCliLocalUpdate.d.ts +13 -0
- package/dist/entry-points/SdCliNpm.d.ts +6 -0
- package/dist/entry-points/SdCliPrepare.d.ts +5 -0
- package/dist/entry-points/SdCliWorkspace.d.ts +28 -0
- package/dist/entry-points/SdCliWorkspace.mjs +12 -16
- package/dist/index.d.ts +29 -0
- package/dist/index.mjs +30 -0
- package/dist/ng-tools/SdCliNgModuleGenerator.d.ts +26 -0
- package/dist/ng-tools/SdCliNgModuleGenerator.mjs +404 -0
- package/dist/ng-tools/babel/SdCliBbFileMetadata.d.ts +23 -0
- package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +482 -0
- package/dist/ng-tools/babel/SdCliBbRootMetadata.d.ts +22 -0
- package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +174 -0
- package/dist/ng-tools/babel/SdCliBbUtil.d.ts +5 -0
- package/dist/ng-tools/babel/SdCliBbUtil.mjs +14 -0
- package/dist/ng-tools/babel/TSdCliBbNgMetadata.d.ts +42 -0
- package/dist/ng-tools/babel/TSdCliBbNgMetadata.mjs +200 -0
- package/dist/ng-tools/babel/TSdCliBbTypeMetadata.d.ts +44 -0
- package/dist/ng-tools/babel/TSdCliBbTypeMetadata.mjs +127 -0
- package/dist/ng-tools/commons.d.ts +9 -0
- package/dist/ng-tools/commons.mjs +2 -0
- package/dist/ng-tools/typescript/SdCliTsFileMetadata.d.ts +61 -0
- package/dist/ng-tools/typescript/SdCliTsFileMetadata.mjs +326 -0
- package/dist/ng-tools/typescript/SdCliTsRootMetadata.d.ts +8 -0
- package/dist/ng-tools/typescript/SdCliTsRootMetadata.mjs +28 -0
- package/dist/ng-tools/typescript/SdCliTsUtil.d.ts +5 -0
- package/dist/ng-tools/typescript/SdCliTsUtil.mjs +28 -0
- package/dist/packages/SdCliPackage.d.ts +23 -0
- package/dist/packages/SdCliPackage.mjs +2 -3
- package/dist/utils/SdCliBuildResultUtil.d.ts +9 -0
- package/dist/utils/SdCliConfigUtil.d.ts +7 -0
- package/dist/utils/SdCliNpmConfigUtil.d.ts +7 -0
- package/dist/utils/SdCliNpmConfigUtil.mjs +3 -3
- package/package.json +16 -7
- package/src/SdCliBuildResultError.ts +9 -0
- package/src/bin/sd-cli.ts +2 -2
- package/src/build-tool/SdCliCordova.ts +219 -0
- package/src/{entry-points → build-tool}/SdCliIndexFileGenerator.ts +3 -2
- package/src/build-tool/SdCliPackageLinter.ts +18 -2
- package/src/builder/SdCliClientBuilder.ts +83 -5
- package/src/builder/SdCliServerBuilder.ts +10 -12
- package/src/builder/SdCliTsLibBuilder.ts +105 -21
- package/src/commons.ts +24 -0
- package/src/entry-points/SdCliWorkspace.ts +14 -17
- package/src/index.ts +29 -0
- package/src/ng-tools/SdCliNgModuleGenerator.ts +538 -0
- package/src/ng-tools/babel/SdCliBbFileMetadata.ts +568 -0
- package/src/ng-tools/babel/SdCliBbRootMetadata.ts +211 -0
- package/src/ng-tools/babel/SdCliBbUtil.ts +15 -0
- package/src/ng-tools/babel/TSdCliBbNgMetadata.ts +234 -0
- package/src/ng-tools/babel/TSdCliBbTypeMetadata.ts +177 -0
- package/src/ng-tools/commons.ts +3 -0
- package/src/ng-tools/typescript/SdCliTsFileMetadata.ts +385 -0
- package/src/ng-tools/typescript/SdCliTsRootMetadata.ts +32 -0
- package/src/ng-tools/typescript/SdCliTsUtil.ts +29 -0
- package/src/packages/SdCliPackage.ts +1 -2
- package/src/utils/SdCliNpmConfigUtil.ts +2 -2
- package/tsconfig-build.json +6 -2
- package/tsconfig.json +5 -1
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
import { isArrayExpression, isAssignmentExpression, isCallExpression, isClassDeclaration, isExportDeclaration, isExportDefaultDeclaration, isExportNamedDeclaration, isExportSpecifier, isExpressionStatement, isFunctionDeclaration, isIdentifier, isImportDeclaration, isImportDefaultSpecifier, isImportSpecifier, isMemberExpression, isObjectExpression, isSpreadElement, isStringLiteral, isVariableDeclaration, traverseFast } from "@babel/types";
|
|
2
|
+
import babelParser from "@babel/parser";
|
|
3
|
+
import { FsUtil } from "@simplysm/sd-core-node";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import { SdCliBbArrayMetadata, SdCliBbClassMetadata, SdCliBbFunctionMetadata, SdCliBbObjectMetadata, SdCliBbVariableMetadata } from "./TSdCliBbTypeMetadata";
|
|
6
|
+
import { SdCliBbUtil } from "./SdCliBbUtil";
|
|
7
|
+
import { NeverEntryError } from "@simplysm/sd-core-common";
|
|
8
|
+
export class SdCliBbFileMetadata {
|
|
9
|
+
constructor(filePath) {
|
|
10
|
+
this.filePath = filePath;
|
|
11
|
+
this._findMetaFromOutsideCache = new Map();
|
|
12
|
+
this._findMetaFromInsideCache = new Map();
|
|
13
|
+
this._getNgDecoArgCache = new Map();
|
|
14
|
+
let realFilePath;
|
|
15
|
+
for (const ext of ["", ".mjs", ".cjs", ".js"]) {
|
|
16
|
+
if (FsUtil.exists(filePath + ext) && !FsUtil.stat(filePath + ext).isDirectory()) {
|
|
17
|
+
realFilePath = filePath + ext;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (realFilePath === undefined) {
|
|
22
|
+
throw SdCliBbUtil.error("파일을 찾을 수 없습니다.", filePath);
|
|
23
|
+
}
|
|
24
|
+
const fileContent = FsUtil.readFile(realFilePath);
|
|
25
|
+
this.ast = babelParser.parse(fileContent, { sourceType: "module" });
|
|
26
|
+
this.rawMetas = this.ast.program.body;
|
|
27
|
+
}
|
|
28
|
+
get exports() {
|
|
29
|
+
if (this._exportsCache)
|
|
30
|
+
return this._exportsCache;
|
|
31
|
+
const result = [];
|
|
32
|
+
for (const rawMeta of this.rawMetas) {
|
|
33
|
+
if (!isExportDeclaration(rawMeta))
|
|
34
|
+
continue;
|
|
35
|
+
if (isExportNamedDeclaration(rawMeta)) {
|
|
36
|
+
if (rawMeta.declaration) {
|
|
37
|
+
if (isVariableDeclaration(rawMeta.declaration)) {
|
|
38
|
+
for (const decl of rawMeta.declaration.declarations) {
|
|
39
|
+
if (isIdentifier(decl.id)) {
|
|
40
|
+
result.push({
|
|
41
|
+
exportedName: decl.id.name,
|
|
42
|
+
target: new SdCliBbVariableMetadata(this, decl)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (isClassDeclaration(rawMeta.declaration)) {
|
|
51
|
+
result.push({
|
|
52
|
+
exportedName: rawMeta.declaration.id.name,
|
|
53
|
+
target: new SdCliBbClassMetadata(this, rawMeta.declaration)
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else if (isFunctionDeclaration(rawMeta.declaration)) {
|
|
57
|
+
if (rawMeta.declaration.id) {
|
|
58
|
+
result.push({
|
|
59
|
+
exportedName: rawMeta.declaration.id.name,
|
|
60
|
+
target: new SdCliBbFunctionMetadata(this, rawMeta.declaration)
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
for (const specifier of rawMeta.specifiers) {
|
|
73
|
+
if (isExportSpecifier(specifier)) {
|
|
74
|
+
const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
|
|
75
|
+
if (exportedName === undefined) {
|
|
76
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
77
|
+
}
|
|
78
|
+
if (rawMeta.source) {
|
|
79
|
+
if (rawMeta.source.value.includes(".")) {
|
|
80
|
+
const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
|
|
81
|
+
result.push({
|
|
82
|
+
exportedName,
|
|
83
|
+
target: {
|
|
84
|
+
filePath: moduleFilePath,
|
|
85
|
+
name: specifier.local.name,
|
|
86
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const moduleName = rawMeta.source.value;
|
|
92
|
+
result.push({
|
|
93
|
+
exportedName,
|
|
94
|
+
target: { moduleName, name: specifier.local.name, __TSdCliMetaRef__: "__TSdCliMetaRef__" }
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
result.push({
|
|
100
|
+
exportedName,
|
|
101
|
+
target: this._findMetaFromInside(specifier.local.name)
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (isExportDefaultDeclaration(rawMeta)) {
|
|
112
|
+
result.push({
|
|
113
|
+
exportedName: "default",
|
|
114
|
+
target: this.getMetaFromRaw(rawMeta.declaration)
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
if (rawMeta.source.value.includes(".")) {
|
|
119
|
+
const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
|
|
120
|
+
result.push({
|
|
121
|
+
exportedName: "*",
|
|
122
|
+
target: {
|
|
123
|
+
filePath: moduleFilePath,
|
|
124
|
+
name: "*",
|
|
125
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
this._exportsCache = result;
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
findMetaFromOutside(name) {
|
|
138
|
+
const cache = this._findMetaFromOutsideCache.get(name);
|
|
139
|
+
if (cache !== undefined)
|
|
140
|
+
return cache;
|
|
141
|
+
for (const rawMeta of this.rawMetas) {
|
|
142
|
+
if (isExportNamedDeclaration(rawMeta)) {
|
|
143
|
+
if (rawMeta.declaration) {
|
|
144
|
+
if (isVariableDeclaration(rawMeta.declaration)) {
|
|
145
|
+
for (const decl of rawMeta.declaration.declarations) {
|
|
146
|
+
if (isIdentifier(decl.id)) {
|
|
147
|
+
if (decl.id.name === name) {
|
|
148
|
+
const result = new SdCliBbVariableMetadata(this, decl);
|
|
149
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else if (isClassDeclaration(rawMeta.declaration)) {
|
|
159
|
+
if (rawMeta.declaration.id.name === name) {
|
|
160
|
+
const result = new SdCliBbClassMetadata(this, rawMeta.declaration);
|
|
161
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (isFunctionDeclaration(rawMeta.declaration)) {
|
|
166
|
+
if (rawMeta.declaration.id) {
|
|
167
|
+
if (rawMeta.declaration.id.name === name) {
|
|
168
|
+
const result = new SdCliBbFunctionMetadata(this, rawMeta.declaration);
|
|
169
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
for (const specifier of rawMeta.specifiers) {
|
|
183
|
+
if (isExportSpecifier(specifier)) {
|
|
184
|
+
const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
|
|
185
|
+
if (exportedName === undefined) {
|
|
186
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
187
|
+
}
|
|
188
|
+
else if (exportedName === name) {
|
|
189
|
+
if (rawMeta.source) {
|
|
190
|
+
if (rawMeta.source.value.includes(".")) {
|
|
191
|
+
const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
|
|
192
|
+
const result = {
|
|
193
|
+
filePath: moduleFilePath,
|
|
194
|
+
name: specifier.local.name,
|
|
195
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
196
|
+
};
|
|
197
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const moduleName = rawMeta.source.value;
|
|
202
|
+
const result = {
|
|
203
|
+
moduleName,
|
|
204
|
+
name: specifier.local.name,
|
|
205
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
206
|
+
};
|
|
207
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const result = this._findMetaFromInside(specifier.local.name);
|
|
213
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
214
|
+
return result;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else if (isExportDefaultDeclaration(rawMeta) && name === "default") {
|
|
222
|
+
const result = this.getMetaFromRaw(rawMeta.declaration);
|
|
223
|
+
if (Array.isArray(result)) {
|
|
224
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
225
|
+
}
|
|
226
|
+
this._findMetaFromOutsideCache.set(name, result);
|
|
227
|
+
return result;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
_findMetaFromInside(localName) {
|
|
233
|
+
const cache = this._findMetaFromInsideCache.get(localName);
|
|
234
|
+
if (cache !== undefined)
|
|
235
|
+
return cache;
|
|
236
|
+
for (const rawMeta of this.rawMetas) {
|
|
237
|
+
if (isClassDeclaration(rawMeta) && rawMeta.id.name === localName) {
|
|
238
|
+
return new SdCliBbClassMetadata(this, rawMeta);
|
|
239
|
+
}
|
|
240
|
+
else if (isExportNamedDeclaration(rawMeta)) {
|
|
241
|
+
for (const specifier of rawMeta.specifiers) {
|
|
242
|
+
if (isExportSpecifier(specifier)) {
|
|
243
|
+
const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
|
|
244
|
+
if (exportedName === undefined) {
|
|
245
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
246
|
+
}
|
|
247
|
+
else if (exportedName === localName) {
|
|
248
|
+
if (rawMeta.source) {
|
|
249
|
+
if (rawMeta.source.value.includes(".")) {
|
|
250
|
+
const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
|
|
251
|
+
const result = {
|
|
252
|
+
filePath: moduleFilePath,
|
|
253
|
+
name: specifier.local.name,
|
|
254
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
255
|
+
};
|
|
256
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
257
|
+
return result;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const moduleName = rawMeta.source.value;
|
|
261
|
+
const result = {
|
|
262
|
+
moduleName,
|
|
263
|
+
name: specifier.local.name,
|
|
264
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
265
|
+
};
|
|
266
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
267
|
+
return result;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/*else if (isExportDefaultDeclaration(rawMeta) && localName === "default") {
|
|
275
|
+
const result = this.getMetaFromRaw(rawMeta.declaration);
|
|
276
|
+
if (Array.isArray(result)) {
|
|
277
|
+
throw new NeverEntryError();
|
|
278
|
+
}
|
|
279
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
280
|
+
return result;
|
|
281
|
+
}*/
|
|
282
|
+
else if (isImportDeclaration(rawMeta)) {
|
|
283
|
+
for (const specifier of rawMeta.specifiers) {
|
|
284
|
+
if (isImportSpecifier(specifier)) {
|
|
285
|
+
const impLocalName = isIdentifier(specifier.local) ? specifier.local.name : undefined;
|
|
286
|
+
if (impLocalName === undefined) {
|
|
287
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
288
|
+
}
|
|
289
|
+
else if (impLocalName === localName) {
|
|
290
|
+
if (isIdentifier(specifier.imported)) {
|
|
291
|
+
if (rawMeta.source.value.includes(".")) {
|
|
292
|
+
const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
|
|
293
|
+
const result = {
|
|
294
|
+
filePath: moduleFilePath,
|
|
295
|
+
name: specifier.imported.name,
|
|
296
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
297
|
+
};
|
|
298
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
299
|
+
return result;
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
const moduleName = rawMeta.source.value;
|
|
303
|
+
const result = {
|
|
304
|
+
moduleName,
|
|
305
|
+
name: specifier.imported.name,
|
|
306
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
307
|
+
};
|
|
308
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
309
|
+
return result;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else if (isImportDefaultSpecifier(specifier)) {
|
|
318
|
+
if (specifier.local.name === localName) {
|
|
319
|
+
if (rawMeta.source.value.includes(".")) {
|
|
320
|
+
const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
|
|
321
|
+
const result = {
|
|
322
|
+
filePath: moduleFilePath,
|
|
323
|
+
name: "default",
|
|
324
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
325
|
+
};
|
|
326
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
327
|
+
return result;
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
const moduleName = rawMeta.source.value;
|
|
331
|
+
const result = {
|
|
332
|
+
moduleName,
|
|
333
|
+
name: "default",
|
|
334
|
+
__TSdCliMetaRef__: "__TSdCliMetaRef__"
|
|
335
|
+
};
|
|
336
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
337
|
+
return result;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
else if (isVariableDeclaration(rawMeta)) {
|
|
344
|
+
for (const decl of rawMeta.declarations) {
|
|
345
|
+
if (isIdentifier(decl.id)) {
|
|
346
|
+
if (decl.id.name === localName) {
|
|
347
|
+
const result = new SdCliBbVariableMetadata(this, decl);
|
|
348
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
349
|
+
return result;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
else if (isFunctionDeclaration(rawMeta)) {
|
|
358
|
+
if (rawMeta.id) {
|
|
359
|
+
if (rawMeta.id.name === localName) {
|
|
360
|
+
const result = new SdCliBbFunctionMetadata(this, rawMeta);
|
|
361
|
+
this._findMetaFromInsideCache.set(localName, result);
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
throw SdCliBbUtil.error(`'${localName}'에 대한 내부선언을 찾을 수 없습니다.`, this.filePath);
|
|
371
|
+
}
|
|
372
|
+
getMetaFromRaw(rawMeta) {
|
|
373
|
+
if (isIdentifier(rawMeta)) {
|
|
374
|
+
return this._findMetaFromInside(rawMeta.name);
|
|
375
|
+
}
|
|
376
|
+
else if (isClassDeclaration(rawMeta)) {
|
|
377
|
+
return new SdCliBbClassMetadata(this, rawMeta);
|
|
378
|
+
}
|
|
379
|
+
else if (isArrayExpression(rawMeta)) {
|
|
380
|
+
return new SdCliBbArrayMetadata(this, rawMeta);
|
|
381
|
+
}
|
|
382
|
+
else if (isObjectExpression(rawMeta)) {
|
|
383
|
+
return new SdCliBbObjectMetadata(this, rawMeta);
|
|
384
|
+
}
|
|
385
|
+
else if (isStringLiteral(rawMeta)) {
|
|
386
|
+
return rawMeta.value;
|
|
387
|
+
}
|
|
388
|
+
else if (isSpreadElement(rawMeta)) {
|
|
389
|
+
return this.getMetaFromRaw(rawMeta.argument);
|
|
390
|
+
}
|
|
391
|
+
throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
|
|
392
|
+
}
|
|
393
|
+
getNgDecoArg(className) {
|
|
394
|
+
if (this._getNgDecoArgCache.has(className)) {
|
|
395
|
+
return this._getNgDecoArgCache.get(className);
|
|
396
|
+
}
|
|
397
|
+
for (const meta of this.rawMetas) {
|
|
398
|
+
// 'compilationMode: partial' 일때
|
|
399
|
+
if (isExpressionStatement(meta) &&
|
|
400
|
+
isCallExpression(meta.expression) &&
|
|
401
|
+
((isMemberExpression(meta.expression.callee) &&
|
|
402
|
+
isIdentifier(meta.expression.callee.property) &&
|
|
403
|
+
meta.expression.callee.property.name === "ɵɵngDeclareClassMetadata") ||
|
|
404
|
+
(isIdentifier(meta.expression.callee) &&
|
|
405
|
+
meta.expression.callee.name === "ngDeclareClassMetadata")) &&
|
|
406
|
+
isObjectExpression(meta.expression.arguments[0])) {
|
|
407
|
+
const objMeta = new SdCliBbObjectMetadata(this, meta.expression.arguments[0]);
|
|
408
|
+
const typePropVal = objMeta.getPropValue("type");
|
|
409
|
+
if (typePropVal instanceof SdCliBbClassMetadata &&
|
|
410
|
+
typePropVal.name === className) {
|
|
411
|
+
const decos = objMeta.getPropValue("decorators");
|
|
412
|
+
if (decos instanceof SdCliBbArrayMetadata &&
|
|
413
|
+
decos.value[0] instanceof SdCliBbObjectMetadata) {
|
|
414
|
+
const args = decos.value[0].getPropValue("args");
|
|
415
|
+
if (args instanceof SdCliBbArrayMetadata &&
|
|
416
|
+
args.value[0] instanceof SdCliBbObjectMetadata) {
|
|
417
|
+
this._getNgDecoArgCache.set(className, args.value[0]);
|
|
418
|
+
return args.value[0];
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
throw new NeverEntryError();
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
// 'compilationMode: full' 일때
|
|
428
|
+
let result;
|
|
429
|
+
traverseFast(this.ast, (node) => {
|
|
430
|
+
if (isCallExpression(node) &&
|
|
431
|
+
((isMemberExpression(node.callee) &&
|
|
432
|
+
isIdentifier(node.callee.property) &&
|
|
433
|
+
node.callee.property.name === "ɵsetClassMetadata") ||
|
|
434
|
+
(isIdentifier(node.callee) &&
|
|
435
|
+
node.callee.name === "setClassMetadata")) &&
|
|
436
|
+
isIdentifier(node.arguments[0]) &&
|
|
437
|
+
node.arguments[0].name === className &&
|
|
438
|
+
isArrayExpression(node.arguments[1])) {
|
|
439
|
+
const decos = new SdCliBbArrayMetadata(this, node.arguments[1]);
|
|
440
|
+
if (decos.value[0] instanceof SdCliBbObjectMetadata) {
|
|
441
|
+
const args = decos.value[0].getPropValue("args");
|
|
442
|
+
if (args instanceof SdCliBbArrayMetadata &&
|
|
443
|
+
args.value[0] instanceof SdCliBbObjectMetadata) {
|
|
444
|
+
result = args.value[0];
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
else {
|
|
448
|
+
throw new NeverEntryError();
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
if (result === undefined) {
|
|
453
|
+
throw new NeverEntryError(this.filePath + "," + className);
|
|
454
|
+
}
|
|
455
|
+
this._getNgDecoArgCache.set(className, result);
|
|
456
|
+
return result;
|
|
457
|
+
}
|
|
458
|
+
getNgDecoPropValue(className, decoName, propName) {
|
|
459
|
+
for (const meta of this.rawMetas) {
|
|
460
|
+
if (isExpressionStatement(meta) &&
|
|
461
|
+
isAssignmentExpression(meta.expression) &&
|
|
462
|
+
isMemberExpression(meta.expression.left) &&
|
|
463
|
+
isIdentifier(meta.expression.left.object) &&
|
|
464
|
+
meta.expression.left.object.name === className &&
|
|
465
|
+
isIdentifier(meta.expression.left.property)) {
|
|
466
|
+
if (meta.expression.left.property.name === decoName) {
|
|
467
|
+
if (isCallExpression(meta.expression.right) &&
|
|
468
|
+
meta.expression.right.arguments.length > 0 &&
|
|
469
|
+
isObjectExpression(meta.expression.right.arguments[0])) {
|
|
470
|
+
const dirObjMeta = new SdCliBbObjectMetadata(this, meta.expression.right.arguments[0]);
|
|
471
|
+
return dirObjMeta.getPropValue(propName);
|
|
472
|
+
}
|
|
473
|
+
else {
|
|
474
|
+
throw new NeverEntryError();
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
throw new NeverEntryError();
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlCYkZpbGVNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZy10b29scy9iYWJlbC9TZENsaUJiRmlsZU1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixxQkFBcUIsRUFJckIsWUFBWSxFQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sV0FBNEIsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBbUMsUUFBZ0I7UUFBaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQW1JbEMsOEJBQXlCLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFtR2hFLDZCQUF3QixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBdUsvRCx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FB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
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SdCliBbFileMetadata } from "./SdCliBbFileMetadata";
|
|
2
|
+
import { TSdCliBbTypeMetadata } from "./TSdCliBbTypeMetadata";
|
|
3
|
+
import { TSdCliMetaRef } from "../commons";
|
|
4
|
+
export declare class SdCliBbRootMetadata {
|
|
5
|
+
private readonly _entryMap;
|
|
6
|
+
private readonly _fileMetaCache;
|
|
7
|
+
constructor(packagePath: string);
|
|
8
|
+
removeCaches(filePaths: string[]): void;
|
|
9
|
+
getEntryFileMetaRecord(): Record<string, SdCliBbFileMetadata>;
|
|
10
|
+
findMeta(ref: TSdCliMetaRef): TSdCliBbMetadata | TSdCliBbMetadata[];
|
|
11
|
+
findExportRef(localRef: {
|
|
12
|
+
filePath: string;
|
|
13
|
+
name: string;
|
|
14
|
+
}): {
|
|
15
|
+
moduleName: string;
|
|
16
|
+
name: string;
|
|
17
|
+
} | undefined;
|
|
18
|
+
private _getAllDepPaths;
|
|
19
|
+
private _getEntryMap;
|
|
20
|
+
private _getGlobExportResult;
|
|
21
|
+
}
|
|
22
|
+
export declare type TSdCliBbMetadata = TSdCliBbTypeMetadata | TSdCliMetaRef | string;
|