arkanalyzer 1.0.25 → 1.0.27
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/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +43 -17
- package/lib/core/common/Builtin.d.ts +2 -0
- package/lib/core/common/Builtin.d.ts.map +1 -1
- package/lib/core/common/Builtin.js +4 -0
- package/lib/core/common/IRInference.js +5 -4
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +5 -1
- 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());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAiD,MAAM,cAAc,CAAC;AAuBrG,OAAO,EACH,SAAS,EAcT,IAAI,EAMP,MAAM,cAAc,CAAC;AAetB,OAAO,EAAyE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,OAAO,EAAE,gBAAgB,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOhF,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAA+D;IACnF,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;IAQ9F,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,IAAgC,GAAG,KAAK;IAMlF,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIlD,OAAO,CAAC,YAAY;IAOb,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAkE1D,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,oCAAoC;IA2C5C,OAAO,CAAC,qCAAqC;IAsC7C,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,qCAAqC;IAY7C,OAAO,CAAC,8BAA8B;IAsBtC,OAAO,CAAC,iCAAiC;IAUzC,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,uCAAuC;IA+B/C,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -490,9 +490,22 @@ class ArkValueTransformer {
|
|
|
490
490
|
this.arkIRTransformer.generateAssignStmtForValue(baseValue, basePositions));
|
|
491
491
|
baseStmts.forEach(stmt => stmts.push(stmt));
|
|
492
492
|
}
|
|
493
|
-
const fieldSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildFieldSignatureFromFieldName(propertyAccessExpression.name.getText(this.sourceFile));
|
|
494
|
-
const fieldRef = new Ref_1.ArkInstanceFieldRef(baseValue, fieldSignature);
|
|
495
493
|
const fieldRefPositions = [Position_1.FullPosition.buildFromNode(propertyAccessExpression, this.sourceFile), ...basePositions];
|
|
494
|
+
// this if for the case: const obj: Object = Object.create(Object.prototype);
|
|
495
|
+
if (baseValue instanceof Local_1.Local && baseValue.getName() === Builtin_1.Builtin.OBJECT) {
|
|
496
|
+
this.locals.delete(baseValue.getName());
|
|
497
|
+
const fieldSignature = new ArkSignature_1.FieldSignature(propertyAccessExpression.name.getText(this.sourceFile), Builtin_1.Builtin.OBJECT_CLASS_SIGNATURE, Type_1.UnknownType.getInstance(), true);
|
|
498
|
+
const fieldRef = new Ref_1.ArkStaticFieldRef(fieldSignature);
|
|
499
|
+
return { value: fieldRef, valueOriginalPositions: fieldRefPositions, stmts: stmts };
|
|
500
|
+
}
|
|
501
|
+
let fieldSignature;
|
|
502
|
+
if (baseValue instanceof Local_1.Local && baseValue.getType() instanceof Type_1.ClassType) {
|
|
503
|
+
fieldSignature = new ArkSignature_1.FieldSignature(propertyAccessExpression.name.getText(this.sourceFile), baseValue.getType().getClassSignature(), Type_1.UnknownType.getInstance());
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
fieldSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildFieldSignatureFromFieldName(propertyAccessExpression.name.getText(this.sourceFile));
|
|
507
|
+
}
|
|
508
|
+
const fieldRef = new Ref_1.ArkInstanceFieldRef(baseValue, fieldSignature);
|
|
496
509
|
return { value: fieldRef, valueOriginalPositions: fieldRefPositions, stmts: stmts };
|
|
497
510
|
}
|
|
498
511
|
elementAccessExpressionToValueAndStmts(elementAccessExpression) {
|
|
@@ -537,15 +550,22 @@ class ArkValueTransformer {
|
|
|
537
550
|
let invokeValue;
|
|
538
551
|
let invokeValuePositions = [Position_1.FullPosition.buildFromNode(callExpression, this.sourceFile)];
|
|
539
552
|
const { args, argPositions, realGenericTypes } = argus;
|
|
540
|
-
if (callerValue instanceof Ref_1.
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
553
|
+
if (callerValue instanceof Ref_1.AbstractFieldRef) {
|
|
554
|
+
let methodSignature;
|
|
555
|
+
const declareSignature = callerValue.getFieldSignature().getDeclaringSignature();
|
|
556
|
+
if (declareSignature instanceof ArkSignature_1.ClassSignature) {
|
|
557
|
+
methodSignature = new ArkSignature_1.MethodSignature(declareSignature, ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(callerValue.getFieldName()));
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
methodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(callerValue.getFieldName());
|
|
561
|
+
}
|
|
562
|
+
if (callerValue instanceof Ref_1.ArkInstanceFieldRef) {
|
|
563
|
+
invokeValue = new Expr_1.ArkInstanceInvokeExpr(callerValue.getBase(), methodSignature, args, realGenericTypes);
|
|
564
|
+
invokeValuePositions.push(...callerPositions.slice(1));
|
|
565
|
+
}
|
|
566
|
+
else {
|
|
567
|
+
invokeValue = new Expr_1.ArkStaticInvokeExpr(methodSignature, args, realGenericTypes);
|
|
568
|
+
}
|
|
549
569
|
}
|
|
550
570
|
else if (callerValue instanceof Local_1.Local) {
|
|
551
571
|
const callerName = callerValue.getName();
|
|
@@ -554,8 +574,8 @@ class ArkValueTransformer {
|
|
|
554
574
|
if ((cls === null || cls === void 0 ? void 0 : cls.hasComponentDecorator()) && ts.isCallExpression(callExpression)) {
|
|
555
575
|
return this.generateCustomViewStmt(callerName, args, argPositions, callExpression, stmts);
|
|
556
576
|
}
|
|
557
|
-
else if ((callerName === EtsConst_1.COMPONENT_FOR_EACH || callerName === EtsConst_1.COMPONENT_LAZY_FOR_EACH) &&
|
|
558
|
-
|
|
577
|
+
else if ((callerName === EtsConst_1.COMPONENT_FOR_EACH || callerName === EtsConst_1.COMPONENT_LAZY_FOR_EACH) && ts.isCallExpression(callExpression)) {
|
|
578
|
+
// foreach/lazyforeach will be parsed as ts.callExpression
|
|
559
579
|
return this.generateSystemComponentStmt(callerName, args, argPositions, callExpression, stmts);
|
|
560
580
|
}
|
|
561
581
|
const methodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(callerName);
|
|
@@ -565,7 +585,6 @@ class ArkValueTransformer {
|
|
|
565
585
|
else {
|
|
566
586
|
invokeValue = new Expr_1.ArkStaticInvokeExpr(methodSignature, args, realGenericTypes);
|
|
567
587
|
}
|
|
568
|
-
invokeValuePositions.push(...argPositions);
|
|
569
588
|
}
|
|
570
589
|
else {
|
|
571
590
|
({ value: callerValue, valueOriginalPositions: callerPositions, stmts: callerStmts } =
|
|
@@ -573,8 +592,8 @@ class ArkValueTransformer {
|
|
|
573
592
|
callerStmts.forEach(stmt => stmts.push(stmt));
|
|
574
593
|
const methodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(callerValue.getName());
|
|
575
594
|
invokeValue = new Expr_1.ArkStaticInvokeExpr(methodSignature, args, realGenericTypes);
|
|
576
|
-
invokeValuePositions.push(...argPositions);
|
|
577
595
|
}
|
|
596
|
+
invokeValuePositions.push(...argPositions);
|
|
578
597
|
return { value: invokeValue, valueOriginalPositions: invokeValuePositions, stmts: stmts };
|
|
579
598
|
}
|
|
580
599
|
parseArgumentsOfCallExpression(currStmts, callExpression) {
|
|
@@ -655,8 +674,12 @@ class ArkValueTransformer {
|
|
|
655
674
|
realGenericTypes.push(this.resolveTypeNode(typeArgument));
|
|
656
675
|
});
|
|
657
676
|
}
|
|
658
|
-
|
|
659
|
-
|
|
677
|
+
let classSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildClassSignatureFromClassName(className);
|
|
678
|
+
let classType = new Type_1.ClassType(classSignature, realGenericTypes);
|
|
679
|
+
if (className === Builtin_1.Builtin.OBJECT) {
|
|
680
|
+
classSignature = Builtin_1.Builtin.OBJECT_CLASS_SIGNATURE;
|
|
681
|
+
classType = Builtin_1.Builtin.OBJECT_CLASS_TYPE;
|
|
682
|
+
}
|
|
660
683
|
const newExpr = new Expr_1.ArkNewExpr(classType);
|
|
661
684
|
const { value: newLocal, valueOriginalPositions: newLocalPositions, stmts: newExprStmts, } = this.arkIRTransformer.generateAssignStmtForValue(newExpr, [Position_1.FullPosition.buildFromNode(newExpression, this.sourceFile)]);
|
|
662
685
|
newExprStmts.forEach(stmt => stmts.push(stmt));
|
|
@@ -1413,6 +1436,9 @@ class ArkValueTransformer {
|
|
|
1413
1436
|
}
|
|
1414
1437
|
resolveTypeReferenceNode(typeReferenceNode) {
|
|
1415
1438
|
const typeReferenceFullName = typeReferenceNode.typeName.getText(this.sourceFile);
|
|
1439
|
+
if (typeReferenceFullName === Builtin_1.Builtin.OBJECT) {
|
|
1440
|
+
return Builtin_1.Builtin.OBJECT_CLASS_TYPE;
|
|
1441
|
+
}
|
|
1416
1442
|
const aliasTypeAndStmt = this.aliasTypeMap.get(typeReferenceFullName);
|
|
1417
1443
|
const genericTypes = [];
|
|
1418
1444
|
if (typeReferenceNode.typeArguments) {
|
|
@@ -11,6 +11,7 @@ export declare class Builtin {
|
|
|
11
11
|
static DUMMY_FILE_NAME: string;
|
|
12
12
|
static BUILT_IN_CLASSES_FILE_SIGNATURE: FileSignature;
|
|
13
13
|
static OBJECT_CLASS_SIGNATURE: ClassSignature;
|
|
14
|
+
static OBJECT_CLASS_TYPE: ClassType;
|
|
14
15
|
static ARRAY_CLASS_SIGNATURE: ClassSignature;
|
|
15
16
|
static SET_CLASS_SIGNATURE: ClassSignature;
|
|
16
17
|
static MAP_CLASS_SIGNATURE: ClassSignature;
|
|
@@ -33,5 +34,6 @@ export declare class Builtin {
|
|
|
33
34
|
private static buildBuiltInClassesFileSignature;
|
|
34
35
|
static buildBuiltInClassSignature(className: string): ClassSignature;
|
|
35
36
|
private static buildBuiltInClassSignatureMap;
|
|
37
|
+
static isBuiltinClass(className: string): boolean;
|
|
36
38
|
}
|
|
37
39
|
//# sourceMappingURL=Builtin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builtin.d.ts","sourceRoot":"","sources":["../../../src/core/common/Builtin.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAA2B,MAAM,cAAc,CAAC;AAElE,qBAAa,OAAO;IAGhB,OAAc,MAAM,SAAY;IAChC,OAAc,KAAK,SAAW;IAC9B,OAAc,GAAG,SAAS;IAC1B,OAAc,GAAG,SAAS;IAC1B,OAAc,MAAM,SAAY;IAEhC,OAAc,gBAAgB,cAA8B;IAG5D,OAAc,kBAAkB,SAAY;IAC5C,OAAc,eAAe,SAAkB;IAE/C,OAAc,+BAA+B,gBAA8C;IAC3F,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,qBAAqB,iBAA+C;IAClF,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,4BAA4B,8BAAwC;IAGlF,OAAc,iBAAiB,SAAc;IAC7C,OAAc,QAAQ,SAAc;IACpC,OAAc,aAAa,SAAU;IACrC,OAAc,eAAe,SAAoB;IACjD,OAAc,oBAAoB,SAAU;IAC5C,OAAc,qBAAqB,SAAW;IAE9C,OAAc,wBAAwB,iBAAkD;IACxF,OAAc,+BAA+B,iBAAyD;IACtG,OAAc,mBAAmB,YAAwE;IACzG,OAAc,0BAA0B,YAA+E;IAGvH,OAAc,SAAS,SAAc;IACrC,OAAc,0BAA0B,kBACyC;IAEjF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,gCAAgC;WAIjC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAI3E,OAAO,CAAC,MAAM,CAAC,6BAA6B;
|
|
1
|
+
{"version":3,"file":"Builtin.d.ts","sourceRoot":"","sources":["../../../src/core/common/Builtin.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAA2B,MAAM,cAAc,CAAC;AAElE,qBAAa,OAAO;IAGhB,OAAc,MAAM,SAAY;IAChC,OAAc,KAAK,SAAW;IAC9B,OAAc,GAAG,SAAS;IAC1B,OAAc,GAAG,SAAS;IAC1B,OAAc,MAAM,SAAY;IAEhC,OAAc,gBAAgB,cAA8B;IAG5D,OAAc,kBAAkB,SAAY;IAC5C,OAAc,eAAe,SAAkB;IAE/C,OAAc,+BAA+B,gBAA8C;IAC3F,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,qBAAqB,iBAA+C;IAClF,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,4BAA4B,8BAAwC;IAGlF,OAAc,iBAAiB,SAAc;IAC7C,OAAc,QAAQ,SAAc;IACpC,OAAc,aAAa,SAAU;IACrC,OAAc,eAAe,SAAoB;IACjD,OAAc,oBAAoB,SAAU;IAC5C,OAAc,qBAAqB,SAAW;IAE9C,OAAc,wBAAwB,iBAAkD;IACxF,OAAc,+BAA+B,iBAAyD;IACtG,OAAc,mBAAmB,YAAwE;IACzG,OAAc,0BAA0B,YAA+E;IAGvH,OAAc,SAAS,SAAc;IACrC,OAAc,0BAA0B,kBACyC;IAEjF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,gCAAgC;WAIjC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAI3E,OAAO,CAAC,MAAM,CAAC,6BAA6B;WAU9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAG3D"}
|
|
@@ -43,6 +43,9 @@ class Builtin {
|
|
|
43
43
|
builtInClassSignatureMap.set(this.REGEXP, this.REGEXP_CLASS_SIGNATURE);
|
|
44
44
|
return builtInClassSignatureMap;
|
|
45
45
|
}
|
|
46
|
+
static isBuiltinClass(className) {
|
|
47
|
+
return this.BUILT_IN_CLASSES.has(className);
|
|
48
|
+
}
|
|
46
49
|
}
|
|
47
50
|
exports.Builtin = Builtin;
|
|
48
51
|
_a = Builtin;
|
|
@@ -59,6 +62,7 @@ Builtin.DUMMY_PROJECT_NAME = 'ES2015';
|
|
|
59
62
|
Builtin.DUMMY_FILE_NAME = 'BuiltinClass';
|
|
60
63
|
Builtin.BUILT_IN_CLASSES_FILE_SIGNATURE = Builtin.buildBuiltInClassesFileSignature();
|
|
61
64
|
Builtin.OBJECT_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.OBJECT);
|
|
65
|
+
Builtin.OBJECT_CLASS_TYPE = new Type_1.ClassType(_a.OBJECT_CLASS_SIGNATURE);
|
|
62
66
|
Builtin.ARRAY_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.ARRAY);
|
|
63
67
|
Builtin.SET_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.SET);
|
|
64
68
|
Builtin.MAP_CLASS_SIGNATURE = _a.buildBuiltInClassSignature(_a.MAP);
|
|
@@ -399,6 +399,9 @@ class IRInference {
|
|
|
399
399
|
}
|
|
400
400
|
static inferInvokeExprWithDeclaredClass(expr, baseType, methodName, scene) {
|
|
401
401
|
var _a;
|
|
402
|
+
if (Builtin_1.Builtin.isBuiltinClass(baseType.getClassSignature().getClassName())) {
|
|
403
|
+
expr.setMethodSignature(new ArkSignature_1.MethodSignature(baseType.getClassSignature(), expr.getMethodSignature().getMethodSubSignature()));
|
|
404
|
+
}
|
|
402
405
|
let declaredClass = scene.getClass(baseType.getClassSignature());
|
|
403
406
|
if (!declaredClass) {
|
|
404
407
|
const globalClass = scene.getSdkGlobal(baseType.getClassSignature().getClassName());
|
|
@@ -438,14 +441,12 @@ class IRInference {
|
|
|
438
441
|
}
|
|
439
442
|
else if (methodName === TSConst_1.CONSTRUCTOR_NAME) { //sdk隐式构造
|
|
440
443
|
const subSignature = new ArkSignature_1.MethodSubSignature(methodName, [], new Type_1.ClassType(baseType.getClassSignature()));
|
|
441
|
-
|
|
442
|
-
expr.setMethodSignature(signature);
|
|
444
|
+
expr.setMethodSignature(new ArkSignature_1.MethodSignature(baseType.getClassSignature(), subSignature));
|
|
443
445
|
return expr;
|
|
444
446
|
}
|
|
445
447
|
else if (methodName === Builtin_1.Builtin.ITERATOR_NEXT) { //sdk隐式构造
|
|
446
448
|
const returnType = expr.getMethodSignature().getMethodSubSignature().getReturnType();
|
|
447
|
-
if (returnType instanceof Type_1.ClassType && returnType.getClassSignature().getDeclaringFileSignature()
|
|
448
|
-
.getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
|
|
449
|
+
if (returnType instanceof Type_1.ClassType && returnType.getClassSignature().getDeclaringFileSignature().getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
|
|
449
450
|
returnType.setRealGenericTypes(baseType.getRealGenericTypes());
|
|
450
451
|
return expr;
|
|
451
452
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA8F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QAiDjD"}
|
|
@@ -369,6 +369,9 @@ function tsNode2Type(typeNode, sourceFile, arkInstance) {
|
|
|
369
369
|
}
|
|
370
370
|
else {
|
|
371
371
|
let parameterTypeStr = referenceNodeName.text;
|
|
372
|
+
if (parameterTypeStr === Builtin_1.Builtin.OBJECT) {
|
|
373
|
+
return Builtin_1.Builtin.OBJECT_CLASS_TYPE;
|
|
374
|
+
}
|
|
372
375
|
return new Type_1.UnclearReferenceType(parameterTypeStr, genericTypes);
|
|
373
376
|
}
|
|
374
377
|
}
|
|
@@ -456,7 +459,8 @@ function tsNode2Type(typeNode, sourceFile, arkInstance) {
|
|
|
456
459
|
return buildTypeFromTypeQuery(typeNode, sourceFile, arkInstance);
|
|
457
460
|
}
|
|
458
461
|
else if (typeNode.kind === ohos_typescript_1.default.SyntaxKind.ObjectKeyword) {
|
|
459
|
-
|
|
462
|
+
// TODO: type object which is different from Object is needed to support, such as let a: object = {}
|
|
463
|
+
return new Type_1.UnclearReferenceType('object');
|
|
460
464
|
}
|
|
461
465
|
else {
|
|
462
466
|
return buildTypeFromPreStr(ohos_typescript_1.default.SyntaxKind[typeNode.kind]);
|
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':
|