@idlizer/core 2.1.10-arktscgen-4 → 2.1.10-arktscgen-6
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 +1 -3
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +18 -7
- package/build/lib/src/LanguageWriters/ArgConvertors.js +95 -103
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +13 -7
- package/build/lib/src/LanguageWriters/LanguageWriter.js +10 -2
- package/build/lib/src/LanguageWriters/common.d.ts +1 -0
- package/build/lib/src/LanguageWriters/common.js +2 -1
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +0 -1
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +1 -3
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +14 -8
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +88 -36
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.d.ts +1 -0
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +10 -8
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +1 -1
- package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.js +9 -5
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -4
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +98 -44
- package/build/lib/src/LanguageWriters/index.d.ts +5 -4
- package/build/lib/src/LanguageWriters/index.js +8 -15
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +2 -0
- package/build/lib/src/LanguageWriters/nameConvertor.js +11 -0
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +2 -0
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +13 -1
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +2 -0
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +8 -2
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +2 -10
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +52 -92
- package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.d.ts +8 -0
- package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.js +75 -27
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +5 -0
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +58 -18
- package/build/lib/src/LibraryInterface.d.ts +0 -1
- package/build/lib/src/config.d.ts +2 -1461
- package/build/lib/src/config.js +16 -32
- package/build/lib/src/configMerge.d.ts +3 -0
- package/build/lib/src/configMerge.js +63 -0
- package/build/lib/src/diagnostictypes.d.ts +1 -5
- package/build/lib/src/diagnostictypes.js +1 -27
- package/build/lib/src/from-idl/DtsPrinter.js +13 -6
- package/build/lib/src/from-idl/IDLLinter.d.ts +3 -4
- package/build/lib/src/from-idl/IDLLinter.js +30 -32
- package/build/lib/src/from-idl/deserialize.d.ts +3 -4
- package/build/lib/src/from-idl/deserialize.js +30 -642
- package/build/lib/src/from-idl/parser.d.ts +20 -2
- package/build/lib/src/from-idl/parser.js +97 -29
- package/build/lib/src/idl/builders.d.ts +43 -0
- package/build/lib/src/idl/builders.js +135 -0
- package/build/lib/src/idl/discriminators.d.ts +53 -0
- package/build/lib/src/idl/discriminators.js +232 -0
- package/build/lib/src/idl/dump.d.ts +48 -0
- package/build/lib/src/idl/dump.js +327 -0
- package/build/lib/src/idl/index.d.ts +9 -0
- package/build/lib/src/idl/index.js +23 -0
- package/build/lib/src/idl/keywords.d.ts +2 -0
- package/build/lib/src/{options.js → idl/keywords.js} +7 -3
- package/build/lib/src/idl/node.d.ts +233 -0
- package/build/lib/src/idl/node.js +103 -0
- package/build/lib/src/idl/stdlib.d.ts +34 -0
- package/build/lib/src/idl/stdlib.js +54 -0
- package/build/lib/src/idl/utils.d.ts +44 -0
- package/build/lib/src/idl/utils.js +215 -0
- package/build/lib/src/idl/visitors.d.ts +15 -0
- package/build/lib/src/idl/visitors.js +593 -0
- package/build/lib/src/index.d.ts +5 -6
- package/build/lib/src/index.js +6 -7
- package/build/lib/src/inheritance.d.ts +0 -2
- package/build/lib/src/inheritance.js +0 -17
- package/build/lib/src/inputPaths.d.ts +11 -0
- package/build/lib/src/inputPaths.js +81 -0
- package/build/lib/src/languageSpecificKeywords.d.ts +0 -1
- package/build/lib/src/languageSpecificKeywords.js +0 -5
- package/build/lib/src/peer-generation/ConflictingDeclarations.d.ts +6 -0
- package/build/lib/src/peer-generation/ConflictingDeclarations.js +43 -0
- package/build/lib/src/peer-generation/LayoutManager.d.ts +3 -1
- package/build/lib/src/peer-generation/LayoutManager.js +15 -0
- package/build/lib/src/peer-generation/Materialized.d.ts +8 -0
- package/build/lib/src/peer-generation/Materialized.js +26 -1
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +10 -18
- package/build/lib/src/peer-generation/PeerLibrary.js +63 -227
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +6 -1
- package/build/lib/src/peer-generation/ReferenceResolver.js +93 -2
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +6 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +15 -3
- package/build/lib/src/peer-generation/idl/common.d.ts +6 -2
- package/build/lib/src/peer-generation/idl/common.js +7 -7
- package/build/lib/src/peer-generation/isMaterialized.js +2 -3
- package/build/lib/src/peer-generation/modules.js +2 -0
- package/build/lib/src/peer-generation/toDeclaration.d.ts +4 -0
- package/build/lib/src/peer-generation/toDeclaration.js +53 -0
- package/build/lib/src/peer-generation/unions.d.ts +1 -1
- package/build/lib/src/peer-generation/unions.js +15 -7
- package/build/lib/src/resolveNamedNode.d.ts +1 -0
- package/build/lib/src/resolveNamedNode.js +7 -0
- package/build/lib/src/transformers/FqnTransformer.d.ts +1 -1
- package/build/lib/src/transformers/FqnTransformer.js +20 -12
- package/build/lib/src/transformers/GenericTransformer.d.ts +4 -3
- package/build/lib/src/transformers/GenericTransformer.js +252 -158
- package/build/lib/src/transformers/IdlTransformer.d.ts +6 -0
- package/build/lib/src/transformers/IdlTransformer.js +7 -0
- package/build/lib/src/transformers/NullTransformer.d.ts +1 -1
- package/build/lib/src/transformers/NullTransformer.js +27 -21
- package/build/lib/src/transformers/OnSerializeTransformer.d.ts +1 -1
- package/build/lib/src/transformers/OnSerializeTransformer.js +28 -13
- package/build/lib/src/util.d.ts +9 -39
- package/build/lib/src/util.js +65 -369
- package/package.json +44 -49
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +0 -37
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +0 -210
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +0 -83
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +0 -295
- package/build/lib/src/from-idl/webidl2-utils.d.ts +0 -21
- package/build/lib/src/from-idl/webidl2-utils.js +0 -87
- package/build/lib/src/idl.d.ts +0 -439
- package/build/lib/src/idl.js +0 -1367
- package/build/lib/src/idlize.d.ts +0 -25
- package/build/lib/src/idlize.js +0 -198
- package/build/lib/src/options.d.ts +0 -13
- package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -20
- package/build/lib/src/peer-generation/BuilderClass.js +0 -68
- package/webidl2.js/dist/webidl2.js +0 -4622
- package/webidl2.js/package.json +0 -55
|
@@ -1,43 +1,36 @@
|
|
|
1
1
|
import { IndentedPrinter } from "../IndentedPrinter";
|
|
2
2
|
import { Language } from "../Language";
|
|
3
3
|
import { PrimitiveTypesInstance } from "../peer-generation/PrimitiveType";
|
|
4
|
-
import { createEmptyReferenceResolver } from "../peer-generation/ReferenceResolver";
|
|
5
4
|
import { CJIDLTypeToForeignStringConvertor, CJInteropArgConvertor, CJTypeNameConvertor } from "./convertors/CJConvertors";
|
|
6
5
|
import { CppInteropArgConvertor, CppConvertor } from "./convertors/CppConvertors";
|
|
7
6
|
import { ETSInteropArgConvertor, ETSTypeNameConvertor } from "./convertors/ETSConvertors";
|
|
8
|
-
import { JavaInteropArgConvertor, JavaTypeNameConvertor } from "./convertors/JavaConvertors";
|
|
9
7
|
import { KotlinTypeNameConvertor } from "./convertors/KotlinConvertors";
|
|
10
8
|
import { TSInteropArgConvertor, TSTypeNameConvertor } from "./convertors/TSConvertors";
|
|
11
9
|
import { CJLanguageWriter } from "./writers/CJLanguageWriter";
|
|
12
10
|
import { CppLanguageWriter } from "./writers/CppLanguageWriter";
|
|
13
11
|
import { ETSLanguageWriter } from "./writers/ETSLanguageWriter";
|
|
14
|
-
import { JavaLanguageWriter } from "./writers/JavaLanguageWriter";
|
|
15
12
|
import { KotlinLanguageWriter } from "./writers/KotlinLanguageWriter";
|
|
16
13
|
import { TSLanguageWriter } from "./writers/TsLanguageWriter";
|
|
17
14
|
export * from "./nameConvertor";
|
|
18
|
-
export function createLanguageWriter(language,
|
|
19
|
-
resolver !== null && resolver !== void 0 ? resolver : (resolver = EmptyReferenceResolver);
|
|
15
|
+
export function createLanguageWriter(language, library, nameConvertor) {
|
|
20
16
|
const printer = new IndentedPrinter();
|
|
21
17
|
switch (language) {
|
|
22
|
-
case Language.TS: return new TSLanguageWriter(printer,
|
|
23
|
-
case Language.ARKTS: return new ETSLanguageWriter(printer,
|
|
24
|
-
case Language.
|
|
25
|
-
case Language.
|
|
26
|
-
case Language.
|
|
27
|
-
case Language.KOTLIN: return new KotlinLanguageWriter(printer, resolver, new KotlinTypeNameConvertor(resolver));
|
|
18
|
+
case Language.TS: return new TSLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new TSTypeNameConvertor(library));
|
|
19
|
+
case Language.ARKTS: return new ETSLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new ETSTypeNameConvertor(library), new CppConvertor(library));
|
|
20
|
+
case Language.CPP: return new CppLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new CppConvertor(library), PrimitiveTypesInstance);
|
|
21
|
+
case Language.CJ: return new CJLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new CJTypeNameConvertor(library), new CJIDLTypeToForeignStringConvertor(library));
|
|
22
|
+
case Language.KOTLIN: return new KotlinLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new KotlinTypeNameConvertor(library));
|
|
28
23
|
default: throw new Error(`Language ${language.toString()} is not supported`);
|
|
29
24
|
}
|
|
30
25
|
}
|
|
31
|
-
export function createInteropArgConvertor(language) {
|
|
26
|
+
export function createInteropArgConvertor(language, library) {
|
|
32
27
|
switch (language) {
|
|
33
28
|
case Language.TS: return new TSInteropArgConvertor();
|
|
34
29
|
case Language.ARKTS: return new ETSInteropArgConvertor();
|
|
35
30
|
case Language.CPP: return CppInteropArgConvertor.INSTANCE;
|
|
36
|
-
case Language.JAVA: return new JavaInteropArgConvertor();
|
|
37
31
|
case Language.CJ: return new CJInteropArgConvertor();
|
|
38
|
-
case Language.KOTLIN: return new
|
|
32
|
+
case Language.KOTLIN: return new KotlinTypeNameConvertor(library);
|
|
39
33
|
}
|
|
40
34
|
throw new Error(`InteropArgConvertor for language ${language} not implemented`);
|
|
41
35
|
}
|
|
42
|
-
const EmptyReferenceResolver = createEmptyReferenceResolver();
|
|
43
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -27,4 +27,6 @@ export declare function convertDeclaration<T>(convertor: DeclarationConvertor<T>
|
|
|
27
27
|
export interface NodeConvertor<T> extends TypeConvertor<T>, DeclarationConvertor<T> {
|
|
28
28
|
}
|
|
29
29
|
export declare function convertNode<T>(convertor: NodeConvertor<T>, node: idl.IDLNode): T;
|
|
30
|
+
export declare function isInsideInstanceof(): boolean;
|
|
31
|
+
export declare function withInsideInstanceof<T>(isInsideInstanceof: boolean, op: () => T): T;
|
|
30
32
|
//# sourceMappingURL=nameConvertor.d.ts.map
|
|
@@ -62,4 +62,15 @@ export function convertNode(convertor, node) {
|
|
|
62
62
|
return convertType(convertor, node);
|
|
63
63
|
throw new Error(`Unknown node type ${idl.IDLKind[node.kind]}`);
|
|
64
64
|
}
|
|
65
|
+
let _isInsideInstanceof = false;
|
|
66
|
+
export function isInsideInstanceof() {
|
|
67
|
+
return _isInsideInstanceof;
|
|
68
|
+
}
|
|
69
|
+
export function withInsideInstanceof(isInsideInstanceof, op) {
|
|
70
|
+
const prevIsInsideInstanceof = _isInsideInstanceof;
|
|
71
|
+
_isInsideInstanceof = isInsideInstanceof;
|
|
72
|
+
const result = op();
|
|
73
|
+
_isInsideInstanceof = prevIsInsideInstanceof;
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
65
76
|
//# sourceMappingURL=nameConvertor.js.map
|
|
@@ -75,6 +75,7 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
75
75
|
resolver?: ReferenceResolver;
|
|
76
76
|
}): LanguageWriter;
|
|
77
77
|
getNodeName(type: idl.IDLNode): string;
|
|
78
|
+
get interopModule(): string;
|
|
78
79
|
writeClass(name: string, op: (writer: this) => void, superClass?: string, interfaces?: string[], generics?: string[]): void;
|
|
79
80
|
writeEnum(name: string, members: {
|
|
80
81
|
name: string;
|
|
@@ -105,6 +106,7 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
105
106
|
writeGetterImplementation(method: Method, op?: (writer: this) => void): void;
|
|
106
107
|
writeSetterImplementation(method: Method, op: (writer: this) => void): void;
|
|
107
108
|
writeCJForeign(op: (writer: CJLanguageWriter) => void): void;
|
|
109
|
+
writeImports(moduleName: string, importedFeatures: string[], aliases: string[]): void;
|
|
108
110
|
private writeDeclaration;
|
|
109
111
|
writeNativeFunctionCall(printer: LanguageWriter, name: string, signature: MethodSignature): void;
|
|
110
112
|
writeNativeMethodDeclaration(method: Method): void;
|
|
@@ -16,7 +16,7 @@ import * as idl from "../../idl";
|
|
|
16
16
|
import { IndentedPrinter } from "../../IndentedPrinter";
|
|
17
17
|
import { CJKeywords } from "../../languageSpecificKeywords";
|
|
18
18
|
import { RuntimeType } from "../common";
|
|
19
|
-
import { AssignStatement, BlockStatement, DelegationType, ExpressionStatement, FieldModifier, LambdaExpression, LanguageWriter, MethodModifier, MethodSignature, ReturnStatement } from "../LanguageWriter";
|
|
19
|
+
import { AssignStatement, BlockStatement, DelegationType, ExpressionStatement, FieldModifier, LambdaExpression, LanguageWriter, MethodModifier, MethodSignature, ReturnStatement, } from "../LanguageWriter";
|
|
20
20
|
import { Language } from "../../Language";
|
|
21
21
|
import { indentedBy, isDefined } from "../../util";
|
|
22
22
|
////////////////////////////////////////////////////////////////
|
|
@@ -255,6 +255,9 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
255
255
|
// rework for proper namespace logic
|
|
256
256
|
return this.typeConvertor.convert(type);
|
|
257
257
|
}
|
|
258
|
+
get interopModule() {
|
|
259
|
+
return "Interop";
|
|
260
|
+
}
|
|
258
261
|
writeClass(name, op, superClass, interfaces, generics) {
|
|
259
262
|
let extendsClause = superClass ? `${superClass}` : undefined;
|
|
260
263
|
let implementsClause = interfaces ? `${interfaces.join(' & ')}` : undefined;
|
|
@@ -401,6 +404,15 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
401
404
|
this.popIndent();
|
|
402
405
|
this.print('}');
|
|
403
406
|
}
|
|
407
|
+
writeImports(moduleName, importedFeatures, aliases) {
|
|
408
|
+
if (importedFeatures.length !== aliases.length) {
|
|
409
|
+
throw new Error(`Inconsistent imports from ${moduleName}`);
|
|
410
|
+
}
|
|
411
|
+
for (let i = 0; i < importedFeatures.length; i++) {
|
|
412
|
+
const alias = aliases[i] ? ` as ${aliases[i]}` : ``;
|
|
413
|
+
this.writeExpressionStatement(this.makeString(`import ${moduleName}.${importedFeatures[i]}` + alias));
|
|
414
|
+
}
|
|
415
|
+
}
|
|
404
416
|
writeDeclaration(name, signature, modifiers, postfix, generics) {
|
|
405
417
|
let prefix = modifiers === null || modifiers === void 0 ? void 0 : modifiers.filter(it => this.supportedModifiers.includes(it)).map(it => this.mapMethodModifier(it)).join(" ");
|
|
406
418
|
prefix = prefix ? prefix + " " : "public ";
|
|
@@ -47,6 +47,7 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
47
47
|
fork(options?: {
|
|
48
48
|
resolver?: ReferenceResolver;
|
|
49
49
|
}): LanguageWriter;
|
|
50
|
+
get interopModule(): string;
|
|
50
51
|
protected writeDeclaration(name: string, signature: MethodSignature, modifiers?: MethodModifier[], postfix?: string): void;
|
|
51
52
|
writeClass(name: string, op: (writer: this) => void, superClass?: string, interfaces?: string[]): void;
|
|
52
53
|
writeInterface(name: string, op: (writer: this) => void, superInterfaces?: string[], generics?: string[]): void;
|
|
@@ -63,6 +64,7 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
63
64
|
}): void;
|
|
64
65
|
writeTypeDeclaration(decl: IDLTypedef): void;
|
|
65
66
|
writeConstant(constName: string, constType: IDLType, constVal?: string): void;
|
|
67
|
+
writeImports(moduleName: string, importedFeatures: string[], aliases: string[]): void;
|
|
66
68
|
/**
|
|
67
69
|
* Writes multiline comments decorated with stars
|
|
68
70
|
*/
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* See the License for the specific language governing permissions and
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
|
-
import { createReferenceType, forceAsNamedNode } from '../../idl';
|
|
15
|
+
import { createReferenceType, forceAsNamedNode, } from '../../idl';
|
|
16
16
|
import { Language } from '../../Language';
|
|
17
17
|
import { PrimitiveTypeList } from "../../peer-generation/PrimitiveType";
|
|
18
18
|
import { AssignStatement, BlockStatement, FieldModifier, PrintHint, MethodModifier, StringExpression, MethodStaticCallExpression } from "../LanguageWriter";
|
|
@@ -181,6 +181,9 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
181
181
|
var _a;
|
|
182
182
|
return new CppLanguageWriter(new IndentedPrinter([], this.indentDepth()), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.primitivesTypes);
|
|
183
183
|
}
|
|
184
|
+
get interopModule() {
|
|
185
|
+
throw new Error(`Modules are not supported in C++`);
|
|
186
|
+
}
|
|
184
187
|
writeDeclaration(name, signature, modifiers, postfix) {
|
|
185
188
|
const realName = this.classMode === 'normal' ? name : `${this.currentClass.at(0)}::${name}`;
|
|
186
189
|
const newModifiers = this.classMode === 'normal'
|
|
@@ -253,6 +256,9 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
253
256
|
writeConstant(constName, constType, constVal) {
|
|
254
257
|
this.print(`${this.getNodeName(constType)} ${constName}${constVal ? ' = ' + constVal : ''};`);
|
|
255
258
|
}
|
|
259
|
+
writeImports(moduleName, importedFeatures, aliases) {
|
|
260
|
+
throw new Error(`Imports are not supported in C++`);
|
|
261
|
+
}
|
|
256
262
|
/**
|
|
257
263
|
* Writes multiline comments decorated with stars
|
|
258
264
|
*/
|
|
@@ -380,7 +386,7 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
380
386
|
return createReferenceType('Tag');
|
|
381
387
|
}
|
|
382
388
|
getRuntimeType() {
|
|
383
|
-
return createReferenceType(`RuntimeType`);
|
|
389
|
+
return createReferenceType(`idlize.stdlib.RuntimeType`);
|
|
384
390
|
}
|
|
385
391
|
makeTupleAssign(receiver, tupleFields) {
|
|
386
392
|
const statements = tupleFields.map((field, index) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IndentedPrinter } from "../../IndentedPrinter";
|
|
2
|
-
import { LambdaExpression, LanguageExpression, LanguageStatement, LanguageWriter, MakeAssignOptions, MakeCastOptions, Method, MethodModifier, MethodSignature
|
|
2
|
+
import { LambdaExpression, LanguageExpression, LanguageStatement, LanguageWriter, MakeAssignOptions, MakeCastOptions, Method, MethodModifier, MethodSignature } from "../LanguageWriter";
|
|
3
3
|
import { TSLanguageWriter } from "./TsLanguageWriter";
|
|
4
4
|
import { IDLEnum, IDLType } from '../../idl';
|
|
5
5
|
import { ArgConvertor } from "../ArgConvertors";
|
|
@@ -38,14 +38,11 @@ export declare class ETSLambdaExpression extends LambdaExpression {
|
|
|
38
38
|
protected get statementHasSemicolon(): boolean;
|
|
39
39
|
asString(): string;
|
|
40
40
|
}
|
|
41
|
-
export declare function generateTypeCheckerName(typeName: string): string;
|
|
42
41
|
export declare function generateEnumToNumericName(entry: idl.IDLEntry): string;
|
|
43
42
|
export declare function generateEnumFromNumericName(entry: idl.IDLEntry): string;
|
|
44
|
-
export declare function makeArrayTypeCheckCall(valueAccessor: string, typeName: string, writer: LanguageWriter): LanguageExpression;
|
|
45
43
|
export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
46
44
|
private arrayConvertor;
|
|
47
45
|
constructor(printer: IndentedPrinter, resolver: ReferenceResolver, typeConvertor: IdlNameConvertor, arrayConvertor: IdlNameConvertor);
|
|
48
|
-
pushNamespace(namespace: string, options: NamespaceOptions): void;
|
|
49
46
|
fork(options?: {
|
|
50
47
|
resolver?: ReferenceResolver;
|
|
51
48
|
}): LanguageWriter;
|
|
@@ -75,12 +72,7 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
75
72
|
discriminate(value: string, index: number, type: idl.IDLType, runtimeTypes: RuntimeType[]): string;
|
|
76
73
|
castToInt(value: string, bitness: 8 | 32): string;
|
|
77
74
|
castToBoolean(value: string): string;
|
|
78
|
-
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
79
|
-
makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
80
75
|
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
81
|
-
|
|
82
|
-
static get isUseTypeChecker(): boolean;
|
|
83
|
-
static useTypeChecker<T>(isUseTypeChecker: boolean, op: () => T): T;
|
|
76
|
+
instanceOf(value: string, type: idl.IDLType): LanguageExpression;
|
|
84
77
|
}
|
|
85
|
-
export declare function makeEnumTypeCheckerCall(valueAccessor: string, enumName: string, writer: LanguageWriter): LanguageExpression;
|
|
86
78
|
//# sourceMappingURL=ETSLanguageWriter.d.ts.map
|
|
@@ -18,7 +18,7 @@ import { TSCastExpression, TSLanguageWriter } from "./TsLanguageWriter";
|
|
|
18
18
|
import { getExtAttribute, IDLThisType } from '../../idl';
|
|
19
19
|
import { AggregateConvertor, CustomTypeConvertor, InterfaceConvertor, MaterializedClassConvertor } from "../ArgConvertors";
|
|
20
20
|
import * as idl from '../../idl';
|
|
21
|
-
import { convertDeclaration } from "../nameConvertor";
|
|
21
|
+
import { convertDeclaration, withInsideInstanceof } from "../nameConvertor";
|
|
22
22
|
import { createDeclarationNameConvertor } from "../../peer-generation/idl/IdlNameConvertor";
|
|
23
23
|
import { Language } from "../../Language";
|
|
24
24
|
////////////////////////////////////////////////////////////////
|
|
@@ -56,7 +56,7 @@ export class EtsAssignStatement {
|
|
|
56
56
|
const typeClause = this.type !== undefined ? `: ${writer.getNodeName(this.type)}` : '';
|
|
57
57
|
const maybeAssign = this.expression !== undefined ? " = " : "";
|
|
58
58
|
const initValue = this.expression !== undefined ? this.expression : writer.makeString("");
|
|
59
|
-
writer.print(`${this.isConst ? "const" : "let"} ${this.variableName}
|
|
59
|
+
writer.print(`${this.isConst ? "const" : "let"} ${this.variableName}${typeClause}${maybeAssign}${initValue.asString()}`);
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
62
|
const receiver = (_a = this.options) === null || _a === void 0 ? void 0 : _a.receiver;
|
|
@@ -90,35 +90,30 @@ export class ArkTSEnumEntityStatement {
|
|
|
90
90
|
write(writer) {
|
|
91
91
|
let enumName = convertDeclaration(createDeclarationNameConvertor(Language.ARKTS), this.enumEntity);
|
|
92
92
|
enumName = enumName.split('.').at(-1);
|
|
93
|
-
const
|
|
94
|
-
|
|
93
|
+
const correctStyleNames = [];
|
|
94
|
+
const originalStyleNames = [];
|
|
95
|
+
this.enumEntity.elements.forEach((member, index) => {
|
|
95
96
|
var _a;
|
|
96
97
|
const initText = (_a = member.initializer) !== null && _a !== void 0 ? _a : index;
|
|
97
98
|
const isTypeString = typeof initText !== "number";
|
|
98
99
|
const originalName = getExtAttribute(member, idl.IDLExtendedAttributes.OriginalEnumMemberName);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
});
|
|
112
|
-
//TODO: enums do not support member aliases
|
|
113
|
-
// res.push({
|
|
114
|
-
// name: originalName,
|
|
115
|
-
// alias: member.name,
|
|
116
|
-
// stringId: undefined,
|
|
117
|
-
// numberId: initText as number
|
|
118
|
-
// })
|
|
119
|
-
}
|
|
120
|
-
return res;
|
|
100
|
+
correctStyleNames.push({
|
|
101
|
+
name: originalName ? member.name : `${member.name}_DUMMY`,
|
|
102
|
+
alias: undefined,
|
|
103
|
+
stringId: isTypeString ? initText : undefined,
|
|
104
|
+
numberId: initText
|
|
105
|
+
});
|
|
106
|
+
originalStyleNames.push({
|
|
107
|
+
name: originalName !== null && originalName !== void 0 ? originalName : member.name,
|
|
108
|
+
alias: undefined,
|
|
109
|
+
stringId: isTypeString ? initText : undefined,
|
|
110
|
+
numberId: initText
|
|
111
|
+
});
|
|
121
112
|
});
|
|
113
|
+
let members = originalStyleNames;
|
|
114
|
+
if (this.enumEntity.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
|
|
115
|
+
members = members.concat(correctStyleNames);
|
|
116
|
+
}
|
|
122
117
|
writer.writeEnum(enumName, members, { isExport: this.options.isExport, isDeclare: this.options.isDeclare });
|
|
123
118
|
}
|
|
124
119
|
}
|
|
@@ -149,12 +144,6 @@ export class ETSLambdaExpression extends LambdaExpression {
|
|
|
149
144
|
////////////////////////////////////////////////////////////////
|
|
150
145
|
// UTILS //
|
|
151
146
|
////////////////////////////////////////////////////////////////
|
|
152
|
-
export function generateTypeCheckerName(typeName) {
|
|
153
|
-
return "is" + typeName
|
|
154
|
-
.replaceAll('[]', 'BracketsArray')
|
|
155
|
-
.replaceAll(/<.*$/g, '') // delete type arguments
|
|
156
|
-
.replaceAll('.', '_');
|
|
157
|
-
}
|
|
158
147
|
export function generateEnumToNumericName(entry) {
|
|
159
148
|
const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
|
|
160
149
|
return `${typeName}_ToNumeric`;
|
|
@@ -163,10 +152,6 @@ export function generateEnumFromNumericName(entry) {
|
|
|
163
152
|
const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
|
|
164
153
|
return `${typeName}_FromNumeric`;
|
|
165
154
|
}
|
|
166
|
-
export function makeArrayTypeCheckCall(valueAccessor, typeName, writer) {
|
|
167
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(typeName), [writer.makeString(valueAccessor)
|
|
168
|
-
]);
|
|
169
|
-
}
|
|
170
155
|
////////////////////////////////////////////////////////////////
|
|
171
156
|
// WRITER //
|
|
172
157
|
////////////////////////////////////////////////////////////////
|
|
@@ -175,9 +160,6 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
175
160
|
super(printer, resolver, typeConvertor, Language.ARKTS);
|
|
176
161
|
this.arrayConvertor = arrayConvertor;
|
|
177
162
|
}
|
|
178
|
-
pushNamespace(namespace, options) {
|
|
179
|
-
super.pushNamespace(namespace, options);
|
|
180
|
-
}
|
|
181
163
|
fork(options) {
|
|
182
164
|
var _a;
|
|
183
165
|
return new ETSLanguageWriter(new IndentedPrinter([], this.indentDepth()), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.arrayConvertor);
|
|
@@ -207,18 +189,22 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
207
189
|
return this.makeString(`${value} as ${type}`);
|
|
208
190
|
}
|
|
209
191
|
i32FromEnum(value, enumEntry) {
|
|
210
|
-
if (
|
|
211
|
-
|
|
192
|
+
if (idl.isStringEnum(enumEntry)) {
|
|
193
|
+
let extractorStatement = this.makeMethodCall(value.asString(), 'getOrdinal', []);
|
|
194
|
+
if (enumEntry.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
|
|
195
|
+
extractorStatement = this.makeNaryOp('%', [
|
|
196
|
+
extractorStatement,
|
|
197
|
+
this.makeString(enumEntry.elements.length.toString())
|
|
198
|
+
]);
|
|
199
|
+
}
|
|
200
|
+
return extractorStatement;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
return this.makeMethodCall(value.asString(), 'valueOf', []);
|
|
212
204
|
}
|
|
213
|
-
return idl.isStringEnum(enumEntry)
|
|
214
|
-
? this.makeMethodCall(value.asString(), 'getOrdinal', [])
|
|
215
|
-
: this.makeMethodCall(value.asString(), 'valueOf', []);
|
|
216
205
|
}
|
|
217
206
|
enumFromI32(value, enumEntry) {
|
|
218
207
|
const enumName = this.getNodeName(enumEntry);
|
|
219
|
-
if (ETSLanguageWriter.isUseTypeChecker) {
|
|
220
|
-
return this.makeMethodCall('TypeChecker', generateEnumFromNumericName(enumEntry), [value]);
|
|
221
|
-
}
|
|
222
208
|
return idl.isStringEnum(enumEntry)
|
|
223
209
|
? this.makeString(`${enumName}.values()[${value.asString()}]`)
|
|
224
210
|
: this.makeMethodCall(enumName, 'fromValue', [value]);
|
|
@@ -230,7 +216,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
230
216
|
|| convertor instanceof CustomTypeConvertor) {
|
|
231
217
|
return this.instanceOf(value, convertor.idlType);
|
|
232
218
|
}
|
|
233
|
-
return this.makeString(`${value} instanceof ${convertor.targetType(this)}`);
|
|
219
|
+
return this.makeString(`${value} instanceof ${withInsideInstanceof(true, () => convertor.targetType(this))}`);
|
|
234
220
|
}
|
|
235
221
|
makeValueFromOption(value, destinationConvertor) {
|
|
236
222
|
if (idl.isEnum(this.resolver.toDeclaration(destinationConvertor.nativeType()))) {
|
|
@@ -269,15 +255,16 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
269
255
|
return super.makeNaryOp('==', args);
|
|
270
256
|
}
|
|
271
257
|
discriminate(value, index, type, runtimeTypes) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
258
|
+
return `${value} instanceof ${withInsideInstanceof(true, () => {
|
|
259
|
+
let typeName = this.getNodeName(type);
|
|
260
|
+
if (idl.isReferenceType(type)) {
|
|
261
|
+
const decl = this.resolver.resolveTypeReference(type);
|
|
262
|
+
if (decl && idl.isInterface(decl) && decl.subkind == idl.IDLInterfaceSubkind.Tuple) {
|
|
263
|
+
typeName = "Tuple";
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return typeName;
|
|
267
|
+
})}`;
|
|
281
268
|
}
|
|
282
269
|
castToInt(value, bitness) {
|
|
283
270
|
// This fix is used to avoid unnecessary writeInt8(value as int32) call, which is generated if value is already an int32
|
|
@@ -287,50 +274,23 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
287
274
|
return `(${value}).toChar()`;
|
|
288
275
|
return `(${value}).toInt()`; // FIXME: is there int8 in ARKTS?
|
|
289
276
|
}
|
|
290
|
-
castToBoolean(value) { return `${value} ?
|
|
291
|
-
typeInstanceOf(type, value, members) {
|
|
292
|
-
if (!members || members.length === 0) {
|
|
293
|
-
throw new Error("At least one member needs to provided to pass it to TypeChecker!");
|
|
294
|
-
}
|
|
295
|
-
const prop = members[0];
|
|
296
|
-
// Use the same typeInstanceOf<T>(...) method to compile the ETS code by two compilers ArkTS and TS
|
|
297
|
-
return this.makeString(`TypeChecker.typeInstanceOf<${this.getNodeName(type)}>(value, "${prop}")`);
|
|
298
|
-
}
|
|
299
|
-
makeTypeCast(value, type, options) {
|
|
300
|
-
return this.makeString(`TypeChecker.typeCast<${this.getNodeName(type)}>(value)`);
|
|
301
|
-
}
|
|
277
|
+
castToBoolean(value) { return `${value} ? true : false`; }
|
|
302
278
|
makeCast(value, node, options) {
|
|
303
279
|
var _a;
|
|
304
280
|
if (node === idl.IDLI64Type)
|
|
305
|
-
return this.makeMethodCall(value.asString(), `toLong`, []);
|
|
281
|
+
return this.makeMethodCall(value.asString() + '!', `toLong`, []);
|
|
306
282
|
if (node === idl.IDLI32Type)
|
|
307
|
-
return this.makeMethodCall(value.asString(), `toInt`, []);
|
|
283
|
+
return this.makeMethodCall(value.asString() + '!', `toInt`, []);
|
|
308
284
|
if (node === idl.IDLI8Type)
|
|
309
|
-
return this.makeMethodCall(value.asString(), `toByte`, []);
|
|
285
|
+
return this.makeMethodCall(value.asString() + '!', `toByte`, []);
|
|
310
286
|
if (node === idl.IDLF64Type)
|
|
311
|
-
return this.makeMethodCall(value.asString(), `toDouble`, []);
|
|
287
|
+
return this.makeMethodCall(value.asString() + '!', `toDouble`, []);
|
|
312
288
|
if (node === idl.IDLF32Type)
|
|
313
|
-
return this.makeMethodCall(value.asString(), `toFloat`, []);
|
|
289
|
+
return this.makeMethodCall(value.asString() + '!', `toFloat`, []);
|
|
314
290
|
return new TSCastExpression(value, `${this.getNodeName(node)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
315
291
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
const prevIsUse = this.isReferenceRelativeToNamespaces;
|
|
319
|
-
this._isUseTypeChecker = isUseTypeChecker;
|
|
320
|
-
const result = op();
|
|
321
|
-
this._isUseTypeChecker = prevIsUse;
|
|
322
|
-
return result;
|
|
292
|
+
instanceOf(value, type) {
|
|
293
|
+
return this.makeString(this.discriminate(value, -1, type, []));
|
|
323
294
|
}
|
|
324
295
|
}
|
|
325
|
-
ETSLanguageWriter._isUseTypeChecker = true;
|
|
326
|
-
function makeInterfaceTypeCheckerCall(valueAccessor, interfaceName, allFields, duplicates, writer) {
|
|
327
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(interfaceName), [writer.makeString(valueAccessor),
|
|
328
|
-
...allFields.map(it => {
|
|
329
|
-
return writer.makeString(duplicates.has(it) ? "true" : "false");
|
|
330
|
-
})
|
|
331
|
-
]);
|
|
332
|
-
}
|
|
333
|
-
export function makeEnumTypeCheckerCall(valueAccessor, enumName, writer) {
|
|
334
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(enumName), [writer.makeString(valueAccessor)]);
|
|
335
|
-
}
|
|
336
296
|
//# sourceMappingURL=ETSLanguageWriter.js.map
|
|
@@ -61,6 +61,8 @@ export declare class KotlinLanguageWriter extends LanguageWriter {
|
|
|
61
61
|
resolver?: ReferenceResolver;
|
|
62
62
|
}): LanguageWriter;
|
|
63
63
|
getNodeName(type: idl.IDLNode): string;
|
|
64
|
+
get interopModule(): string;
|
|
65
|
+
maybeSemicolon(): string;
|
|
64
66
|
writeClass(name: string, op: (writer: this) => void, superClass?: string, interfaces?: string[], generics?: string[], isDeclared?: boolean, isAbstract?: boolean): void;
|
|
65
67
|
writeInterface(name: string, op: (writer: this) => void, superInterfaces?: string[], generics?: string[], isDeclared?: boolean): void;
|
|
66
68
|
writeFunctionDeclaration(name: string, signature: MethodSignature, generics?: string[]): void;
|
|
@@ -78,6 +80,11 @@ export declare class KotlinLanguageWriter extends LanguageWriter {
|
|
|
78
80
|
private writeDeclaration;
|
|
79
81
|
writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
|
|
80
82
|
writeNativeMethodDeclaration(method: Method): void;
|
|
83
|
+
private printForeignApiOptIn;
|
|
84
|
+
private get foreignApiOptIn();
|
|
85
|
+
private isPrimitiveArray;
|
|
86
|
+
private pinArrayArgument;
|
|
87
|
+
private unpinArrayArgument;
|
|
81
88
|
private convertInteropArgument;
|
|
82
89
|
private convertInteropReturnValue;
|
|
83
90
|
writeMethodDeclaration(name: string, signature: MethodSignature, modifiers?: MethodModifier[]): void;
|
|
@@ -94,6 +101,7 @@ export declare class KotlinLanguageWriter extends LanguageWriter {
|
|
|
94
101
|
writeSetterImplementation(method: Method, op: (writer: this) => void): void;
|
|
95
102
|
writeTypeDeclaration(decl: idl.IDLTypedef): void;
|
|
96
103
|
writeConstant(constName: string, constType: idl.IDLType, constVal?: string): void;
|
|
104
|
+
writeImports(moduleName: string, importedFeatures: string[], aliases: string[]): void;
|
|
97
105
|
makeNull(): LanguageExpression;
|
|
98
106
|
makeAssign(variableName: string, type: idl.IDLType | undefined, expr: LanguageExpression, isDeclared?: boolean, isConst?: boolean, options?: MakeAssignOptions): LanguageStatement;
|
|
99
107
|
makeLambda(signature: MethodSignature, body?: LanguageStatement[]): LanguageExpression;
|