ts2famix 2.1.0-beta.1 → 3.0.0
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/.eslintrc.json +24 -24
- package/LICENSE +24 -24
- package/README.md +78 -78
- package/dist/analyze.js +20 -10
- package/dist/analyze_functions/process_functions.js +109 -69
- package/dist/famix_functions/EntityDictionary.js +691 -606
- package/dist/famix_functions/helpers_creation.js +35 -19
- package/dist/fqn.js +351 -18
- package/dist/lib/famix/famix_JSON_exporter.js +1 -1
- package/dist/lib/famix/famix_base_element.js +1 -1
- package/dist/lib/famix/famix_repository.js +31 -12
- package/dist/lib/famix/index.js +18 -8
- package/dist/lib/famix/model/famix/access.js +1 -1
- package/dist/lib/famix/model/famix/accessor.js +1 -1
- package/dist/lib/famix/model/famix/alias.js +1 -1
- package/dist/lib/famix/model/famix/arrow_function.js +1 -1
- package/dist/lib/famix/model/famix/behavioral_entity.js +1 -1
- package/dist/lib/famix/model/famix/class.js +1 -1
- package/dist/lib/famix/model/famix/comment.js +1 -1
- package/dist/lib/famix/model/famix/concretisation.js +1 -1
- package/dist/lib/famix/model/famix/container_entity.js +1 -1
- package/dist/lib/famix/model/famix/decorator.js +1 -1
- package/dist/lib/famix/model/famix/entity.js +1 -1
- package/dist/lib/famix/model/famix/enum.js +1 -1
- package/dist/lib/famix/model/famix/enum_value.js +1 -1
- package/dist/lib/famix/model/famix/function.js +1 -1
- package/dist/lib/famix/model/famix/import_clause.js +1 -1
- package/dist/lib/famix/model/famix/index.js +1 -1
- package/dist/lib/famix/model/famix/indexed_file_anchor.js +1 -1
- package/dist/lib/famix/model/famix/inheritance.js +1 -1
- package/dist/lib/famix/model/famix/interface.js +1 -1
- package/dist/lib/famix/model/famix/invocation.js +1 -1
- package/dist/lib/famix/model/famix/method.js +1 -1
- package/dist/lib/famix/model/famix/module.js +2 -2
- package/dist/lib/famix/model/famix/named_entity.js +1 -1
- package/dist/lib/famix/model/famix/parameter.js +1 -1
- package/dist/lib/famix/model/famix/parameter_concretisation.js +1 -1
- package/dist/lib/famix/model/famix/parameter_type.js +1 -1
- package/dist/lib/famix/model/famix/parametric_arrow_function.js +1 -1
- package/dist/lib/famix/model/famix/parametric_class.js +1 -1
- package/dist/lib/famix/model/famix/parametric_function.js +1 -1
- package/dist/lib/famix/model/famix/parametric_interface.js +1 -1
- package/dist/lib/famix/model/famix/parametric_method.js +1 -1
- package/dist/lib/famix/model/famix/primitive_type.js +1 -1
- package/dist/lib/famix/model/famix/property.js +1 -1
- package/dist/lib/famix/model/famix/reference.js +1 -1
- package/dist/lib/famix/model/famix/scoping_entity.js +1 -1
- package/dist/lib/famix/model/famix/script_entity.js +1 -1
- package/dist/lib/famix/model/famix/source_anchor.js +1 -1
- package/dist/lib/famix/model/famix/source_language.js +1 -1
- package/dist/lib/famix/model/famix/sourced_entity.js +1 -1
- package/dist/lib/famix/model/famix/structural_entity.js +1 -1
- package/dist/lib/famix/model/famix/type.js +1 -1
- package/dist/lib/famix/model/famix/variable.js +1 -1
- package/dist/lib/ts-complex/cyclomatic-service.js +1 -1
- package/dist/refactorer/refactor-getter-setter.js +18 -8
- package/dist/ts2famix-cli-wrapper.js +18 -8
- package/dist/ts2famix-cli.js +18 -8
- package/dist/ts2famix-tsconfig.js +18 -8
- package/doc-uml/famix-typescript-model.puml +619 -607
- package/doc-uml/famix-typescript-model.svg +1 -1
- package/eslint.config.mjs +28 -28
- package/jest.config.json +1 -1
- package/package.json +70 -70
- package/src/analyze.ts +120 -120
- package/src/analyze_functions/process_functions.ts +1069 -1040
- package/src/famix_functions/EntityDictionary.ts +2061 -2016
- package/src/famix_functions/helpers_creation.ts +143 -135
- package/src/fqn.ts +416 -50
- package/src/generate_uml.sh +20 -20
- package/src/lib/famix/License.md +22 -22
- package/src/lib/famix/famix_JSON_exporter.ts +56 -56
- package/src/lib/famix/famix_base_element.ts +22 -22
- package/src/lib/famix/famix_repository.ts +288 -278
- package/src/lib/famix/index.ts +8 -8
- package/src/lib/famix/model/famix/access.ts +50 -50
- package/src/lib/famix/model/famix/accessor.ts +15 -15
- package/src/lib/famix/model/famix/alias.ts +39 -39
- package/src/lib/famix/model/famix/arrow_function.ts +15 -15
- package/src/lib/famix/model/famix/behavioral_entity.ts +97 -97
- package/src/lib/famix/model/famix/class.ts +85 -85
- package/src/lib/famix/model/famix/comment.ts +47 -47
- package/src/lib/famix/model/famix/concretisation.ts +40 -40
- package/src/lib/famix/model/famix/container_entity.ts +160 -160
- package/src/lib/famix/model/famix/decorator.ts +37 -37
- package/src/lib/famix/model/famix/entity.ts +15 -15
- package/src/lib/famix/model/famix/enum.ts +30 -30
- package/src/lib/famix/model/famix/enum_value.ts +28 -28
- package/src/lib/famix/model/famix/function.ts +15 -15
- package/src/lib/famix/model/famix/import_clause.ts +51 -51
- package/src/lib/famix/model/famix/index.ts +41 -41
- package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -46
- package/src/lib/famix/model/famix/inheritance.ts +40 -40
- package/src/lib/famix/model/famix/interface.ts +75 -75
- package/src/lib/famix/model/famix/invocation.ts +65 -65
- package/src/lib/famix/model/famix/method.ts +89 -89
- package/src/lib/famix/model/famix/module.ts +71 -71
- package/src/lib/famix/model/famix/named_entity.ts +95 -95
- package/src/lib/famix/model/famix/parameter.ts +28 -28
- package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -51
- package/src/lib/famix/model/famix/parameter_type.ts +58 -58
- package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -32
- package/src/lib/famix/model/famix/parametric_class.ts +49 -49
- package/src/lib/famix/model/famix/parametric_function.ts +32 -32
- package/src/lib/famix/model/famix/parametric_interface.ts +49 -49
- package/src/lib/famix/model/famix/parametric_method.ts +32 -32
- package/src/lib/famix/model/famix/primitive_type.ts +15 -15
- package/src/lib/famix/model/famix/property.ts +94 -94
- package/src/lib/famix/model/famix/reference.ts +40 -40
- package/src/lib/famix/model/famix/scoping_entity.ts +35 -35
- package/src/lib/famix/model/famix/script_entity.ts +34 -34
- package/src/lib/famix/model/famix/source_anchor.ts +30 -30
- package/src/lib/famix/model/famix/source_language.ts +35 -35
- package/src/lib/famix/model/famix/sourced_entity.ts +70 -70
- package/src/lib/famix/model/famix/structural_entity.ts +43 -43
- package/src/lib/famix/model/famix/type.ts +87 -87
- package/src/lib/famix/model/famix/variable.ts +27 -27
- package/src/lib/famix/package.json +28 -28
- package/src/lib/ts-complex/cyclomatic-service.ts +83 -83
- package/src/refactorer/refactor-getter-setter.ts +140 -140
- package/src/ts2famix-cli-wrapper.ts +21 -21
- package/src/ts2famix-cli.ts +60 -60
- package/tsconfig.check-tests.json +14 -14
- package/tsconfig.json +73 -72
- package/.vscode/settings.json +0 -4
- package/TODO +0 -1
- package/arwea-fix.json +0 -1
- package/bogus.ts +0 -3
- package/class-diagram.puml +0 -792
- package/debug.txt +0 -13332
- package/debuglog.txt +0 -12073
- package/dist/famix2puml.js +0 -126
- package/dist/getClasses-arrow-body.js +0 -43
- package/dist/lib/famix/src/famix_JSON_exporter.js +0 -55
- package/dist/lib/famix/src/famix_base_element.js +0 -18
- package/dist/lib/famix/src/famix_repository.js +0 -224
- package/dist/lib/famix/src/index.js +0 -31
- package/dist/lib/famix/src/model/famix/access.js +0 -40
- package/dist/lib/famix/src/model/famix/accessor.js +0 -17
- package/dist/lib/famix/src/model/famix/alias.js +0 -33
- package/dist/lib/famix/src/model/famix/arrowFunction.js +0 -17
- package/dist/lib/famix/src/model/famix/arrow_function.js +0 -17
- package/dist/lib/famix/src/model/famix/behavioral_entity.js +0 -79
- package/dist/lib/famix/src/model/famix/class.js +0 -71
- package/dist/lib/famix/src/model/famix/comment.js +0 -39
- package/dist/lib/famix/src/model/famix/concretisation.js +0 -31
- package/dist/lib/famix/src/model/famix/container_entity.js +0 -126
- package/dist/lib/famix/src/model/famix/decorator.js +0 -32
- package/dist/lib/famix/src/model/famix/entity.js +0 -17
- package/dist/lib/famix/src/model/famix/enum.js +0 -31
- package/dist/lib/famix/src/model/famix/enum_value.js +0 -25
- package/dist/lib/famix/src/model/famix/function.js +0 -17
- package/dist/lib/famix/src/model/famix/implicit_variable.js +0 -17
- package/dist/lib/famix/src/model/famix/import_clause.js +0 -41
- package/dist/lib/famix/src/model/famix/index.js +0 -86
- package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +0 -38
- package/dist/lib/famix/src/model/famix/inheritance.js +0 -33
- package/dist/lib/famix/src/model/famix/interface.js +0 -64
- package/dist/lib/famix/src/model/famix/invocation.js +0 -54
- package/dist/lib/famix/src/model/famix/method.js +0 -67
- package/dist/lib/famix/src/model/famix/module.js +0 -60
- package/dist/lib/famix/src/model/famix/named_entity.js +0 -78
- package/dist/lib/famix/src/model/famix/parameter.js +0 -25
- package/dist/lib/famix/src/model/famix/parameterConcretisation.js +0 -44
- package/dist/lib/famix/src/model/famix/parameter_concretisation.js +0 -44
- package/dist/lib/famix/src/model/famix/parameter_type.js +0 -45
- package/dist/lib/famix/src/model/famix/parametricArrowFunction.js +0 -29
- package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +0 -31
- package/dist/lib/famix/src/model/famix/parametric_class.js +0 -44
- package/dist/lib/famix/src/model/famix/parametric_function.js +0 -31
- package/dist/lib/famix/src/model/famix/parametric_interface.js +0 -44
- package/dist/lib/famix/src/model/famix/parametric_method.js +0 -31
- package/dist/lib/famix/src/model/famix/primitive_type.js +0 -17
- package/dist/lib/famix/src/model/famix/property.js +0 -73
- package/dist/lib/famix/src/model/famix/reference.js +0 -33
- package/dist/lib/famix/src/model/famix/scoping_entity.js +0 -36
- package/dist/lib/famix/src/model/famix/script_entity.js +0 -29
- package/dist/lib/famix/src/model/famix/source_anchor.js +0 -27
- package/dist/lib/famix/src/model/famix/source_language.js +0 -35
- package/dist/lib/famix/src/model/famix/sourced_entity.js +0 -60
- package/dist/lib/famix/src/model/famix/structural_entity.js +0 -39
- package/dist/lib/famix/src/model/famix/text_anchor.js +0 -38
- package/dist/lib/famix/src/model/famix/type.js +0 -73
- package/dist/lib/famix/src/model/famix/variable.js +0 -24
- package/fqn-model.json +0 -1
- package/iterateGenericTypes.ts +0 -69
- package/out/class-diagram/class-diagram.svg +0 -1
- package/sample.json +0 -1
- package/sample.ts +0 -1
- package/stats.txt +0 -3091
- package/tabby-debug-output.txt +0 -19433
- package/ts2famix.log +0 -22656
- package/validate-references.js +0 -103
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { FamixBaseElement } from "./famix_base_element";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* This class is used to export Famix elements to JSON
|
|
5
|
-
*/
|
|
6
|
-
export class FamixJSONExporter {
|
|
7
|
-
|
|
8
|
-
private element: FamixBaseElement; // A Famix element to export
|
|
9
|
-
private bufferArray: any = {}; // A buffer to store the properties of the Famix element
|
|
10
|
-
private FamixPrefix = "FamixTypeScript"; // Prefix of the Famix element
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Constructor of the FamixJSONExporter class
|
|
14
|
-
* @param packageClass Name of a Famix class
|
|
15
|
-
* @param element A Famix element to export, this element is an instance of the class named "packageClass"
|
|
16
|
-
*/
|
|
17
|
-
constructor(packageClass: string, element: FamixBaseElement) {
|
|
18
|
-
this.element = element;
|
|
19
|
-
this.bufferArray["FM3"] = this.FamixPrefix + "." + packageClass;
|
|
20
|
-
this.bufferArray["id"] = this.element.id;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Adds a property to the Famix element
|
|
25
|
-
* @param name Name of the property
|
|
26
|
-
* @param prop A property
|
|
27
|
-
*/
|
|
28
|
-
public addProperty(name: string, prop: unknown): void {
|
|
29
|
-
if (prop instanceof Set) {
|
|
30
|
-
const valueArray: Array<unknown> = [];
|
|
31
|
-
for (const value of Array.from(prop.values())) {
|
|
32
|
-
if (value instanceof FamixBaseElement) {
|
|
33
|
-
valueArray.push({ "ref": value.id });
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
valueArray.push(value);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
this.bufferArray[name] = valueArray;
|
|
40
|
-
}
|
|
41
|
-
else if (prop instanceof FamixBaseElement) {
|
|
42
|
-
this.bufferArray[name] = { "ref": prop.id };
|
|
43
|
-
}
|
|
44
|
-
else if (prop !== undefined && !(prop instanceof Set)) {
|
|
45
|
-
this.bufferArray[name] = prop;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Gets a JSON representation of the Famix element
|
|
51
|
-
* @returns A JSON representation of the Famix element
|
|
52
|
-
*/
|
|
53
|
-
public getJSON(): string {
|
|
54
|
-
return JSON.stringify(this.bufferArray);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
1
|
+
import { FamixBaseElement } from "./famix_base_element";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This class is used to export Famix elements to JSON
|
|
5
|
+
*/
|
|
6
|
+
export class FamixJSONExporter {
|
|
7
|
+
|
|
8
|
+
private element: FamixBaseElement; // A Famix element to export
|
|
9
|
+
private bufferArray: any = {}; // A buffer to store the properties of the Famix element
|
|
10
|
+
private FamixPrefix = "FamixTypeScript"; // Prefix of the Famix element
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Constructor of the FamixJSONExporter class
|
|
14
|
+
* @param packageClass Name of a Famix class
|
|
15
|
+
* @param element A Famix element to export, this element is an instance of the class named "packageClass"
|
|
16
|
+
*/
|
|
17
|
+
constructor(packageClass: string, element: FamixBaseElement) {
|
|
18
|
+
this.element = element;
|
|
19
|
+
this.bufferArray["FM3"] = this.FamixPrefix + "." + packageClass;
|
|
20
|
+
this.bufferArray["id"] = this.element.id;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Adds a property to the Famix element
|
|
25
|
+
* @param name Name of the property
|
|
26
|
+
* @param prop A property
|
|
27
|
+
*/
|
|
28
|
+
public addProperty(name: string, prop: unknown): void {
|
|
29
|
+
if (prop instanceof Set) {
|
|
30
|
+
const valueArray: Array<unknown> = [];
|
|
31
|
+
for (const value of Array.from(prop.values())) {
|
|
32
|
+
if (value instanceof FamixBaseElement) {
|
|
33
|
+
valueArray.push({ "ref": value.id });
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
valueArray.push(value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
this.bufferArray[name] = valueArray;
|
|
40
|
+
}
|
|
41
|
+
else if (prop instanceof FamixBaseElement) {
|
|
42
|
+
this.bufferArray[name] = { "ref": prop.id };
|
|
43
|
+
}
|
|
44
|
+
else if (prop !== undefined && !(prop instanceof Set)) {
|
|
45
|
+
this.bufferArray[name] = prop;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Gets a JSON representation of the Famix element
|
|
51
|
+
* @returns A JSON representation of the Famix element
|
|
52
|
+
*/
|
|
53
|
+
public getJSON(): string {
|
|
54
|
+
return JSON.stringify(this.bufferArray);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { logger } from "../../analyze";
|
|
2
|
-
import { FamixJSONExporter } from "./famix_JSON_exporter";
|
|
3
|
-
// import { FamixRepository } from "./famix_repository";
|
|
4
|
-
|
|
5
|
-
export abstract class FamixBaseElement {
|
|
6
|
-
|
|
7
|
-
public id!: number;
|
|
8
|
-
|
|
9
|
-
// constructor(repo: FamixRepository) {
|
|
10
|
-
// repo.addElement(this);
|
|
11
|
-
// }
|
|
12
|
-
|
|
13
|
-
constructor() {
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public abstract getJSON(): string;
|
|
17
|
-
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
|
-
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
20
|
-
logger.debug("addPropertiesToExporter not implemented for " + this.constructor.name + `(${exporter})`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
import { logger } from "../../analyze";
|
|
2
|
+
import { FamixJSONExporter } from "./famix_JSON_exporter";
|
|
3
|
+
// import { FamixRepository } from "./famix_repository";
|
|
4
|
+
|
|
5
|
+
export abstract class FamixBaseElement {
|
|
6
|
+
|
|
7
|
+
public id!: number;
|
|
8
|
+
|
|
9
|
+
// constructor(repo: FamixRepository) {
|
|
10
|
+
// repo.addElement(this);
|
|
11
|
+
// }
|
|
12
|
+
|
|
13
|
+
constructor() {
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public abstract getJSON(): string;
|
|
17
|
+
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
|
+
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
20
|
+
logger.debug("addPropertiesToExporter not implemented for " + this.constructor.name + `(${exporter})`);
|
|
21
|
+
}
|
|
22
|
+
}
|