@idlizer/core 2.1.9-arktscgen-5 → 2.1.9-arktscgen-8
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/build/lib/src/Language.d.ts +0 -1
- package/build/lib/src/Language.js +7 -8
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +4 -15
- package/build/lib/src/LanguageWriters/ArgConvertors.js +103 -102
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +8 -30
- package/build/lib/src/LanguageWriters/LanguageWriter.js +15 -67
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +2 -2
- package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.d.ts +17 -1
- package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.js +121 -6
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +6 -0
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +1 -2
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +3 -19
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +0 -5
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.js +0 -9
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +3 -5
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +9 -22
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +6 -9
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +23 -66
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +1 -7
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +4 -14
- package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.d.ts +11 -8
- package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.js +116 -27
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +4 -5
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +10 -26
- package/build/lib/src/config.d.ts +336 -1
- package/build/lib/src/config.js +11 -3
- package/build/lib/src/diagnosticmessages.d.ts +45 -0
- package/build/lib/src/diagnosticmessages.js +66 -0
- package/build/lib/src/diagnostictypes.d.ts +140 -0
- package/build/lib/src/diagnostictypes.js +72 -0
- package/build/lib/src/formatter.d.ts +3 -0
- package/build/lib/src/formatter.js +98 -0
- package/build/lib/src/from-idl/deserialize.d.ts +1 -0
- package/build/lib/src/from-idl/deserialize.js +107 -5
- package/build/lib/src/idl.d.ts +7 -0
- package/build/lib/src/idl.js +15 -3
- package/build/lib/src/index.d.ts +7 -1
- package/build/lib/src/index.js +7 -1
- package/build/lib/src/peer-generation/Materialized.d.ts +4 -20
- package/build/lib/src/peer-generation/Materialized.js +9 -62
- package/build/lib/src/peer-generation/PeerClass.d.ts +0 -2
- package/build/lib/src/peer-generation/PeerClass.js +4 -6
- package/build/lib/src/peer-generation/PeerLibrary.js +1 -5
- package/build/lib/src/peer-generation/PeerMethod.d.ts +25 -27
- package/build/lib/src/peer-generation/PeerMethod.js +83 -93
- package/build/lib/src/peer-generation/idl/common.js +1 -1
- package/build/lib/src/peer-generation/isMaterialized.js +0 -4
- package/build/lib/src/peer-generation/modules.d.ts +1 -0
- package/build/lib/src/peer-generation/modules.js +4 -0
- package/build/lib/src/peer-generation/unions.d.ts +0 -2
- package/build/lib/src/peer-generation/unions.js +3 -23
- package/build/lib/src/transformers/FqnTransformer.d.ts +4 -0
- package/build/lib/src/transformers/FqnTransformer.js +17 -0
- package/build/lib/src/transformers/GenericTransformer.d.ts +8 -0
- package/build/lib/src/transformers/GenericTransformer.js +141 -0
- package/build/lib/src/util.d.ts +4 -2
- package/build/lib/src/util.js +21 -12
- package/package.json +2 -2
package/build/lib/src/idl.js
CHANGED
|
@@ -72,6 +72,7 @@ export var IDLExtendedAttributes;
|
|
|
72
72
|
IDLExtendedAttributes["NativeModule"] = "NativeModule";
|
|
73
73
|
IDLExtendedAttributes["Optional"] = "Optional";
|
|
74
74
|
IDLExtendedAttributes["OriginalEnumMemberName"] = "OriginalEnumMemberName";
|
|
75
|
+
IDLExtendedAttributes["OriginalGenericName"] = "OriginalGenericName";
|
|
75
76
|
IDLExtendedAttributes["Predefined"] = "Predefined";
|
|
76
77
|
IDLExtendedAttributes["Protected"] = "Protected";
|
|
77
78
|
IDLExtendedAttributes["Synthetic"] = "Synthetic";
|
|
@@ -183,11 +184,11 @@ export function forEachChild(node, cbEnter, cbLeave) {
|
|
|
183
184
|
cleanup === null || cleanup === void 0 ? void 0 : cleanup();
|
|
184
185
|
}
|
|
185
186
|
/** Updates tree in place! */
|
|
186
|
-
function updateEachChild(node, op, cbLeave) {
|
|
187
|
+
export function updateEachChild(node, op, cbLeave) {
|
|
187
188
|
var _a;
|
|
188
189
|
const old = node;
|
|
189
190
|
node = op(old);
|
|
190
|
-
if (node.kind !== old.kind) {
|
|
191
|
+
if (node.kind !== old.kind && !(isType(old) && isType(node))) {
|
|
191
192
|
throw new Error("Kinds must be the same!");
|
|
192
193
|
}
|
|
193
194
|
switch (node.kind) {
|
|
@@ -640,7 +641,18 @@ export function createConstant(name, type, value, nodeInitializer = {}) {
|
|
|
640
641
|
}
|
|
641
642
|
export function clone(node) {
|
|
642
643
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
643
|
-
const make = (
|
|
644
|
+
const make = (newnode) => {
|
|
645
|
+
if (node.nodeLocation) {
|
|
646
|
+
newnode.nodeLocation = node.nodeLocation;
|
|
647
|
+
}
|
|
648
|
+
if (node.nameLocation) {
|
|
649
|
+
newnode.nameLocation = node.nameLocation;
|
|
650
|
+
}
|
|
651
|
+
if (node.valueLocation) {
|
|
652
|
+
newnode.valueLocation = node.valueLocation;
|
|
653
|
+
}
|
|
654
|
+
return newnode;
|
|
655
|
+
};
|
|
644
656
|
const get = (node) => node;
|
|
645
657
|
switch (node.kind) {
|
|
646
658
|
case IDLKind.Interface: {
|
package/build/lib/src/index.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export * from "./util";
|
|
|
12
12
|
export * from "./rand_utils";
|
|
13
13
|
export * from "./IndentedPrinter";
|
|
14
14
|
export * from "./LibraryInterface";
|
|
15
|
+
export * from "./diagnostictypes";
|
|
16
|
+
export * from "./diagnosticmessages";
|
|
17
|
+
export * from "./formatter";
|
|
15
18
|
export * from "./LanguageWriters/LanguageWriter";
|
|
16
19
|
export * from "./LanguageWriters/ArgConvertors";
|
|
17
20
|
export * from "./LanguageWriters/common";
|
|
@@ -22,12 +25,14 @@ export * from "./LanguageWriters/convertors/ETSConvertors";
|
|
|
22
25
|
export * from "./LanguageWriters/convertors/JavaConvertors";
|
|
23
26
|
export * from "./LanguageWriters/convertors/CJConvertors";
|
|
24
27
|
export * from "./LanguageWriters/convertors/InteropConvertors";
|
|
28
|
+
export * from "./LanguageWriters/convertors/KotlinConvertors";
|
|
25
29
|
export * from "./LanguageWriters/writers/CJLanguageWriter";
|
|
26
30
|
export * from "./LanguageWriters/writers/CLikeLanguageWriter";
|
|
27
31
|
export * from "./LanguageWriters/writers/CppLanguageWriter";
|
|
28
32
|
export * from "./LanguageWriters/writers/JavaLanguageWriter";
|
|
29
33
|
export * from "./LanguageWriters/writers/TsLanguageWriter";
|
|
30
34
|
export * from "./LanguageWriters/writers/ETSLanguageWriter";
|
|
35
|
+
export * from "./LanguageWriters/writers/KotlinLanguageWriter";
|
|
31
36
|
export * from "./LanguageWriters/nameConvertor";
|
|
32
37
|
export * from "./peer-generation/idl/IdlNameConvertor";
|
|
33
38
|
export * from "./peer-generation/LayoutManager";
|
|
@@ -40,11 +45,12 @@ export * from "./peer-generation/BuilderClass";
|
|
|
40
45
|
export * from "./peer-generation/Materialized";
|
|
41
46
|
export * from "./peer-generation/modules";
|
|
42
47
|
export * from "./peer-generation/isMaterialized";
|
|
43
|
-
export * from "./peer-generation/isExternalType";
|
|
44
48
|
export * from "./peer-generation/isStructureType";
|
|
45
49
|
export * from "./peer-generation/isEnumType";
|
|
46
50
|
export * from "./peer-generation/unions";
|
|
47
51
|
export * from "./peer-generation/getSuperType";
|
|
52
|
+
export * from "./transformers/FqnTransformer";
|
|
53
|
+
export * from "./transformers/GenericTransformer";
|
|
48
54
|
export * from "./LanguageWriters";
|
|
49
55
|
export * from "./peer-generation/ReferenceResolver";
|
|
50
56
|
export * from "./peer-generation/idl/common";
|
package/build/lib/src/index.js
CHANGED
|
@@ -26,6 +26,9 @@ export * from "./util";
|
|
|
26
26
|
export * from "./rand_utils";
|
|
27
27
|
export * from "./IndentedPrinter";
|
|
28
28
|
export * from "./LibraryInterface";
|
|
29
|
+
export * from "./diagnostictypes";
|
|
30
|
+
export * from "./diagnosticmessages";
|
|
31
|
+
export * from "./formatter";
|
|
29
32
|
export * from "./LanguageWriters/LanguageWriter";
|
|
30
33
|
export * from "./LanguageWriters/ArgConvertors";
|
|
31
34
|
export * from "./LanguageWriters/common";
|
|
@@ -36,12 +39,14 @@ export * from "./LanguageWriters/convertors/ETSConvertors";
|
|
|
36
39
|
export * from "./LanguageWriters/convertors/JavaConvertors";
|
|
37
40
|
export * from "./LanguageWriters/convertors/CJConvertors";
|
|
38
41
|
export * from "./LanguageWriters/convertors/InteropConvertors";
|
|
42
|
+
export * from "./LanguageWriters/convertors/KotlinConvertors";
|
|
39
43
|
export * from "./LanguageWriters/writers/CJLanguageWriter";
|
|
40
44
|
export * from "./LanguageWriters/writers/CLikeLanguageWriter";
|
|
41
45
|
export * from "./LanguageWriters/writers/CppLanguageWriter";
|
|
42
46
|
export * from "./LanguageWriters/writers/JavaLanguageWriter";
|
|
43
47
|
export * from "./LanguageWriters/writers/TsLanguageWriter";
|
|
44
48
|
export * from "./LanguageWriters/writers/ETSLanguageWriter";
|
|
49
|
+
export * from "./LanguageWriters/writers/KotlinLanguageWriter";
|
|
45
50
|
export * from "./LanguageWriters/nameConvertor";
|
|
46
51
|
export * from "./peer-generation/idl/IdlNameConvertor";
|
|
47
52
|
export * from "./peer-generation/LayoutManager";
|
|
@@ -54,11 +59,12 @@ export * from "./peer-generation/BuilderClass";
|
|
|
54
59
|
export * from "./peer-generation/Materialized";
|
|
55
60
|
export * from "./peer-generation/modules";
|
|
56
61
|
export * from "./peer-generation/isMaterialized";
|
|
57
|
-
export * from "./peer-generation/isExternalType";
|
|
58
62
|
export * from "./peer-generation/isStructureType";
|
|
59
63
|
export * from "./peer-generation/isEnumType";
|
|
60
64
|
export * from "./peer-generation/unions";
|
|
61
65
|
export * from "./peer-generation/getSuperType";
|
|
66
|
+
export * from "./transformers/FqnTransformer";
|
|
67
|
+
export * from "./transformers/GenericTransformer";
|
|
62
68
|
export * from "./LanguageWriters";
|
|
63
69
|
export * from "./peer-generation/ReferenceResolver";
|
|
64
70
|
export * from "./peer-generation/idl/common";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as idl from '../idl';
|
|
2
|
+
import { Language } from '../Language';
|
|
2
3
|
import { ArgConvertor } from '../LanguageWriters/ArgConvertors';
|
|
3
4
|
import { Field, Method } from '../LanguageWriters/LanguageWriter';
|
|
4
5
|
import { PeerClassBase } from './PeerClass';
|
|
5
|
-
import { PeerMethod } from './PeerMethod';
|
|
6
|
-
import { ReferenceResolver } from './ReferenceResolver';
|
|
6
|
+
import { PeerMethod, PeerMethodSignature } from './PeerMethod';
|
|
7
7
|
export declare class MaterializedField {
|
|
8
8
|
field: Field;
|
|
9
9
|
argConvertor: ArgConvertor;
|
|
@@ -14,25 +14,10 @@ export declare class MaterializedField {
|
|
|
14
14
|
}
|
|
15
15
|
export declare class MaterializedMethod extends PeerMethod {
|
|
16
16
|
implementationParentName: string;
|
|
17
|
-
|
|
18
|
-
constructor(originalParentName: string, implementationParentName: string, argConvertors: ArgConvertor[], returnType: idl.IDLType, isCallSignature: boolean, method: Method, outArgConvertor?: ArgConvertor | undefined);
|
|
19
|
-
get peerMethodName(): string;
|
|
20
|
-
get implNamespaceName(): string;
|
|
21
|
-
get toStringName(): string;
|
|
22
|
-
dummyReturnValue(resolver: ReferenceResolver): string | undefined;
|
|
23
|
-
get receiverType(): string;
|
|
24
|
-
get apiCall(): string;
|
|
25
|
-
get apiKind(): string;
|
|
26
|
-
generateReceiver(): {
|
|
27
|
-
argName: string;
|
|
28
|
-
argType: string;
|
|
29
|
-
} | undefined;
|
|
30
|
-
getImplementationName(): string;
|
|
17
|
+
constructor(sig: PeerMethodSignature, originalParentName: string, implementationParentName: string, returnType: idl.IDLType, isCallSignature: boolean, method: Method);
|
|
31
18
|
tsReturnType(): idl.IDLType | undefined;
|
|
32
19
|
getPrivateMethod(): MaterializedMethod;
|
|
33
20
|
withReturnType(returnType: idl.IDLType): MaterializedMethod;
|
|
34
|
-
setOverloadIndex(index: number): void;
|
|
35
|
-
getOverloadPostfix(): string;
|
|
36
21
|
}
|
|
37
22
|
export declare function copyMaterializedMethod(method: MaterializedMethod, overrides: {
|
|
38
23
|
method?: Method;
|
|
@@ -54,7 +39,6 @@ export declare class MaterializedClass implements PeerClassBase {
|
|
|
54
39
|
constructor(decl: idl.IDLInterface, className: string, isInterface: boolean, isStaticMaterialized: boolean, superClass: idl.IDLReferenceType | undefined, interfaces: idl.IDLReferenceType[] | undefined, generics: string[] | undefined, fields: MaterializedField[], ctors: MaterializedMethod[], // zero size when used for global functions
|
|
55
40
|
finalizer: MaterializedMethod | undefined, // undefined when used for global functions
|
|
56
41
|
methods: MaterializedMethod[], needBeGenerated?: boolean, taggedMethods?: idl.IDLMethod[]);
|
|
57
|
-
getComponentName(): string;
|
|
58
42
|
getImplementationName(): string;
|
|
59
43
|
generatedName(isCallSignature: boolean): string;
|
|
60
44
|
private _isGlobal;
|
|
@@ -63,6 +47,6 @@ export declare class MaterializedClass implements PeerClassBase {
|
|
|
63
47
|
}
|
|
64
48
|
export declare function createDestroyPeerMethod(clazz: MaterializedClass): MaterializedMethod | undefined;
|
|
65
49
|
export declare function getInternalClassName(name: string): string;
|
|
66
|
-
export declare function getInternalClassQualifiedName(target: idl.IDLEntry, pattern?: idl.QNPattern): string;
|
|
50
|
+
export declare function getInternalClassQualifiedName(target: idl.IDLEntry, pattern?: idl.QNPattern, language?: Language): string;
|
|
67
51
|
export declare function getMaterializedFileName(name: string): string;
|
|
68
52
|
//# sourceMappingURL=Materialized.d.ts.map
|
|
@@ -16,7 +16,7 @@ import * as idl from '../idl';
|
|
|
16
16
|
import { copyMethod, Method, MethodModifier, NamedMethodSignature } from '../LanguageWriters/LanguageWriter';
|
|
17
17
|
import { capitalize } from '../util';
|
|
18
18
|
import { qualifiedName } from './idl/common';
|
|
19
|
-
import { PeerMethod } from './PeerMethod';
|
|
19
|
+
import { PeerMethod, PeerMethodSignature } from './PeerMethod';
|
|
20
20
|
export class MaterializedField {
|
|
21
21
|
constructor(field, argConvertor, outArgConvertor, isNullableOriginalTypeField, extraMethodName = undefined) {
|
|
22
22
|
this.field = field;
|
|
@@ -27,50 +27,9 @@ export class MaterializedField {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
export class MaterializedMethod extends PeerMethod {
|
|
30
|
-
constructor(originalParentName, implementationParentName,
|
|
31
|
-
super(
|
|
30
|
+
constructor(sig, originalParentName, implementationParentName, returnType, isCallSignature, method) {
|
|
31
|
+
super(sig, originalParentName, returnType, isCallSignature, method);
|
|
32
32
|
this.implementationParentName = implementationParentName;
|
|
33
|
-
this.outArgConvertor = outArgConvertor;
|
|
34
|
-
}
|
|
35
|
-
get peerMethodName() {
|
|
36
|
-
return this.overloadedName;
|
|
37
|
-
}
|
|
38
|
-
get implNamespaceName() {
|
|
39
|
-
return `${capitalize(this.originalParentName)}Accessor`;
|
|
40
|
-
}
|
|
41
|
-
get toStringName() {
|
|
42
|
-
switch (this.method.name) {
|
|
43
|
-
case "ctor": return `new ${this.originalParentName}`;
|
|
44
|
-
case "destructor": return `delete ${this.originalParentName}`;
|
|
45
|
-
default: return super.toStringName;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
dummyReturnValue(resolver) {
|
|
49
|
-
if (this.method.name === "ctor")
|
|
50
|
-
return `(Ark_${this.originalParentName}) 100`;
|
|
51
|
-
if (this.method.name === "getFinalizer")
|
|
52
|
-
return `fnPtr<KNativePointer>(dummyClassFinalizer)`;
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
get receiverType() {
|
|
56
|
-
return `Ark_${this.originalParentName}`;
|
|
57
|
-
}
|
|
58
|
-
get apiCall() {
|
|
59
|
-
return "GetAccessors()";
|
|
60
|
-
}
|
|
61
|
-
get apiKind() {
|
|
62
|
-
return "Accessor";
|
|
63
|
-
}
|
|
64
|
-
generateReceiver() {
|
|
65
|
-
if (!this.hasReceiver())
|
|
66
|
-
return undefined;
|
|
67
|
-
return {
|
|
68
|
-
argName: 'peer',
|
|
69
|
-
argType: `Ark_${this.originalParentName}`
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
getImplementationName() {
|
|
73
|
-
return this.implementationParentName;
|
|
74
33
|
}
|
|
75
34
|
tsReturnType() {
|
|
76
35
|
return this.method.signature.returnType;
|
|
@@ -83,6 +42,7 @@ export class MaterializedMethod extends PeerMethod {
|
|
|
83
42
|
method: copyMethod(this.method, {
|
|
84
43
|
modifiers: ((_b = this.method.modifiers) !== null && _b !== void 0 ? _b : [])
|
|
85
44
|
.filter(it => it !== MethodModifier.PUBLIC)
|
|
45
|
+
.filter(it => it !== MethodModifier.OVERRIDE)
|
|
86
46
|
.concat([MethodModifier.PRIVATE])
|
|
87
47
|
})
|
|
88
48
|
});
|
|
@@ -96,19 +56,10 @@ export class MaterializedMethod extends PeerMethod {
|
|
|
96
56
|
const method = copyMethod(this.method, { signature: signature });
|
|
97
57
|
return copyMaterializedMethod(this, { method: method });
|
|
98
58
|
}
|
|
99
|
-
setOverloadIndex(index) {
|
|
100
|
-
this.overloadIndex = index;
|
|
101
|
-
}
|
|
102
|
-
getOverloadPostfix() {
|
|
103
|
-
var _a;
|
|
104
|
-
return `${(_a = this.overloadIndex) !== null && _a !== void 0 ? _a : ""}`;
|
|
105
|
-
}
|
|
106
59
|
}
|
|
107
60
|
export function copyMaterializedMethod(method, overrides) {
|
|
108
61
|
var _a;
|
|
109
|
-
|
|
110
|
-
copied.setSameOverloadIndex(method);
|
|
111
|
-
return copied;
|
|
62
|
+
return new MaterializedMethod(method.sig, method.originalParentName, method.implementationParentName, method.returnType, method.isCallSignature, (_a = overrides.method) !== null && _a !== void 0 ? _a : method.method);
|
|
112
63
|
}
|
|
113
64
|
export class MaterializedClass {
|
|
114
65
|
constructor(decl, className, isInterface, isStaticMaterialized, superClass, interfaces, generics, fields, ctors, // zero size when used for global functions
|
|
@@ -128,16 +79,12 @@ export class MaterializedClass {
|
|
|
128
79
|
this.needBeGenerated = needBeGenerated;
|
|
129
80
|
this.taggedMethods = taggedMethods;
|
|
130
81
|
this._isGlobal = false;
|
|
131
|
-
PeerMethod.markAndGroupOverloads(methods);
|
|
132
|
-
}
|
|
133
|
-
getComponentName() {
|
|
134
|
-
return this.className;
|
|
135
82
|
}
|
|
136
83
|
getImplementationName() {
|
|
137
84
|
return this.isInterface ? getInternalClassName(this.className) : this.className;
|
|
138
85
|
}
|
|
139
86
|
generatedName(isCallSignature) {
|
|
140
|
-
return this.
|
|
87
|
+
return this.getImplementationName();
|
|
141
88
|
}
|
|
142
89
|
setGlobalScope() {
|
|
143
90
|
this._isGlobal = true;
|
|
@@ -150,13 +97,13 @@ export function createDestroyPeerMethod(clazz) {
|
|
|
150
97
|
if (clazz.isGlobalScope() || clazz.isStaticMaterialized) {
|
|
151
98
|
return undefined;
|
|
152
99
|
}
|
|
153
|
-
return new MaterializedMethod(idl.getQualifiedName(clazz.decl, "namespace.name").split('.').join('_'), clazz.getImplementationName(),
|
|
100
|
+
return new MaterializedMethod(new PeerMethodSignature(PeerMethodSignature.DESTROY, '%NEVER_USED$', [], idl.IDLVoidType, clazz.decl), idl.getQualifiedName(clazz.decl, "namespace.name").split('.').join('_'), clazz.getImplementationName(), idl.IDLVoidType, false, new Method('destroyPeer', new NamedMethodSignature(idl.IDLVoidType, [idl.createReferenceType(clazz.decl)], ['peer'])));
|
|
154
101
|
}
|
|
155
102
|
export function getInternalClassName(name) {
|
|
156
103
|
return `${name}Internal`;
|
|
157
104
|
}
|
|
158
|
-
export function getInternalClassQualifiedName(target, pattern = "package.namespace.name") {
|
|
159
|
-
return getInternalClassName(qualifiedName(target, ".", pattern));
|
|
105
|
+
export function getInternalClassQualifiedName(target, pattern = "package.namespace.name", language) {
|
|
106
|
+
return getInternalClassName(qualifiedName(target, language !== null && language !== void 0 ? language : ".", pattern));
|
|
160
107
|
}
|
|
161
108
|
export function getMaterializedFileName(name) {
|
|
162
109
|
const pascalCase = name.split('_').map(x => capitalize(x)).join('');
|
|
@@ -2,7 +2,6 @@ import { IDLFile, IDLProperty } from "../idl";
|
|
|
2
2
|
import { PeerMethod } from "./PeerMethod";
|
|
3
3
|
export interface PeerClassBase {
|
|
4
4
|
generatedName(isCallSignature: boolean): string;
|
|
5
|
-
getComponentName(): string;
|
|
6
5
|
}
|
|
7
6
|
export declare class PeerClass implements PeerClassBase {
|
|
8
7
|
readonly file: IDLFile;
|
|
@@ -10,7 +9,6 @@ export declare class PeerClass implements PeerClassBase {
|
|
|
10
9
|
readonly originalFilename: string;
|
|
11
10
|
constructor(file: IDLFile, componentName: string, originalFilename: string);
|
|
12
11
|
generatedName(isCallSignature: boolean): string;
|
|
13
|
-
getComponentName(): string;
|
|
14
12
|
methods: PeerMethod[];
|
|
15
13
|
originalClassName: string | undefined;
|
|
16
14
|
originalInterfaceName: string | undefined;
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
import { IDLI32Type, IDLPointerType } from "../idl";
|
|
16
|
-
import {
|
|
17
|
-
import { PeerMethod } from "./PeerMethod";
|
|
16
|
+
import { PeerMethod, PeerMethodArg, PeerMethodSignature } from "./PeerMethod";
|
|
18
17
|
import { Method, MethodModifier, NamedMethodSignature } from "../LanguageWriters/LanguageWriter";
|
|
19
18
|
export class PeerClass {
|
|
20
19
|
constructor(file, componentName, originalFilename) {
|
|
@@ -33,11 +32,10 @@ export class PeerClass {
|
|
|
33
32
|
generatedName(isCallSignature) {
|
|
34
33
|
return isCallSignature ? this.originalInterfaceName : this.originalClassName;
|
|
35
34
|
}
|
|
36
|
-
getComponentName() {
|
|
37
|
-
return this.componentName;
|
|
38
|
-
}
|
|
39
35
|
}
|
|
40
36
|
export function createConstructPeerMethod(clazz) {
|
|
41
|
-
|
|
37
|
+
// TODO here is class FQName needed, but can not calculate if from current PeerClass data
|
|
38
|
+
const classFQN = [clazz.componentName];
|
|
39
|
+
return new PeerMethod(new PeerMethodSignature(PeerMethodSignature.CTOR, classFQN.concat(PeerMethodSignature.CTOR).join('_'), [new PeerMethodArg('id', IDLI32Type), new PeerMethodArg('flags', IDLI32Type)], IDLPointerType), clazz.componentName, IDLPointerType, false, new Method('construct', new NamedMethodSignature(IDLPointerType, [IDLI32Type, IDLI32Type], ['id', 'flags']), [MethodModifier.STATIC]));
|
|
42
40
|
}
|
|
43
41
|
//# sourceMappingURL=PeerClass.js.map
|
|
@@ -17,7 +17,7 @@ import * as idl from '../idl';
|
|
|
17
17
|
import { resolveNamedNode } from '../resolveNamedNode';
|
|
18
18
|
import { Language } from '../Language';
|
|
19
19
|
import { createLanguageWriter } from '../LanguageWriters';
|
|
20
|
-
import { BufferConvertor, CallbackConvertor, DateConvertor, MapConvertor, PointerConvertor, TupleConvertor, TypeAliasConvertor, AggregateConvertor, StringConvertor, ClassConvertor, ArrayConvertor, FunctionConvertor, OptionConvertor, NumberConvertor, NumericConvertor, CustomTypeConvertor, UnionConvertor, MaterializedClassConvertor, BooleanConvertor, EnumConvertor, UndefinedConvertor, VoidConvertor, ImportTypeConvertor, InterfaceConvertor, BigIntToU64Convertor, ObjectConvertor,
|
|
20
|
+
import { BufferConvertor, CallbackConvertor, DateConvertor, MapConvertor, PointerConvertor, TupleConvertor, TypeAliasConvertor, AggregateConvertor, StringConvertor, ClassConvertor, ArrayConvertor, FunctionConvertor, OptionConvertor, NumberConvertor, NumericConvertor, CustomTypeConvertor, UnionConvertor, MaterializedClassConvertor, BooleanConvertor, EnumConvertor, UndefinedConvertor, VoidConvertor, ImportTypeConvertor, InterfaceConvertor, BigIntToU64Convertor, ObjectConvertor, } from "../LanguageWriters/ArgConvertors";
|
|
21
21
|
import { CppNameConvertor } from '../LanguageWriters/convertors/CppConvertors';
|
|
22
22
|
import { CJTypeNameConvertor } from '../LanguageWriters/convertors/CJConvertors';
|
|
23
23
|
import { CppConvertor } from '../LanguageWriters/convertors/CppConvertors';
|
|
@@ -32,7 +32,6 @@ import { isMaterialized } from './isMaterialized';
|
|
|
32
32
|
import { isInIdlizeInternal } from '../idlize';
|
|
33
33
|
import { isInCurrentModule } from './modules';
|
|
34
34
|
import { generatorConfiguration } from '../config';
|
|
35
|
-
import { isExternalType } from './isExternalType';
|
|
36
35
|
import { KotlinTypeNameConvertor } from '../LanguageWriters/convertors/KotlinConvertors';
|
|
37
36
|
export const lenses = {
|
|
38
37
|
globals: lib.lens(lib.select.files())
|
|
@@ -392,9 +391,6 @@ export class PeerLibrary {
|
|
|
392
391
|
return new TypeAliasConvertor(this, param, declaration);
|
|
393
392
|
}
|
|
394
393
|
if (idl.isInterface(declaration)) {
|
|
395
|
-
if (isExternalType(declaration, this)) {
|
|
396
|
-
return new ExternalTypeConvertor(this, param, declaration);
|
|
397
|
-
}
|
|
398
394
|
if (isMaterialized(declaration, this)) {
|
|
399
395
|
return new MaterializedClassConvertor(this, param, declaration);
|
|
400
396
|
}
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
+
import * as idl from '../idl';
|
|
1
2
|
import { IDLType } from "../idl";
|
|
2
|
-
import { IdlNameConvertor } from "../LanguageWriters";
|
|
3
3
|
import { ArgConvertor } from "../LanguageWriters/ArgConvertors";
|
|
4
|
-
import { Method } from "../LanguageWriters/LanguageWriter";
|
|
5
|
-
import {
|
|
4
|
+
import { Method, MethodModifier } from "../LanguageWriters/LanguageWriter";
|
|
5
|
+
import { PeerLibrary } from './PeerLibrary';
|
|
6
|
+
export declare class PeerMethodArg {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly type: idl.IDLType;
|
|
9
|
+
constructor(name: string, type: idl.IDLType);
|
|
10
|
+
}
|
|
11
|
+
export declare class PeerMethodSignature {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly fqname: string;
|
|
14
|
+
readonly args: PeerMethodArg[];
|
|
15
|
+
readonly returnType: idl.IDLType;
|
|
16
|
+
readonly context: idl.IDLEntry | undefined;
|
|
17
|
+
readonly modifiers: (MethodModifier.FORCE_CONTEXT | MethodModifier.THROWS)[];
|
|
18
|
+
constructor(name: string, fqname: string, args: PeerMethodArg[], returnType: idl.IDLType, context?: idl.IDLEntry | undefined, modifiers?: (MethodModifier.FORCE_CONTEXT | MethodModifier.THROWS)[]);
|
|
19
|
+
static generateOverloadPostfix(decl: idl.IDLConstructor | idl.IDLMethod | idl.IDLCallable | idl.IDLProperty): string;
|
|
20
|
+
static get CTOR(): string;
|
|
21
|
+
static get GET_FINALIZER(): string;
|
|
22
|
+
static get DESTROY(): string;
|
|
23
|
+
}
|
|
6
24
|
export declare class PeerMethod {
|
|
25
|
+
sig: PeerMethodSignature;
|
|
7
26
|
originalParentName: string;
|
|
8
|
-
argConvertors: ArgConvertor[];
|
|
9
27
|
returnType: IDLType;
|
|
10
28
|
isCallSignature: boolean;
|
|
11
29
|
method: Method;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
get overloadedName(): string;
|
|
16
|
-
get fullMethodName(): string;
|
|
17
|
-
get peerMethodName(): string;
|
|
18
|
-
get implNamespaceName(): string;
|
|
19
|
-
get implName(): string;
|
|
20
|
-
get toStringName(): string;
|
|
21
|
-
dummyReturnValue(resolver: ReferenceResolver): string | undefined;
|
|
22
|
-
get receiverType(): string;
|
|
23
|
-
get apiCall(): string;
|
|
24
|
-
get apiKind(): string;
|
|
25
|
-
get argAndOutConvertors(): ArgConvertor[];
|
|
26
|
-
hasReceiver(): boolean;
|
|
27
|
-
generateAPIParameters(converter: IdlNameConvertor): string[];
|
|
28
|
-
generateReceiver(): {
|
|
29
|
-
argName: string;
|
|
30
|
-
argType: string;
|
|
31
|
-
} | undefined;
|
|
32
|
-
getImplementationName(): string;
|
|
33
|
-
static markAndGroupOverloads(methods: PeerMethod[]): PeerMethod[];
|
|
34
|
-
setSameOverloadIndex(copyFrom: PeerMethod): void;
|
|
30
|
+
constructor(sig: PeerMethodSignature, originalParentName: string, returnType: IDLType, isCallSignature: boolean, method: Method);
|
|
31
|
+
argConvertors(library: PeerLibrary): ArgConvertor[];
|
|
32
|
+
argAndOutConvertors(library: PeerLibrary): ArgConvertor[];
|
|
35
33
|
}
|
|
36
34
|
//# sourceMappingURL=PeerMethod.d.ts.map
|
|
@@ -1,101 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
import * as idl from '../idl';
|
|
16
|
+
import { createOutArgConvertor } from "../LanguageWriters/ArgConvertors";
|
|
17
|
+
import { MethodModifier } from "../LanguageWriters/LanguageWriter";
|
|
18
|
+
export class PeerMethodArg {
|
|
19
|
+
constructor(name, type) {
|
|
20
|
+
this.name = name;
|
|
21
|
+
this.type = type;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class PeerMethodSignature {
|
|
25
|
+
constructor(
|
|
26
|
+
// contextual name of method
|
|
27
|
+
name,
|
|
28
|
+
// unique name of method (used in global scopes like interop)
|
|
29
|
+
fqname, args, returnType, context = undefined,
|
|
30
|
+
// only modifiers affecting signature. Private, public, static and others - does not belong here
|
|
31
|
+
modifiers = []) {
|
|
32
|
+
this.name = name;
|
|
33
|
+
this.fqname = fqname;
|
|
34
|
+
this.args = args;
|
|
35
|
+
this.returnType = returnType;
|
|
36
|
+
this.context = context;
|
|
37
|
+
this.modifiers = modifiers;
|
|
38
|
+
}
|
|
39
|
+
static generateOverloadPostfix(decl) {
|
|
40
|
+
if (!decl.parent)
|
|
41
|
+
return ``;
|
|
42
|
+
let sameNamed = [];
|
|
43
|
+
if (idl.isMethod(decl) || idl.isProperty(decl)) {
|
|
44
|
+
let members = [];
|
|
45
|
+
if (idl.isInterface(decl.parent))
|
|
46
|
+
members = [...decl.parent.properties, ...decl.parent.methods];
|
|
47
|
+
else if (idl.isNamespace(decl.parent))
|
|
48
|
+
members = decl.parent.members;
|
|
49
|
+
else if (idl.isFile(decl.parent))
|
|
50
|
+
members = decl.parent.entries.filter(idl.isMethod);
|
|
51
|
+
sameNamed = members.filter(it => it.name === decl.name);
|
|
52
|
+
}
|
|
53
|
+
else if (idl.isConstructor(decl) && idl.isInterface(decl.parent)) {
|
|
54
|
+
sameNamed = decl.parent.constructors;
|
|
55
|
+
}
|
|
56
|
+
else if (idl.isCallable(decl) && idl.isInterface(decl.parent)) {
|
|
57
|
+
sameNamed = decl.parent.callables;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
throw new Error("unexpected type of declaration");
|
|
61
|
+
}
|
|
62
|
+
return sameNamed.length > 1 ? sameNamed.indexOf(decl).toString() : '';
|
|
63
|
+
}
|
|
64
|
+
static get CTOR() { return "construct"; }
|
|
65
|
+
static get GET_FINALIZER() { return "getFinalizer"; }
|
|
66
|
+
static get DESTROY() { return "destroyPeer"; }
|
|
67
|
+
}
|
|
7
68
|
export class PeerMethod {
|
|
8
|
-
constructor(
|
|
69
|
+
constructor(sig, originalParentName, returnType, isCallSignature, method) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
this.sig = sig;
|
|
9
72
|
this.originalParentName = originalParentName;
|
|
10
|
-
this.argConvertors = argConvertors;
|
|
11
73
|
this.returnType = returnType;
|
|
12
74
|
this.isCallSignature = isCallSignature;
|
|
13
75
|
this.method = method;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
name.startsWith("get"))
|
|
28
|
-
return name;
|
|
29
|
-
return `set${capitalize(name)}`;
|
|
30
|
-
}
|
|
31
|
-
get implNamespaceName() {
|
|
32
|
-
return `${capitalize(this.originalParentName)}Modifier`;
|
|
33
|
-
}
|
|
34
|
-
get implName() {
|
|
35
|
-
return `${capitalize(this.overloadedName)}Impl`;
|
|
36
|
-
}
|
|
37
|
-
get toStringName() {
|
|
38
|
-
return this.method.name;
|
|
39
|
-
}
|
|
40
|
-
dummyReturnValue(resolver) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
get receiverType() {
|
|
44
|
-
return "Ark_NodeHandle";
|
|
45
|
-
}
|
|
46
|
-
get apiCall() {
|
|
47
|
-
return "GetNodeModifiers()";
|
|
48
|
-
}
|
|
49
|
-
get apiKind() {
|
|
50
|
-
return "Modifier";
|
|
51
|
-
}
|
|
52
|
-
get argAndOutConvertors() {
|
|
53
|
-
var _a;
|
|
54
|
-
return this.argConvertors.concat((_a = this.outArgConvertor) !== null && _a !== void 0 ? _a : []);
|
|
55
|
-
}
|
|
56
|
-
hasReceiver() {
|
|
57
|
-
var _a;
|
|
58
|
-
return !((_a = this.method.modifiers) === null || _a === void 0 ? void 0 : _a.includes(MethodModifier.STATIC));
|
|
59
|
-
}
|
|
60
|
-
generateAPIParameters(converter) {
|
|
61
|
-
const args = this.argAndOutConvertors.map(it => {
|
|
62
|
-
let isPointer = it.isPointerType();
|
|
63
|
-
return `${isPointer ? "const " : ""}${converter.convert(it.nativeType())}${isPointer ? "*" : ""} ${it.param}`;
|
|
64
|
-
});
|
|
65
|
-
const receiver = this.generateReceiver();
|
|
66
|
-
if (receiver)
|
|
67
|
-
args.unshift(`${receiver.argType} ${receiver.argName}`);
|
|
68
|
-
if (!!asPromise(this.method.signature.returnType))
|
|
69
|
-
args.unshift(`${generatorTypePrefix()}AsyncWorkerPtr asyncWorker`);
|
|
70
|
-
if (isVMContextMethod(this.method))
|
|
71
|
-
args.unshift(`${generatorTypePrefix()}VMContext vmContext`);
|
|
72
|
-
return args;
|
|
73
|
-
}
|
|
74
|
-
generateReceiver() {
|
|
75
|
-
if (!this.hasReceiver())
|
|
76
|
-
return undefined;
|
|
77
|
-
return {
|
|
78
|
-
argName: "node",
|
|
79
|
-
argType: PrimitiveTypesInstance.NativePointer.getText()
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
getImplementationName() {
|
|
83
|
-
return this.originalParentName;
|
|
84
|
-
}
|
|
85
|
-
static markAndGroupOverloads(methods) {
|
|
86
|
-
let groupedMethods = [];
|
|
87
|
-
for (const peerMethod of methods) {
|
|
88
|
-
if (isDefined(peerMethod.overloadIndex))
|
|
89
|
-
continue;
|
|
90
|
-
const sameNamedMethods = methods.filter(it => it.method.name === peerMethod.method.name);
|
|
91
|
-
if (sameNamedMethods.length > 1)
|
|
92
|
-
sameNamedMethods.forEach((it, index) => it.overloadIndex = index);
|
|
93
|
-
groupedMethods = groupedMethods.concat(sameNamedMethods);
|
|
94
|
-
}
|
|
95
|
-
return groupedMethods;
|
|
96
|
-
}
|
|
97
|
-
setSameOverloadIndex(copyFrom) {
|
|
98
|
-
this.overloadIndex = copyFrom.overloadIndex;
|
|
76
|
+
// todo remove me
|
|
77
|
+
if ((_a = method.modifiers) === null || _a === void 0 ? void 0 : _a.includes(MethodModifier.FORCE_CONTEXT))
|
|
78
|
+
sig.modifiers.push(MethodModifier.FORCE_CONTEXT);
|
|
79
|
+
if ((_b = method.modifiers) === null || _b === void 0 ? void 0 : _b.includes(MethodModifier.THROWS))
|
|
80
|
+
sig.modifiers.push(MethodModifier.THROWS);
|
|
81
|
+
}
|
|
82
|
+
argConvertors(library) {
|
|
83
|
+
return this.sig.args.map(it => library.typeConvertor(it.name, it.type, false));
|
|
84
|
+
}
|
|
85
|
+
argAndOutConvertors(library) {
|
|
86
|
+
const convertors = this.argConvertors(library);
|
|
87
|
+
const outArgConvertor = createOutArgConvertor(library, this.sig.returnType, this.sig.args.map(it => it.name));
|
|
88
|
+
return outArgConvertor ? convertors.concat(outArgConvertor) : convertors;
|
|
99
89
|
}
|
|
100
90
|
}
|
|
101
91
|
//# sourceMappingURL=PeerMethod.js.map
|
|
@@ -38,7 +38,7 @@ export function qualifiedName(decl, languageOrDelimiter, pattern) {
|
|
|
38
38
|
throw new Error("internal error, name required for no-named node");
|
|
39
39
|
const delimiter = typeof languageOrDelimiter === "string"
|
|
40
40
|
? languageOrDelimiter
|
|
41
|
-
: (
|
|
41
|
+
: ([Language.CPP, Language.CJ, Language.KOTLIN].includes(languageOrDelimiter) ? '_' : '.');
|
|
42
42
|
if (!idl.isEntry(decl))
|
|
43
43
|
throw new Error(`Expected to have an IDLEntry, got ${idl.IDLKind[decl.kind]}`);
|
|
44
44
|
return idl.getQualifiedName(decl, pattern).split(".").join(delimiter);
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import { generatorConfiguration } from '../config';
|
|
16
16
|
import * as idl from '../idl';
|
|
17
17
|
import { isBuilderClass } from './BuilderClass';
|
|
18
|
-
import { isExternalType } from './isExternalType';
|
|
19
18
|
import { getSuper } from './getSuperType';
|
|
20
19
|
export function isMaterialized(declaration, resolver) {
|
|
21
20
|
var _a;
|
|
@@ -45,9 +44,6 @@ export function isMaterialized(declaration, resolver) {
|
|
|
45
44
|
if (generatorConfiguration().ignoreMaterialized.includes(declaration.name)) {
|
|
46
45
|
return false;
|
|
47
46
|
}
|
|
48
|
-
if (isExternalType(declaration, resolver)) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
47
|
// A materialized class is a class or an interface with methods
|
|
52
48
|
// excluding components and related classes
|
|
53
49
|
if (declaration.methods.length > 0 || declaration.constructors.length > 0)
|
|
@@ -2,6 +2,7 @@ import { ModuleConfiguration } from "../config";
|
|
|
2
2
|
import * as idl from "../idl";
|
|
3
3
|
export declare function isInModule(node: idl.IDLNode, module: ModuleConfiguration): boolean;
|
|
4
4
|
export declare function isInModule(packageName: string, module: ModuleConfiguration): boolean;
|
|
5
|
+
export declare function isInExternalModule(node: idl.IDLNode): boolean;
|
|
5
6
|
export declare function getModuleFor(node: idl.IDLNode): ModuleConfiguration;
|
|
6
7
|
export declare function getModuleFor(packageName: string): ModuleConfiguration;
|
|
7
8
|
export declare function currentModule(): ModuleConfiguration;
|