@idlizer/core 2.1.0 → 2.1.5
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/LanguageWriters/ArgConvertors.d.ts +15 -2
- package/build/lib/src/LanguageWriters/ArgConvertors.js +93 -33
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +34 -14
- package/build/lib/src/LanguageWriters/LanguageWriter.js +29 -52
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +2 -1
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +16 -5
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +25 -15
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +7 -18
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +13 -3
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +2 -1
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +24 -4
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +49 -29
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +3 -1
- package/build/lib/src/LanguageWriters/nameConvertor.js +5 -1
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +21 -10
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +56 -65
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +4 -1
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.js +1 -1
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +16 -10
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +18 -27
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +14 -9
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +18 -21
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +11 -7
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +42 -18
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +14 -6
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +49 -44
- package/build/lib/src/LibraryInterface.d.ts +1 -5
- package/build/lib/src/config.d.ts +1029 -66
- package/build/lib/src/config.js +15 -2
- package/build/lib/src/configDescriber.d.ts +30 -3
- package/build/lib/src/configDescriber.js +99 -1
- package/build/lib/src/from-idl/DtsPrinter.js +32 -20
- package/build/lib/src/from-idl/IDLLinter.d.ts +40 -7
- package/build/lib/src/from-idl/IDLLinter.js +211 -25
- package/build/lib/src/from-idl/common.js +1 -1
- package/build/lib/src/from-idl/deserialize.d.ts +4 -1
- package/build/lib/src/from-idl/deserialize.js +434 -346
- package/build/lib/src/idl.d.ts +28 -18
- package/build/lib/src/idl.js +376 -111
- package/build/lib/src/idlize.d.ts +3 -1
- package/build/lib/src/idlize.js +85 -28
- package/build/lib/src/index.d.ts +6 -3
- package/build/lib/src/index.js +5 -2
- package/build/lib/src/options.d.ts +1 -1
- package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -2
- package/build/lib/src/peer-generation/BuilderClass.js +0 -8
- package/build/lib/src/peer-generation/LayoutManager.d.ts +10 -3
- package/build/lib/src/peer-generation/LayoutManager.js +3 -2
- package/build/lib/src/peer-generation/Materialized.d.ts +1 -1
- package/build/lib/src/peer-generation/Materialized.js +2 -2
- package/build/lib/src/peer-generation/PeerClass.d.ts +3 -8
- package/build/lib/src/peer-generation/PeerClass.js +0 -1
- package/build/lib/src/peer-generation/PeerFile.d.ts +1 -2
- package/build/lib/src/peer-generation/PeerFile.js +1 -1
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +12 -9
- package/build/lib/src/peer-generation/PeerLibrary.js +136 -71
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +1 -1
- package/build/lib/src/peer-generation/ReferenceResolver.js +2 -2
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +1 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +6 -2
- package/build/lib/src/peer-generation/idl/common.d.ts +2 -1
- package/build/lib/src/peer-generation/idl/common.js +13 -2
- package/build/lib/src/peer-generation/isEnumType.d.ts +5 -0
- package/build/lib/src/peer-generation/isEnumType.js +29 -0
- package/build/lib/src/peer-generation/isMaterialized.js +25 -8
- package/build/lib/src/peer-generation/modules.d.ts +10 -0
- package/build/lib/src/peer-generation/modules.js +38 -0
- package/build/lib/src/peer-generation/unions.d.ts +3 -2
- package/build/lib/src/peer-generation/unions.js +6 -2
- package/build/lib/src/resolveNamedNode.d.ts +3 -0
- package/build/lib/src/resolveNamedNode.js +105 -0
- package/build/lib/src/util.d.ts +7 -0
- package/build/lib/src/util.js +39 -0
- package/build/lib/src/visitor.d.ts +0 -1
- package/build/lib/src/visitor.js +1 -7
- package/package.json +2 -2
- package/webidl2.js/dist/webidl2.js +35 -7
- package/build/lib/src/configMerge.d.ts +0 -2
- package/build/lib/src/configMerge.js +0 -42
|
@@ -80,7 +80,10 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
80
80
|
name: string;
|
|
81
81
|
stringId: string | undefined;
|
|
82
82
|
numberId: number;
|
|
83
|
-
}[],
|
|
83
|
+
}[], options: {
|
|
84
|
+
isExport: boolean;
|
|
85
|
+
isDeclare?: boolean;
|
|
86
|
+
}, op: (writer: LanguageWriter) => void): void;
|
|
84
87
|
writeInterface(name: string, op: (writer: this) => void, superInterfaces?: string[], generics?: string[]): void;
|
|
85
88
|
writeFunctionDeclaration(name: string, signature: MethodSignature): void;
|
|
86
89
|
writeFunctionImplementation(name: string, signature: MethodSignature, op: (writer: this) => void): void;
|
|
@@ -89,15 +92,23 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
89
92
|
writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
|
|
90
93
|
writeMethodDeclaration(name: string, signature: MethodSignature, modifiers?: MethodModifier[]): void;
|
|
91
94
|
writeConstructorImplementation(className: string, signature: MethodSignature, op: (writer: this) => void, superCall?: Method, modifiers?: MethodModifier[]): void;
|
|
92
|
-
writeProperty(propName: string, propType: idl.IDLType, mutable?: boolean, getterLambda?: (writer: this) => void, setterLambda?: (writer: this) => void): void;
|
|
93
95
|
writeTypeDeclaration(decl: idl.IDLTypedef): void;
|
|
94
96
|
writeConstant(constName: string, constType: idl.IDLType, constVal?: string): void;
|
|
95
97
|
writeMethodImplementation(method: Method, op: (writer: this) => void): void;
|
|
98
|
+
writeProperty(propName: string, propType: idl.IDLType, modifiers: FieldModifier[], getter?: {
|
|
99
|
+
method: Method;
|
|
100
|
+
op?: () => void;
|
|
101
|
+
}, setter?: {
|
|
102
|
+
method: Method;
|
|
103
|
+
op: () => void;
|
|
104
|
+
}): void;
|
|
105
|
+
writeGetterImplementation(method: Method, op?: (writer: this) => void): void;
|
|
106
|
+
writeSetterImplementation(method: Method, op: (writer: this) => void): void;
|
|
96
107
|
writeCJForeign(op: (writer: CJLanguageWriter) => void): void;
|
|
97
108
|
private writeDeclaration;
|
|
98
109
|
writeNativeFunctionCall(printer: LanguageWriter, name: string, signature: MethodSignature): void;
|
|
99
110
|
writeNativeMethodDeclaration(method: Method): void;
|
|
100
|
-
|
|
111
|
+
i32FromEnum(value: LanguageExpression, _enumEntry: idl.IDLEnum): LanguageExpression;
|
|
101
112
|
makeAssign(variableName: string, type: idl.IDLType | undefined, expr: LanguageExpression, isDeclared?: boolean, isConst?: boolean): LanguageStatement;
|
|
102
113
|
makeClassInit(type: idl.IDLType, parameters: LanguageExpression[]): LanguageExpression;
|
|
103
114
|
makeArrayInit(type: idl.IDLContainerType, size?: number): LanguageExpression;
|
|
@@ -117,14 +128,14 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
117
128
|
makeDefinedCheck(value: string): LanguageExpression;
|
|
118
129
|
makeNewObject(objectName: string, params?: LanguageExpression[]): LanguageExpression;
|
|
119
130
|
writePrintLog(message: string): void;
|
|
120
|
-
makeCast(value: LanguageExpression,
|
|
131
|
+
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
121
132
|
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
122
133
|
getObjectAccessor(convertor: BaseArgConvertor, value: string, args?: ObjectArgs): string;
|
|
123
134
|
makeUndefined(): LanguageExpression;
|
|
124
135
|
makeUnwrapOptional(expression: LambdaExpression): LanguageExpression;
|
|
125
136
|
makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
|
|
126
137
|
makeRuntimeType(rt: RuntimeType): LanguageExpression;
|
|
127
|
-
makeRuntimeTypeGetterCall(value: string): LanguageExpression;
|
|
138
|
+
protected makeRuntimeTypeGetterCall(value: string): LanguageExpression;
|
|
128
139
|
makeMapInsert(keyAccessor: string, key: string, valueAccessor: string, value: string): LanguageStatement;
|
|
129
140
|
makeNull(value?: string): LanguageExpression;
|
|
130
141
|
getTagType(): idl.IDLType;
|
|
@@ -136,9 +147,11 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
136
147
|
makeUnionVariantCondition(_convertor: ArgConvertor, _valueName: string, valueType: string, type: string, convertorIndex?: number): LanguageExpression;
|
|
137
148
|
makeUnionVariantCast(value: string, type: string, convertor: ArgConvertor, index: number): LanguageExpression;
|
|
138
149
|
makeTupleAccess(value: string, index: number): LanguageExpression;
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
150
|
+
enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
151
|
+
makeEnumEntity(enumEntity: idl.IDLEnum, options: {
|
|
152
|
+
isExport: boolean;
|
|
153
|
+
isDeclare?: boolean;
|
|
154
|
+
}): LanguageStatement;
|
|
142
155
|
makeEquals(args: LanguageExpression[]): LanguageExpression;
|
|
143
156
|
runtimeType(param: ArgConvertor, valueType: string, value: string): void;
|
|
144
157
|
escapeKeyword(word: string): string;
|
|
@@ -146,7 +159,5 @@ export declare class CJLanguageWriter extends LanguageWriter {
|
|
|
146
159
|
popNamespace(ident?: boolean): void;
|
|
147
160
|
castToInt(value: string, bitness: 8 | 32): string;
|
|
148
161
|
castToBoolean(value: string): string;
|
|
149
|
-
makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
|
|
150
|
-
makeLengthDeserializer(deserializer: string): LanguageStatement | undefined;
|
|
151
162
|
}
|
|
152
163
|
//# sourceMappingURL=CJLanguageWriter.d.ts.map
|
|
@@ -283,7 +283,7 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
283
283
|
this.popIndent();
|
|
284
284
|
this.printer.print(`}`);
|
|
285
285
|
}
|
|
286
|
-
writeEnum(name, members, op) {
|
|
286
|
+
writeEnum(name, members, options, op) {
|
|
287
287
|
this.printer.print(`public enum ${name}{`);
|
|
288
288
|
this.pushIndent();
|
|
289
289
|
for (const member of members) {
|
|
@@ -348,33 +348,6 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
348
348
|
this.popIndent();
|
|
349
349
|
this.printer.print(`}`);
|
|
350
350
|
}
|
|
351
|
-
writeProperty(propName, propType, mutable, getterLambda, setterLambda) {
|
|
352
|
-
let shortName = propName.concat("_container");
|
|
353
|
-
if (!getterLambda) {
|
|
354
|
-
this.print(`private var ${shortName}: ${this.getNodeName(propType)}`);
|
|
355
|
-
}
|
|
356
|
-
this.print(`${mutable ? "mut " : ""}prop ${propName}: ${this.getNodeName(propType)} {`);
|
|
357
|
-
this.pushIndent();
|
|
358
|
-
this.print(`get() {`);
|
|
359
|
-
this.pushIndent();
|
|
360
|
-
if (getterLambda) {
|
|
361
|
-
getterLambda(this);
|
|
362
|
-
}
|
|
363
|
-
else {
|
|
364
|
-
this.print(`return ${shortName}`);
|
|
365
|
-
}
|
|
366
|
-
this.popIndent();
|
|
367
|
-
this.print(`}`);
|
|
368
|
-
if (mutable) {
|
|
369
|
-
this.print(`set(x) { ${shortName} = x }`);
|
|
370
|
-
this.pushIndent();
|
|
371
|
-
if (setterLambda)
|
|
372
|
-
setterLambda(this);
|
|
373
|
-
this.popIndent();
|
|
374
|
-
}
|
|
375
|
-
this.popIndent();
|
|
376
|
-
this.print(`}`);
|
|
377
|
-
}
|
|
378
351
|
writeTypeDeclaration(decl) {
|
|
379
352
|
throw new Error(`writeTypeDeclaration not implemented`);
|
|
380
353
|
}
|
|
@@ -389,6 +362,51 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
389
362
|
this.popIndent();
|
|
390
363
|
this.printer.print(`}`);
|
|
391
364
|
}
|
|
365
|
+
writeProperty(propName, propType, modifiers, getter, setter) {
|
|
366
|
+
let containerName = propName.concat("_container");
|
|
367
|
+
let truePropName = this.escapeKeyword(propName);
|
|
368
|
+
if (getter) {
|
|
369
|
+
if (!getter.op) {
|
|
370
|
+
this.print(`private var ${containerName}: ${this.getNodeName(propType)}`);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
let isStatic = modifiers.includes(FieldModifier.STATIC);
|
|
374
|
+
let isMutable = !modifiers.includes(FieldModifier.READONLY);
|
|
375
|
+
this.print(`public ${isMutable ? "mut " : ""}${isStatic ? "static " : "open "}prop ${truePropName}: ${this.getNodeName(propType)}`);
|
|
376
|
+
if (getter) {
|
|
377
|
+
this.print('{');
|
|
378
|
+
this.pushIndent();
|
|
379
|
+
this.writeGetterImplementation(getter.method, getter.op);
|
|
380
|
+
if (isMutable) {
|
|
381
|
+
if (setter) {
|
|
382
|
+
this.writeSetterImplementation(setter.method, setter ? setter.op : (writer) => { this.print(`${containerName} = ${truePropName}`); });
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
this.print(`set(${truePropName}) {`);
|
|
386
|
+
this.pushIndent();
|
|
387
|
+
this.print(`${containerName} = ${truePropName}`);
|
|
388
|
+
this.popIndent();
|
|
389
|
+
this.print(`}`);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
this.popIndent();
|
|
393
|
+
this.print('}');
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
writeGetterImplementation(method, op) {
|
|
397
|
+
this.print(`get() {`);
|
|
398
|
+
this.pushIndent();
|
|
399
|
+
op ? op(this) : this.print(`return ${method.signature.argsNames.map(arg => `${arg}_container`).join(', ')}`);
|
|
400
|
+
this.popIndent();
|
|
401
|
+
this.print('}');
|
|
402
|
+
}
|
|
403
|
+
writeSetterImplementation(method, op) {
|
|
404
|
+
this.print(`set(${method.signature.argsNames.join(', ')}) {`);
|
|
405
|
+
this.pushIndent();
|
|
406
|
+
op(this);
|
|
407
|
+
this.popIndent();
|
|
408
|
+
this.print('}');
|
|
409
|
+
}
|
|
392
410
|
writeCJForeign(op) {
|
|
393
411
|
this.print(`foreign {`);
|
|
394
412
|
this.pushIndent();
|
|
@@ -399,7 +417,7 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
399
417
|
writeDeclaration(name, signature, modifiers, postfix) {
|
|
400
418
|
let prefix = modifiers === null || modifiers === void 0 ? void 0 : modifiers.filter(it => this.supportedModifiers.includes(it)).map(it => this.mapMethodModifier(it)).join(" ");
|
|
401
419
|
prefix = prefix ? prefix + " " : "";
|
|
402
|
-
this.print(`${prefix}func ${name}(${signature.args.map((it, index) => `${this.escapeKeyword(signature.argName(index))}: ${this.getNodeName(it)}`).join(", ")}): ${this.getNodeName(signature.returnType)}${postfix !== null && postfix !== void 0 ? postfix : ""}`);
|
|
420
|
+
this.print(`${prefix}${((modifiers === null || modifiers === void 0 ? void 0 : modifiers.includes(MethodModifier.SETTER)) || (modifiers === null || modifiers === void 0 ? void 0 : modifiers.includes(MethodModifier.GETTER))) ? '' : 'func '}${name}(${signature.args.map((it, index) => `${this.escapeKeyword(signature.argName(index))}: ${this.getNodeName(it)}`).join(", ")}): ${this.getNodeName(signature.returnType)}${postfix !== null && postfix !== void 0 ? postfix : ""}`);
|
|
403
421
|
}
|
|
404
422
|
writeNativeFunctionCall(printer, name, signature) {
|
|
405
423
|
printer.print(`return unsafe { ${name}(${signature.args.map((it, index) => `${signature.argName(index)}`).join(", ")}) }`);
|
|
@@ -410,8 +428,8 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
410
428
|
name = name.startsWith('_') ? name.slice(1) : name;
|
|
411
429
|
this.print(`func ${name}(${signture}): ${this.typeForeignConvertor.convert(method.signature.returnType)}`);
|
|
412
430
|
}
|
|
413
|
-
|
|
414
|
-
return `${
|
|
431
|
+
i32FromEnum(value, _enumEntry) {
|
|
432
|
+
return this.makeString(`${value.asString()}.value`);
|
|
415
433
|
}
|
|
416
434
|
makeAssign(variableName, type, expr, isDeclared = true, isConst = true) {
|
|
417
435
|
return new CJAssignStatement(variableName, type, expr, isDeclared, isConst);
|
|
@@ -423,7 +441,7 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
423
441
|
return this.makeString(`ArrayList<${this.getNodeName(type.elementType[0])}>(Int64(${size !== null && size !== void 0 ? size : ''}))`);
|
|
424
442
|
}
|
|
425
443
|
makeMapInit(type) {
|
|
426
|
-
|
|
444
|
+
return this.makeString(`${this.getNodeName(type)}()`);
|
|
427
445
|
}
|
|
428
446
|
makeArrayLength(array, length) {
|
|
429
447
|
return this.makeString(`${array}.size`);
|
|
@@ -477,9 +495,9 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
477
495
|
writePrintLog(message) {
|
|
478
496
|
this.print(`println("${message}")`);
|
|
479
497
|
}
|
|
480
|
-
makeCast(value,
|
|
498
|
+
makeCast(value, node, options) {
|
|
481
499
|
var _a;
|
|
482
|
-
return new CJCastExpression(value, this.getNodeName(
|
|
500
|
+
return new CJCastExpression(value, this.getNodeName(node), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
483
501
|
}
|
|
484
502
|
typeInstanceOf(type, value, members) {
|
|
485
503
|
if (idl.isInterface(type)) {
|
|
@@ -507,7 +525,7 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
507
525
|
return this.makeString(methodCall.asString() + '.ordinal');
|
|
508
526
|
}
|
|
509
527
|
makeMapInsert(keyAccessor, key, valueAccessor, value) {
|
|
510
|
-
return this.makeStatement(this.makeMethodCall(keyAccessor, "
|
|
528
|
+
return this.makeStatement(this.makeMethodCall(keyAccessor, "add", [this.makeString(key), this.makeString(value)]));
|
|
511
529
|
}
|
|
512
530
|
makeNull(value) {
|
|
513
531
|
return new StringExpression(`Option.None`);
|
|
@@ -539,14 +557,11 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
539
557
|
makeTupleAccess(value, index) {
|
|
540
558
|
return this.makeString(`${value}.value${index}`);
|
|
541
559
|
}
|
|
542
|
-
|
|
560
|
+
enumFromI32(value, enumEntry) {
|
|
543
561
|
return this.makeString(`${this.getNodeName(enumEntry)}(${value.asString()})`);
|
|
544
562
|
}
|
|
545
|
-
|
|
546
|
-
return
|
|
547
|
-
}
|
|
548
|
-
makeEnumEntity(enumEntity, isExport) {
|
|
549
|
-
return new CJEnumWithGetter(enumEntity, isExport);
|
|
563
|
+
makeEnumEntity(enumEntity, options) {
|
|
564
|
+
return new CJEnumWithGetter(enumEntity, options.isExport);
|
|
550
565
|
}
|
|
551
566
|
makeEquals(args) {
|
|
552
567
|
return this.makeString(`refEq(${args.map(arg => `${arg.asString()}`).join(`, `)})`);
|
|
@@ -565,29 +580,5 @@ export class CJLanguageWriter extends LanguageWriter {
|
|
|
565
580
|
castToBoolean(value) {
|
|
566
581
|
return `if (${value}) { Int32(1) } else { Int32(0) }`;
|
|
567
582
|
}
|
|
568
|
-
makeLengthSerializer(serializer, value) {
|
|
569
|
-
return this.makeBlock([
|
|
570
|
-
this.makeStatement(this.makeMethodCall(serializer, "writeInt8", [this.makeRuntimeType(RuntimeType.STRING)])),
|
|
571
|
-
this.makeStatement(this.makeMethodCall(serializer, "writeString", [this.makeString(`${value}.getValue1()`)]))
|
|
572
|
-
], false);
|
|
573
|
-
}
|
|
574
|
-
makeLengthDeserializer(deserializer) {
|
|
575
|
-
const valueType = "valueType";
|
|
576
|
-
return this.makeBlock([
|
|
577
|
-
this.makeAssign(valueType, undefined, this.makeMethodCall(deserializer, "readInt8", []), true),
|
|
578
|
-
this.makeMultiBranchCondition([{
|
|
579
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.NUMBER, ''),
|
|
580
|
-
stmt: this.makeReturn(this.makeString(`Ark_Length(${deserializer}.readFloat32())`))
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.STRING, ''),
|
|
584
|
-
stmt: this.makeReturn(this.makeString(`Ark_Length(${deserializer}.readString())`))
|
|
585
|
-
},
|
|
586
|
-
{
|
|
587
|
-
expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.OBJECT, ''),
|
|
588
|
-
stmt: this.makeReturn(this.makeString(`Ark_Length(Resource(${deserializer}.readString(), "", 0.0, Option.None, Option.None))`))
|
|
589
|
-
}], this.makeReturn(this.makeUndefined())),
|
|
590
|
-
], false);
|
|
591
|
-
}
|
|
592
583
|
}
|
|
593
584
|
//# sourceMappingURL=CJLanguageWriter.js.map
|
|
@@ -37,7 +37,10 @@ export declare abstract class CLikeLanguageWriter extends LanguageWriter {
|
|
|
37
37
|
name: string;
|
|
38
38
|
stringId: string | undefined;
|
|
39
39
|
numberId: number;
|
|
40
|
-
}[],
|
|
40
|
+
}[], options: {
|
|
41
|
+
isExport: boolean;
|
|
42
|
+
isDeclare?: boolean;
|
|
43
|
+
}, op: (writer: LanguageWriter) => void): void;
|
|
41
44
|
writeMethodImplementation(method: Method, op: (writer: this) => void): void;
|
|
42
45
|
private writeDeclaration;
|
|
43
46
|
protected stringifyMethodReturnType(type: idl.IDLType, _?: PrintHint): string;
|
|
@@ -95,7 +95,7 @@ export class CLikeLanguageWriter extends LanguageWriter {
|
|
|
95
95
|
writeMethodDeclaration(name, signature, modifiers) {
|
|
96
96
|
this.writeDeclaration(name, signature, modifiers, ";");
|
|
97
97
|
}
|
|
98
|
-
writeEnum(name, members, op) {
|
|
98
|
+
writeEnum(name, members, options, op) {
|
|
99
99
|
throw new Error("WriteEnum for C-family languages is not implemented");
|
|
100
100
|
}
|
|
101
101
|
writeMethodImplementation(method, op) {
|
|
@@ -11,9 +11,9 @@ import * as idl from "../../idl";
|
|
|
11
11
|
export declare class CppCastExpression implements LanguageExpression {
|
|
12
12
|
convertor: IdlNameConvertor;
|
|
13
13
|
value: LanguageExpression;
|
|
14
|
-
|
|
14
|
+
node: IDLNode;
|
|
15
15
|
private options?;
|
|
16
|
-
constructor(convertor: IdlNameConvertor, value: LanguageExpression,
|
|
16
|
+
constructor(convertor: IdlNameConvertor, value: LanguageExpression, node: IDLNode, options?: MakeCastOptions | undefined);
|
|
17
17
|
asString(): string;
|
|
18
18
|
private mapTypeWithReceiver;
|
|
19
19
|
}
|
|
@@ -46,7 +46,13 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
46
46
|
writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
|
|
47
47
|
writeFieldDeclaration(name: string, type: IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
|
|
48
48
|
writeConstructorImplementation(className: string, signature: MethodSignature, op: (writer: this) => void, superCall?: Method, modifiers?: MethodModifier[]): void;
|
|
49
|
-
writeProperty(propName: string, propType: IDLType,
|
|
49
|
+
writeProperty(propName: string, propType: IDLType, modifiers: FieldModifier[], getter?: {
|
|
50
|
+
method: Method;
|
|
51
|
+
op: () => void;
|
|
52
|
+
}, setter?: {
|
|
53
|
+
method: Method;
|
|
54
|
+
op: () => void;
|
|
55
|
+
}): void;
|
|
50
56
|
writeTypeDeclaration(decl: IDLTypedef): void;
|
|
51
57
|
writeConstant(constName: string, constType: IDLType, constVal?: string): void;
|
|
52
58
|
/**
|
|
@@ -85,7 +91,7 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
85
91
|
makeMapInit(type: IDLType): LanguageExpression;
|
|
86
92
|
makeArrayResize(array: string, arrayType: string, length: string, deserializer: string): LanguageStatement;
|
|
87
93
|
makeMapResize(mapTypeName: string, keyType: IDLType, valueType: IDLType, map: string, size: string, deserializer: string): LanguageStatement;
|
|
88
|
-
makeCast(expr: LanguageExpression,
|
|
94
|
+
makeCast(expr: LanguageExpression, node: IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
89
95
|
makePointerPropertyAccessExpression(expression: string, name: string): CppPointerPropertyAccessExpression;
|
|
90
96
|
writePrintLog(message: string): void;
|
|
91
97
|
makeDefinedCheck(value: string): LanguageExpression;
|
|
@@ -101,19 +107,19 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
101
107
|
makeTupleAssign(receiver: string, tupleFields: string[]): LanguageStatement;
|
|
102
108
|
get supportedModifiers(): MethodModifier[];
|
|
103
109
|
get supportedFieldModifiers(): FieldModifier[];
|
|
104
|
-
|
|
105
|
-
ordinalFromEnum(value: LanguageExpression, _: IDLType): LanguageExpression;
|
|
110
|
+
enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
106
111
|
makeUnsafeCast(param: string): string;
|
|
107
112
|
makeUnsafeCast_(value: LanguageExpression, type: IDLType, typeOptions?: PrintHint): string;
|
|
108
|
-
|
|
113
|
+
i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
109
114
|
escapeKeyword(name: string): string;
|
|
110
|
-
makeEnumEntity(enumEntity: IDLEnum,
|
|
115
|
+
makeEnumEntity(enumEntity: IDLEnum, options: {
|
|
116
|
+
isExport: boolean;
|
|
117
|
+
isDeclare?: boolean;
|
|
118
|
+
}): LanguageStatement;
|
|
111
119
|
private decayTypeName;
|
|
112
120
|
stringifyMethodReturnType(type: IDLType, hint?: PrintHint): string;
|
|
113
121
|
stringifyMethodArgType(type: IDLType, hint?: PrintHint): string;
|
|
114
122
|
stringifyTypeWithReceiver(type: IDLType, receiver?: string): string;
|
|
115
123
|
makeSerializerConstructorSignatures(): NamedMethodSignature[] | undefined;
|
|
116
|
-
makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
|
|
117
|
-
makeLengthDeserializer(deserializer: string): LanguageStatement | undefined;
|
|
118
124
|
}
|
|
119
125
|
//# sourceMappingURL=CppLanguageWriter.d.ts.map
|
|
@@ -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, IDLU32Type,
|
|
15
|
+
import { createReferenceType, forceAsNamedNode, IDLU32Type, IDLVoidType } from '../../idl';
|
|
16
16
|
import { Language } from '../../Language';
|
|
17
17
|
import { PrimitiveTypeList } from "../../peer-generation/PrimitiveType";
|
|
18
18
|
import { AssignStatement, BlockStatement, FieldModifier, PrintHint, MethodModifier, NamedMethodSignature, StringExpression } from "../LanguageWriter";
|
|
@@ -25,15 +25,15 @@ import * as idl from "../../idl";
|
|
|
25
25
|
// EXPRESSIONS //
|
|
26
26
|
////////////////////////////////////////////////////////////////
|
|
27
27
|
export class CppCastExpression {
|
|
28
|
-
constructor(convertor, value,
|
|
28
|
+
constructor(convertor, value, node, options) {
|
|
29
29
|
this.convertor = convertor;
|
|
30
30
|
this.value = value;
|
|
31
|
-
this.
|
|
31
|
+
this.node = node;
|
|
32
32
|
this.options = options;
|
|
33
33
|
}
|
|
34
34
|
asString() {
|
|
35
35
|
var _a, _b, _c, _d;
|
|
36
|
-
if (forceAsNamedNode(this.
|
|
36
|
+
if (forceAsNamedNode(this.node).name === "Tag") {
|
|
37
37
|
return `${this.value.asString()} == ${PrimitiveTypeList.UndefinedRuntime} ? ${PrimitiveTypeList.UndefinedTag} : ${PrimitiveTypeList.ObjectTag}`;
|
|
38
38
|
}
|
|
39
39
|
let resultName = '';
|
|
@@ -41,7 +41,7 @@ export class CppCastExpression {
|
|
|
41
41
|
resultName = this.options.overrideTypeName;
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
44
|
-
const pureName = this.mapTypeWithReceiver(
|
|
44
|
+
const pureName = this.mapTypeWithReceiver((_b = this.options) === null || _b === void 0 ? void 0 : _b.receiver);
|
|
45
45
|
const qualifiedName = ((_c = this.options) === null || _c === void 0 ? void 0 : _c.toRef) ? `${pureName}&` : pureName;
|
|
46
46
|
resultName = qualifiedName;
|
|
47
47
|
}
|
|
@@ -49,12 +49,12 @@ export class CppCastExpression {
|
|
|
49
49
|
? `reinterpret_cast<${resultName}>(${this.value.asString()})`
|
|
50
50
|
: `static_cast<${resultName}>(${this.value.asString()})`;
|
|
51
51
|
}
|
|
52
|
-
mapTypeWithReceiver(
|
|
52
|
+
mapTypeWithReceiver(receiver) {
|
|
53
53
|
// make deducing type from receiver
|
|
54
54
|
if (receiver !== undefined) {
|
|
55
55
|
return `std::decay<decltype(${receiver})>::type`;
|
|
56
56
|
}
|
|
57
|
-
return this.convertor.convert(
|
|
57
|
+
return this.convertor.convert(this.node);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
export class CppPointerPropertyAccessExpression {
|
|
@@ -217,7 +217,7 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
217
217
|
this.popIndent();
|
|
218
218
|
this.print(`}`);
|
|
219
219
|
}
|
|
220
|
-
writeProperty(propName, propType,
|
|
220
|
+
writeProperty(propName, propType, modifiers, getter, setter) {
|
|
221
221
|
throw new Error("writeProperty for c++ is not implemented yet.");
|
|
222
222
|
}
|
|
223
223
|
writeTypeDeclaration(decl) {
|
|
@@ -314,8 +314,8 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
314
314
|
makeMapResize(mapTypeName, keyType, valueType, map, size, deserializer) {
|
|
315
315
|
return new CppMapResizeStatement(mapTypeName, keyType, valueType, map, size, deserializer);
|
|
316
316
|
}
|
|
317
|
-
makeCast(expr,
|
|
318
|
-
return new CppCastExpression(this.typeConvertor, expr,
|
|
317
|
+
makeCast(expr, node, options) {
|
|
318
|
+
return new CppCastExpression(this.typeConvertor, expr, node, options);
|
|
319
319
|
}
|
|
320
320
|
makePointerPropertyAccessExpression(expression, name) {
|
|
321
321
|
return new CppPointerPropertyAccessExpression(expression, name);
|
|
@@ -370,11 +370,8 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
370
370
|
get supportedFieldModifiers() {
|
|
371
371
|
return [];
|
|
372
372
|
}
|
|
373
|
-
|
|
374
|
-
return this.makeString(`static_cast<${this.typeConvertor.convert(
|
|
375
|
-
}
|
|
376
|
-
ordinalFromEnum(value, _) {
|
|
377
|
-
return value;
|
|
373
|
+
enumFromI32(value, enumEntry) {
|
|
374
|
+
return this.makeString(`static_cast<${this.typeConvertor.convert(enumEntry)}>(` + value.asString() + `)`);
|
|
378
375
|
}
|
|
379
376
|
makeUnsafeCast(param) {
|
|
380
377
|
return param;
|
|
@@ -396,13 +393,13 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
396
393
|
}
|
|
397
394
|
return `(${typeName}) (${value.asString()})`;
|
|
398
395
|
}
|
|
399
|
-
|
|
400
|
-
return `static_cast<${this.typeConvertor.convert(idl.createReferenceType(enumEntry))}>(${value})
|
|
396
|
+
i32FromEnum(value, enumEntry) {
|
|
397
|
+
return this.makeString(`static_cast<${this.typeConvertor.convert(idl.createReferenceType(enumEntry))}>(${value.asString()})`);
|
|
401
398
|
}
|
|
402
399
|
escapeKeyword(name) {
|
|
403
400
|
return cppKeywords.has(name) ? name + "_" : name;
|
|
404
401
|
}
|
|
405
|
-
makeEnumEntity(enumEntity,
|
|
402
|
+
makeEnumEntity(enumEntity, options) {
|
|
406
403
|
return new CppEnumEntityStatement(enumEntity);
|
|
407
404
|
}
|
|
408
405
|
decayTypeName(typeName) {
|
|
@@ -460,20 +457,14 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
460
457
|
}
|
|
461
458
|
makeSerializerConstructorSignatures() {
|
|
462
459
|
const fromBufferCtor = new NamedMethodSignature(IDLVoidType, [
|
|
463
|
-
|
|
460
|
+
idl.IDLSerializerBuffer,
|
|
464
461
|
IDLU32Type,
|
|
465
462
|
createReferenceType("CallbackResourceHolder")
|
|
466
|
-
], ["data", "dataLength", "resourceHolder"], [undefined, `0`, `nullptr`], [undefined, undefined, undefined, PrintHint.AsPointer]);
|
|
463
|
+
], ["data", "dataLength", "resourceHolder"], [undefined, `0`, `nullptr`], undefined, [undefined, undefined, undefined, PrintHint.AsPointer]);
|
|
467
464
|
const ownedDataCtor = new NamedMethodSignature(IDLVoidType, [
|
|
468
465
|
createReferenceType("CallbackResourceHolder")
|
|
469
|
-
], ["resourceHolder"], [`nullptr`], [undefined, PrintHint.AsPointer]);
|
|
466
|
+
], ["resourceHolder"], [`nullptr`], undefined, [undefined, PrintHint.AsPointer]);
|
|
470
467
|
return [ownedDataCtor, fromBufferCtor];
|
|
471
468
|
}
|
|
472
|
-
makeLengthSerializer(serializer, value) {
|
|
473
|
-
return undefined;
|
|
474
|
-
}
|
|
475
|
-
makeLengthDeserializer(deserializer) {
|
|
476
|
-
return undefined;
|
|
477
|
-
}
|
|
478
469
|
}
|
|
479
470
|
//# sourceMappingURL=CppLanguageWriter.js.map
|
|
@@ -17,8 +17,11 @@ export declare class EtsAssignStatement implements LanguageStatement {
|
|
|
17
17
|
}
|
|
18
18
|
export declare class ArkTSEnumEntityStatement implements LanguageStatement {
|
|
19
19
|
private readonly enumEntity;
|
|
20
|
-
private readonly
|
|
21
|
-
constructor(enumEntity: IDLEnum,
|
|
20
|
+
private readonly options;
|
|
21
|
+
constructor(enumEntity: IDLEnum, options: {
|
|
22
|
+
isExport: boolean;
|
|
23
|
+
isDeclare: boolean;
|
|
24
|
+
});
|
|
22
25
|
write(writer: LanguageWriter): void;
|
|
23
26
|
}
|
|
24
27
|
export declare class ETSLambdaExpression extends LambdaExpression {
|
|
@@ -28,8 +31,8 @@ export declare class ETSLambdaExpression extends LambdaExpression {
|
|
|
28
31
|
asString(): string;
|
|
29
32
|
}
|
|
30
33
|
export declare function generateTypeCheckerName(typeName: string): string;
|
|
31
|
-
export declare function
|
|
32
|
-
export declare function
|
|
34
|
+
export declare function generateEnumToNumericName(typeName: string): string;
|
|
35
|
+
export declare function generateEnumFromNumericName(typeName: string): string;
|
|
33
36
|
export declare function makeArrayTypeCheckCall(valueAccessor: string, typeName: string, writer: LanguageWriter): LanguageExpression;
|
|
34
37
|
export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
35
38
|
private arrayConvertor;
|
|
@@ -44,19 +47,21 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
44
47
|
get supportedModifiers(): MethodModifier[];
|
|
45
48
|
runtimeType(param: ArgConvertor, valueType: string, value: string): void;
|
|
46
49
|
makeUnionVariantCast(value: string, type: string, convertor: ArgConvertor, index?: number): LanguageExpression;
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
51
|
+
enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
|
|
49
52
|
makeDiscriminatorFromFields(convertor: {
|
|
50
53
|
targetType: (writer: LanguageWriter) => string;
|
|
51
54
|
}, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
|
|
52
55
|
makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
|
|
53
56
|
makeIsTypeCall(value: string, decl: idl.IDLInterface): LanguageExpression;
|
|
54
|
-
makeEnumEntity(enumEntity: IDLEnum,
|
|
57
|
+
makeEnumEntity(enumEntity: IDLEnum, options: {
|
|
58
|
+
isExport: boolean;
|
|
59
|
+
isDeclare?: boolean;
|
|
60
|
+
}): LanguageStatement;
|
|
55
61
|
getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
|
|
56
62
|
writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
|
|
57
63
|
isQuickType(type: IDLType): boolean;
|
|
58
64
|
writeNativeMethodDeclaration(method: Method): void;
|
|
59
|
-
writeProperty(propName: string, propType: IDLType): void;
|
|
60
65
|
makeUnionVariantCondition(convertor: ArgConvertor, valueName: string, valueType: string, type: string, convertorIndex: number, runtimeTypeIndex: number): LanguageExpression;
|
|
61
66
|
makeCastCustomObject(customName: string, isGenericType: boolean): LanguageExpression;
|
|
62
67
|
makeHasOwnProperty(value: string, valueTypeName: string, property: string, propertyTypeName: string): LanguageExpression;
|
|
@@ -67,7 +72,7 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
67
72
|
instanceOf(convertor: ArgConvertor, value: string, duplicateMembers?: Set<string>): LanguageExpression;
|
|
68
73
|
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
69
74
|
makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
70
|
-
makeCast(value: LanguageExpression,
|
|
75
|
+
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
71
76
|
}
|
|
72
77
|
export declare function makeEnumTypeCheckerCall(valueAccessor: string, enumName: string, writer: LanguageWriter): LanguageExpression;
|
|
73
78
|
//# sourceMappingURL=ETSLanguageWriter.d.ts.map
|
|
@@ -63,9 +63,9 @@ class ArkTSMapForEachStatement {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
export class ArkTSEnumEntityStatement {
|
|
66
|
-
constructor(enumEntity,
|
|
66
|
+
constructor(enumEntity, options) {
|
|
67
67
|
this.enumEntity = enumEntity;
|
|
68
|
-
this.
|
|
68
|
+
this.options = options;
|
|
69
69
|
}
|
|
70
70
|
write(writer) {
|
|
71
71
|
let enumName = convertDeclaration(createDeclarationNameConvertor(Language.ARKTS), this.enumEntity);
|
|
@@ -99,10 +99,7 @@ export class ArkTSEnumEntityStatement {
|
|
|
99
99
|
}
|
|
100
100
|
return res;
|
|
101
101
|
});
|
|
102
|
-
|
|
103
|
-
nss.forEach(it => writer.pushNamespace(it.name));
|
|
104
|
-
writer.writeEnum(enumName, members);
|
|
105
|
-
nss.forEach(() => writer.popNamespace());
|
|
102
|
+
writer.writeEnum(enumName, members, { isExport: this.options.isExport, isDeclare: this.options.isDeclare });
|
|
106
103
|
}
|
|
107
104
|
}
|
|
108
105
|
export class ETSLambdaExpression extends LambdaExpression {
|
|
@@ -137,13 +134,13 @@ export function generateTypeCheckerName(typeName) {
|
|
|
137
134
|
.replaceAll('.', ''); // Todo: hack for namespaces
|
|
138
135
|
return `is${typeName.replaceAll('[]', 'Brackets')}`;
|
|
139
136
|
}
|
|
140
|
-
export function
|
|
137
|
+
export function generateEnumToNumericName(typeName) {
|
|
141
138
|
typeName = typeName.split(".").join("_");
|
|
142
|
-
return `${typeName}
|
|
139
|
+
return `${typeName}_ToNumeric`;
|
|
143
140
|
}
|
|
144
|
-
export function
|
|
141
|
+
export function generateEnumFromNumericName(typeName) {
|
|
145
142
|
typeName = typeName.split(".").join("_");
|
|
146
|
-
return `${typeName}
|
|
143
|
+
return `${typeName}_FromNumeric`;
|
|
147
144
|
}
|
|
148
145
|
export function makeArrayTypeCheckCall(valueAccessor, typeName, writer) {
|
|
149
146
|
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(typeName), [writer.makeString(valueAccessor)
|
|
@@ -182,13 +179,13 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
182
179
|
makeUnionVariantCast(value, type, convertor, index) {
|
|
183
180
|
return this.makeString(`${value} as ${type}`);
|
|
184
181
|
}
|
|
185
|
-
|
|
182
|
+
i32FromEnum(value, enumEntry) {
|
|
186
183
|
const enumName = this.getNodeName(enumEntry);
|
|
187
|
-
return this.makeMethodCall('TypeChecker',
|
|
184
|
+
return this.makeMethodCall('TypeChecker', generateEnumToNumericName(enumName), [value]);
|
|
188
185
|
}
|
|
189
|
-
|
|
186
|
+
enumFromI32(value, enumEntry) {
|
|
190
187
|
const enumName = this.getNodeName(enumEntry);
|
|
191
|
-
return this.makeMethodCall('TypeChecker',
|
|
188
|
+
return this.makeMethodCall('TypeChecker', generateEnumFromNumericName(enumName), [value]);
|
|
192
189
|
}
|
|
193
190
|
makeDiscriminatorFromFields(convertor, value, accessors, duplicates) {
|
|
194
191
|
if (convertor instanceof AggregateConvertor
|
|
@@ -208,8 +205,11 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
208
205
|
makeIsTypeCall(value, decl) {
|
|
209
206
|
return makeInterfaceTypeCheckerCall(value, decl.name, decl.properties.map(it => it.name), new Set(), this);
|
|
210
207
|
}
|
|
211
|
-
makeEnumEntity(enumEntity,
|
|
212
|
-
return new ArkTSEnumEntityStatement(enumEntity,
|
|
208
|
+
makeEnumEntity(enumEntity, options) {
|
|
209
|
+
return new ArkTSEnumEntityStatement(enumEntity, {
|
|
210
|
+
isExport: options === null || options === void 0 ? void 0 : options.isExport,
|
|
211
|
+
isDeclare: !!(options === null || options === void 0 ? void 0 : options.isDeclare),
|
|
212
|
+
});
|
|
213
213
|
}
|
|
214
214
|
getObjectAccessor(convertor, value, args) {
|
|
215
215
|
return super.getObjectAccessor(convertor, value, args);
|
|
@@ -227,9 +227,6 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
227
227
|
}
|
|
228
228
|
this.writeMethodDeclaration(method.name, method.signature, [MethodModifier.STATIC, MethodModifier.NATIVE]);
|
|
229
229
|
}
|
|
230
|
-
writeProperty(propName, propType) {
|
|
231
|
-
throw new Error("writeProperty for ArkTS is not implemented yet.");
|
|
232
|
-
}
|
|
233
230
|
makeUnionVariantCondition(convertor, valueName, valueType, type, convertorIndex, runtimeTypeIndex) {
|
|
234
231
|
if (idl.isEnum(this.resolver.toDeclaration(convertor.nativeType()))) {
|
|
235
232
|
return this.instanceOf(convertor, valueName);
|
|
@@ -307,9 +304,9 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
307
304
|
makeTypeCast(value, type, options) {
|
|
308
305
|
return this.makeString(`TypeChecker.typeCast<${this.getNodeName(type)}>(value)`);
|
|
309
306
|
}
|
|
310
|
-
makeCast(value,
|
|
307
|
+
makeCast(value, node, options) {
|
|
311
308
|
var _a;
|
|
312
|
-
return new TSCastExpression(value, `${this.getNodeName(
|
|
309
|
+
return new TSCastExpression(value, `${this.getNodeName(node)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
313
310
|
}
|
|
314
311
|
}
|
|
315
312
|
function makeInterfaceTypeCheckerCall(valueAccessor, interfaceName, allFields, duplicates, writer) {
|