arkanalyzer 1.0.25 → 1.0.26
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/lib/Config.d.ts +9 -4
- package/lib/Config.d.ts.map +1 -1
- package/lib/Config.js +31 -5
- package/lib/Scene.d.ts +3 -1
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +9 -4
- package/lib/utils/FileUtils.d.ts +1 -1
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +5 -2
- package/package.json +2 -2
package/lib/Config.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Language } from './core/model/ArkFile';
|
|
1
2
|
export interface Sdk {
|
|
2
3
|
name: string;
|
|
3
4
|
path: string;
|
|
@@ -31,6 +32,7 @@ export declare class SceneConfig {
|
|
|
31
32
|
private sdkFiles;
|
|
32
33
|
private sdkFilesMap;
|
|
33
34
|
private projectFiles;
|
|
35
|
+
private fileLanguages;
|
|
34
36
|
private options;
|
|
35
37
|
constructor(options?: SceneOptions);
|
|
36
38
|
getOptions(): SceneOptions;
|
|
@@ -44,11 +46,12 @@ export declare class SceneConfig {
|
|
|
44
46
|
*/
|
|
45
47
|
buildConfig(targetProjectName: string, targetProjectDirectory: string, sdks: Sdk[], fullFilePath?: string[]): void;
|
|
46
48
|
/**
|
|
47
|
-
* Create a sceneConfig object for a specified project path and set the target project directory to the
|
|
48
|
-
*
|
|
49
|
+
* Create a sceneConfig object for a specified project path and set the target project directory to the
|
|
50
|
+
* targetProjectDirectory property of the sceneConfig object.
|
|
51
|
+
* @param targetProjectDirectory - the target project directory, such as xxx/xxx/xxx, started from project
|
|
52
|
+
* directory.
|
|
49
53
|
* @example
|
|
50
54
|
* 1. build a sceneConfig object.
|
|
51
|
-
|
|
52
55
|
```typescript
|
|
53
56
|
const projectDir = 'xxx/xxx/xxx';
|
|
54
57
|
const sceneConfig: SceneConfig = new SceneConfig();
|
|
@@ -56,12 +59,14 @@ export declare class SceneConfig {
|
|
|
56
59
|
```
|
|
57
60
|
*/
|
|
58
61
|
buildFromProjectDir(targetProjectDirectory: string): void;
|
|
59
|
-
buildFromProjectFiles(projectName: string, projectDir: string, filesAndDirectorys: string[], sdks?: Sdk[]): void;
|
|
62
|
+
buildFromProjectFiles(projectName: string, projectDir: string, filesAndDirectorys: string[], sdks?: Sdk[], languageTags?: Map<string, Language>): void;
|
|
60
63
|
private processFilePaths;
|
|
64
|
+
private setLanguageTagForFiles;
|
|
61
65
|
buildFromJson(configJsonPath: string): void;
|
|
62
66
|
getTargetProjectName(): string;
|
|
63
67
|
getTargetProjectDirectory(): string;
|
|
64
68
|
getProjectFiles(): string[];
|
|
69
|
+
getFileLanguages(): Map<string, Language>;
|
|
65
70
|
getSdkFiles(): string[];
|
|
66
71
|
getSdkFilesMap(): Map<string[], string>;
|
|
67
72
|
getEtsSdkPath(): string;
|
package/lib/Config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC3B,CAAC;KACL,CAAC;CAEL;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9G,MAAM,WAAW,YAAY;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAC,OAAO,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACvC;AAID,qBAAa,WAAW;IACpB,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,sBAAsB,CAAc;IAE5C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;IAE5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAsD;IAEzE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,CAAC,EAAE,YAAY;IAK3B,UAAU,IAAI,YAAY;IAIjC;;;;;;;OAOG;IACI,WAAW,CACd,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,IAAI,EAAE,GAAG,EAAE,EACX,YAAY,CAAC,EAAE,MAAM,EAAE;IAU3B;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,sBAAsB,EAAE,MAAM;IAUlD,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EACnF,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI;IAgBxE,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,sBAAsB;IAiBvB,aAAa,CAAC,cAAc,EAAE,MAAM;IAmCpC,oBAAoB;IAIpB,yBAAyB;IAIzB,eAAe;IAIf,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIzC,WAAW;IAIX,cAAc;IAId,aAAa;IAIb,UAAU;IAIjB,OAAO,CAAC,iBAAiB;CAY5B"}
|
package/lib/Config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
6
6
|
* You may obtain a copy of the License at
|
|
@@ -57,6 +57,7 @@ class SceneConfig {
|
|
|
57
57
|
this.sdkFiles = [];
|
|
58
58
|
this.sdkFilesMap = new Map();
|
|
59
59
|
this.projectFiles = [];
|
|
60
|
+
this.fileLanguages = new Map();
|
|
60
61
|
this.options = { supportFileExts: ['.ets', '.ts'] };
|
|
61
62
|
this.loadDefaultConfig(options);
|
|
62
63
|
}
|
|
@@ -80,11 +81,12 @@ class SceneConfig {
|
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
/**
|
|
83
|
-
* Create a sceneConfig object for a specified project path and set the target project directory to the
|
|
84
|
-
*
|
|
84
|
+
* Create a sceneConfig object for a specified project path and set the target project directory to the
|
|
85
|
+
* targetProjectDirectory property of the sceneConfig object.
|
|
86
|
+
* @param targetProjectDirectory - the target project directory, such as xxx/xxx/xxx, started from project
|
|
87
|
+
* directory.
|
|
85
88
|
* @example
|
|
86
89
|
* 1. build a sceneConfig object.
|
|
87
|
-
|
|
88
90
|
```typescript
|
|
89
91
|
const projectDir = 'xxx/xxx/xxx';
|
|
90
92
|
const sceneConfig: SceneConfig = new SceneConfig();
|
|
@@ -96,7 +98,7 @@ class SceneConfig {
|
|
|
96
98
|
this.targetProjectName = path_1.default.basename(targetProjectDirectory);
|
|
97
99
|
this.projectFiles = (0, getAllFiles_1.getAllFiles)(targetProjectDirectory, this.options.supportFileExts, this.options.ignoreFileNames);
|
|
98
100
|
}
|
|
99
|
-
buildFromProjectFiles(projectName, projectDir, filesAndDirectorys, sdks) {
|
|
101
|
+
buildFromProjectFiles(projectName, projectDir, filesAndDirectorys, sdks, languageTags) {
|
|
100
102
|
if (sdks) {
|
|
101
103
|
this.sdksObj = sdks;
|
|
102
104
|
}
|
|
@@ -107,6 +109,9 @@ class SceneConfig {
|
|
|
107
109
|
return;
|
|
108
110
|
}
|
|
109
111
|
filesAndDirectorys.forEach(fileOrDirectory => this.processFilePaths(fileOrDirectory, projectDir));
|
|
112
|
+
languageTags === null || languageTags === void 0 ? void 0 : languageTags.forEach((languageTag, fileOrDirectory) => {
|
|
113
|
+
this.setLanguageTagForFiles(fileOrDirectory, projectDir, languageTag);
|
|
114
|
+
});
|
|
110
115
|
}
|
|
111
116
|
processFilePaths(fileOrDirectory, projectDir) {
|
|
112
117
|
let absoluteFilePath = '';
|
|
@@ -127,6 +132,24 @@ class SceneConfig {
|
|
|
127
132
|
this.projectFiles.push(absoluteFilePath);
|
|
128
133
|
}
|
|
129
134
|
}
|
|
135
|
+
setLanguageTagForFiles(fileOrDirectory, projectDir, languageTag) {
|
|
136
|
+
let absoluteFilePath = '';
|
|
137
|
+
if (fileOrDirectory.includes(projectDir)) {
|
|
138
|
+
absoluteFilePath = fileOrDirectory;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
absoluteFilePath = path_1.default.join(projectDir, fileOrDirectory);
|
|
142
|
+
}
|
|
143
|
+
if (fs_1.default.statSync(absoluteFilePath).isDirectory()) {
|
|
144
|
+
(0, getAllFiles_1.getAllFiles)(absoluteFilePath, this.getOptions().supportFileExts, this.options.ignoreFileNames)
|
|
145
|
+
.forEach((filePath) => {
|
|
146
|
+
this.fileLanguages.set(filePath, languageTag);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.fileLanguages.set(absoluteFilePath, languageTag);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
130
153
|
buildFromJson(configJsonPath) {
|
|
131
154
|
if (fs_1.default.existsSync(configJsonPath)) {
|
|
132
155
|
let configurationsText;
|
|
@@ -169,6 +192,9 @@ class SceneConfig {
|
|
|
169
192
|
getProjectFiles() {
|
|
170
193
|
return this.projectFiles;
|
|
171
194
|
}
|
|
195
|
+
getFileLanguages() {
|
|
196
|
+
return this.fileLanguages;
|
|
197
|
+
}
|
|
172
198
|
getSdkFiles() {
|
|
173
199
|
return this.sdkFiles;
|
|
174
200
|
}
|
package/lib/Scene.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SceneConfig, SceneOptions, Sdk } from './Config';
|
|
2
2
|
import { VisibleValue } from './core/common/VisibleValue';
|
|
3
3
|
import { ArkClass } from './core/model/ArkClass';
|
|
4
|
-
import { ArkFile } from './core/model/ArkFile';
|
|
4
|
+
import { ArkFile, Language } from './core/model/ArkFile';
|
|
5
5
|
import { ArkMethod } from './core/model/ArkMethod';
|
|
6
6
|
import { ArkNamespace } from './core/model/ArkNamespace';
|
|
7
7
|
import { ClassSignature, FileSignature, MethodSignature, NamespaceSignature } from './core/model/ArkSignature';
|
|
@@ -44,6 +44,7 @@ export declare class Scene {
|
|
|
44
44
|
private globalModule2PathMapping?;
|
|
45
45
|
private baseUrl?;
|
|
46
46
|
private buildStage;
|
|
47
|
+
private fileLanguages;
|
|
47
48
|
private options;
|
|
48
49
|
private indexPathArray;
|
|
49
50
|
private unhandledFilePaths;
|
|
@@ -185,6 +186,7 @@ export declare class Scene {
|
|
|
185
186
|
*```
|
|
186
187
|
*/
|
|
187
188
|
getFiles(): ArkFile[];
|
|
189
|
+
getFileLanguages(): Map<string, Language>;
|
|
188
190
|
getSdkArkFiles(): ArkFile[];
|
|
189
191
|
getModuleSdkMap(): Map<string, Sdk[]>;
|
|
190
192
|
getProjectSdkMap(): Map<string, Sdk>;
|
package/lib/Scene.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,EAAY,MAAM,UAAU,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
|
package/lib/Scene.js
CHANGED
|
@@ -104,6 +104,7 @@ class Scene {
|
|
|
104
104
|
this.overRides = new Map();
|
|
105
105
|
this.overRideDependencyMap = new Map();
|
|
106
106
|
this.buildStage = SceneBuildStage.BUILD_INIT;
|
|
107
|
+
this.fileLanguages = new Map();
|
|
107
108
|
this.indexPathArray = ['Index.ets', 'Index.ts', 'Index.d.ets', 'Index.d.ts', 'index.ets', 'index.ts', 'index.d.ets', 'index.d.ts'];
|
|
108
109
|
this.unhandledFilePaths = [];
|
|
109
110
|
this.unhandledSdkFilePaths = [];
|
|
@@ -207,6 +208,7 @@ class Scene {
|
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
210
|
});
|
|
211
|
+
this.fileLanguages = sceneConfig.getFileLanguages();
|
|
210
212
|
}
|
|
211
213
|
parseBuildProfile() {
|
|
212
214
|
const buildProfile = path_1.default.join(this.realProjectDir, EtsConst_1.BUILD_PROFILE_JSON5);
|
|
@@ -313,7 +315,7 @@ class Scene {
|
|
|
313
315
|
this.projectFiles.forEach((file) => {
|
|
314
316
|
logger.info('=== parse file:', file);
|
|
315
317
|
try {
|
|
316
|
-
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file));
|
|
318
|
+
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.fileLanguages));
|
|
317
319
|
arkFile.setScene(this);
|
|
318
320
|
(0, ArkFileBuilder_1.buildArkFileFromFile)(file, this.realProjectDir, arkFile, this.projectName);
|
|
319
321
|
this.filesMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
|
|
@@ -343,7 +345,7 @@ class Scene {
|
|
|
343
345
|
return;
|
|
344
346
|
}
|
|
345
347
|
try {
|
|
346
|
-
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(projectFile));
|
|
348
|
+
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(projectFile, this.fileLanguages));
|
|
347
349
|
arkFile.setScene(this);
|
|
348
350
|
(0, ArkFileBuilder_1.buildArkFileFromFile)(projectFile, this.getRealProjectDir(), arkFile, this.getProjectName());
|
|
349
351
|
for (const [modulePath, moduleName] of this.modulePath2NameMap) {
|
|
@@ -542,7 +544,7 @@ class Scene {
|
|
|
542
544
|
allFiles.forEach((file) => {
|
|
543
545
|
logger.info('=== parse sdk file:', file);
|
|
544
546
|
try {
|
|
545
|
-
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file));
|
|
547
|
+
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.fileLanguages));
|
|
546
548
|
arkFile.setScene(this);
|
|
547
549
|
(0, ArkFileBuilder_1.buildArkFileFromFile)(file, path_1.default.normalize(sdkPath), arkFile, sdkName);
|
|
548
550
|
ModelUtils_1.ModelUtils.getAllClassesInFile(arkFile).forEach(cls => {
|
|
@@ -732,6 +734,9 @@ class Scene {
|
|
|
732
734
|
getFiles() {
|
|
733
735
|
return Array.from(this.filesMap.values());
|
|
734
736
|
}
|
|
737
|
+
getFileLanguages() {
|
|
738
|
+
return this.fileLanguages;
|
|
739
|
+
}
|
|
735
740
|
getSdkArkFiles() {
|
|
736
741
|
return Array.from(this.sdkArkFilesMap.values());
|
|
737
742
|
}
|
|
@@ -1302,7 +1307,7 @@ class ModuleScene {
|
|
|
1302
1307
|
(0, getAllFiles_1.getAllFiles)(this.modulePath, supportFileExts, this.projectScene.getOptions().ignoreFileNames).forEach((file) => {
|
|
1303
1308
|
logger.info('=== parse file:', file);
|
|
1304
1309
|
try {
|
|
1305
|
-
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file));
|
|
1310
|
+
const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.projectScene.getFileLanguages()));
|
|
1306
1311
|
arkFile.setScene(this.projectScene);
|
|
1307
1312
|
arkFile.setModuleScene(this);
|
|
1308
1313
|
(0, ArkFileBuilder_1.buildArkFileFromFile)(file, this.projectScene.getRealProjectDir(), arkFile, this.projectScene.getProjectName());
|
package/lib/utils/FileUtils.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare class FileUtils {
|
|
|
10
10
|
static generateModuleMap(ohPkgContentMap: Map<string, {
|
|
11
11
|
[k: string]: unknown;
|
|
12
12
|
}>): Map<string, ModulePath>;
|
|
13
|
-
static getFileLanguage(file: string): Language;
|
|
13
|
+
static getFileLanguage(file: string, fileTags?: Map<string, Language>): Language;
|
|
14
14
|
}
|
|
15
15
|
export declare class ModulePath {
|
|
16
16
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/FileUtils.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,qBAAa,SAAS;IAClB,gBAAuB,WAAW;;;MAGjC;WAEa,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WASzC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;WASrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;WA4BxE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"FileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/FileUtils.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,qBAAa,SAAS;IAClB,gBAAuB,WAAW;;;MAGjC;WAEa,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WASzC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;WASrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;WA4BxE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ;CAc1F;AAED,qBAAa,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAIzC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,GAAG,CAAC,MAAM,CAAqB,GAAG,MAAM,CA0BrH"}
|
package/lib/utils/FileUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
6
6
|
* You may obtain a copy of the License at
|
|
@@ -95,7 +95,10 @@ class FileUtils {
|
|
|
95
95
|
});
|
|
96
96
|
return moduleMap;
|
|
97
97
|
}
|
|
98
|
-
static getFileLanguage(file) {
|
|
98
|
+
static getFileLanguage(file, fileTags) {
|
|
99
|
+
if (fileTags && fileTags.has(file)) {
|
|
100
|
+
return fileTags.get(file);
|
|
101
|
+
}
|
|
99
102
|
const extension = path_1.default.extname(file).toLowerCase();
|
|
100
103
|
switch (extension) {
|
|
101
104
|
case '.ts':
|