@idlizer/core 2.1.2 → 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.
Files changed (79) hide show
  1. package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +3 -3
  2. package/build/lib/src/LanguageWriters/ArgConvertors.js +36 -30
  3. package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +26 -13
  4. package/build/lib/src/LanguageWriters/LanguageWriter.js +26 -52
  5. package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +2 -1
  6. package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +16 -5
  7. package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +4 -2
  8. package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +20 -12
  9. package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +7 -17
  10. package/build/lib/src/LanguageWriters/convertors/InteropConvertors.d.ts +4 -2
  11. package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +9 -3
  12. package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +2 -1
  13. package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +24 -4
  14. package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -2
  15. package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +47 -28
  16. package/build/lib/src/LanguageWriters/nameConvertor.d.ts +3 -1
  17. package/build/lib/src/LanguageWriters/nameConvertor.js +5 -1
  18. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +12 -9
  19. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +10 -37
  20. package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +4 -1
  21. package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.js +1 -1
  22. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +9 -9
  23. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +15 -24
  24. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +14 -8
  25. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +18 -18
  26. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +4 -6
  27. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +15 -14
  28. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +7 -5
  29. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +22 -43
  30. package/build/lib/src/LibraryInterface.d.ts +1 -4
  31. package/build/lib/src/config.d.ts +206 -66
  32. package/build/lib/src/config.js +7 -3
  33. package/build/lib/src/configDescriber.d.ts +30 -3
  34. package/build/lib/src/configDescriber.js +99 -1
  35. package/build/lib/src/from-idl/DtsPrinter.js +30 -18
  36. package/build/lib/src/from-idl/IDLLinter.d.ts +40 -7
  37. package/build/lib/src/from-idl/IDLLinter.js +211 -25
  38. package/build/lib/src/from-idl/common.js +1 -1
  39. package/build/lib/src/from-idl/deserialize.d.ts +4 -1
  40. package/build/lib/src/from-idl/deserialize.js +434 -346
  41. package/build/lib/src/idl.d.ts +25 -17
  42. package/build/lib/src/idl.js +363 -109
  43. package/build/lib/src/idlize.d.ts +2 -1
  44. package/build/lib/src/idlize.js +82 -26
  45. package/build/lib/src/index.d.ts +4 -3
  46. package/build/lib/src/index.js +3 -2
  47. package/build/lib/src/options.d.ts +1 -1
  48. package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -2
  49. package/build/lib/src/peer-generation/BuilderClass.js +0 -8
  50. package/build/lib/src/peer-generation/LayoutManager.d.ts +10 -3
  51. package/build/lib/src/peer-generation/LayoutManager.js +3 -2
  52. package/build/lib/src/peer-generation/Materialized.d.ts +1 -1
  53. package/build/lib/src/peer-generation/Materialized.js +2 -2
  54. package/build/lib/src/peer-generation/PeerClass.d.ts +3 -8
  55. package/build/lib/src/peer-generation/PeerClass.js +0 -1
  56. package/build/lib/src/peer-generation/PeerFile.d.ts +1 -2
  57. package/build/lib/src/peer-generation/PeerFile.js +1 -1
  58. package/build/lib/src/peer-generation/PeerLibrary.d.ts +12 -7
  59. package/build/lib/src/peer-generation/PeerLibrary.js +129 -65
  60. package/build/lib/src/peer-generation/ReferenceResolver.d.ts +1 -1
  61. package/build/lib/src/peer-generation/ReferenceResolver.js +2 -2
  62. package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +1 -0
  63. package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +6 -2
  64. package/build/lib/src/peer-generation/idl/common.d.ts +2 -1
  65. package/build/lib/src/peer-generation/idl/common.js +13 -2
  66. package/build/lib/src/peer-generation/isMaterialized.js +25 -8
  67. package/build/lib/src/peer-generation/unions.d.ts +3 -2
  68. package/build/lib/src/peer-generation/unions.js +6 -2
  69. package/build/lib/src/resolveNamedNode.d.ts +3 -0
  70. package/build/lib/src/resolveNamedNode.js +105 -0
  71. package/build/lib/src/util.d.ts +6 -0
  72. package/build/lib/src/util.js +33 -0
  73. package/build/lib/src/visitor.d.ts +0 -1
  74. package/build/lib/src/visitor.js +1 -7
  75. package/package.json +2 -2
  76. package/webidl2.js/LICENSE +21 -0
  77. package/webidl2.js/README.md +827 -0
  78. package/webidl2.js/dist/package.json +3 -0
  79. package/webidl2.js/dist/webidl2.js +35 -7
@@ -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) {
@@ -428,8 +428,8 @@ export class CJLanguageWriter extends LanguageWriter {
428
428
  name = name.startsWith('_') ? name.slice(1) : name;
429
429
  this.print(`func ${name}(${signture}): ${this.typeForeignConvertor.convert(method.signature.returnType)}`);
430
430
  }
431
- makeEnumCast(_enumEntry, enumName) {
432
- return `${enumName}.value`;
431
+ i32FromEnum(value, _enumEntry) {
432
+ return this.makeString(`${value.asString()}.value`);
433
433
  }
434
434
  makeAssign(variableName, type, expr, isDeclared = true, isConst = true) {
435
435
  return new CJAssignStatement(variableName, type, expr, isDeclared, isConst);
@@ -441,7 +441,7 @@ export class CJLanguageWriter extends LanguageWriter {
441
441
  return this.makeString(`ArrayList<${this.getNodeName(type.elementType[0])}>(Int64(${size !== null && size !== void 0 ? size : ''}))`);
442
442
  }
443
443
  makeMapInit(type) {
444
- throw new Error(`TBD`);
444
+ return this.makeString(`${this.getNodeName(type)}()`);
445
445
  }
446
446
  makeArrayLength(array, length) {
447
447
  return this.makeString(`${array}.size`);
@@ -495,9 +495,9 @@ export class CJLanguageWriter extends LanguageWriter {
495
495
  writePrintLog(message) {
496
496
  this.print(`println("${message}")`);
497
497
  }
498
- makeCast(value, type, options) {
498
+ makeCast(value, node, options) {
499
499
  var _a;
500
- return new CJCastExpression(value, this.getNodeName(type), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
500
+ return new CJCastExpression(value, this.getNodeName(node), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
501
501
  }
502
502
  typeInstanceOf(type, value, members) {
503
503
  if (idl.isInterface(type)) {
@@ -525,7 +525,7 @@ export class CJLanguageWriter extends LanguageWriter {
525
525
  return this.makeString(methodCall.asString() + '.ordinal');
526
526
  }
527
527
  makeMapInsert(keyAccessor, key, valueAccessor, value) {
528
- return this.makeStatement(this.makeMethodCall(keyAccessor, "set", [this.makeString(key), this.makeString(value)]));
528
+ return this.makeStatement(this.makeMethodCall(keyAccessor, "add", [this.makeString(key), this.makeString(value)]));
529
529
  }
530
530
  makeNull(value) {
531
531
  return new StringExpression(`Option.None`);
@@ -557,14 +557,11 @@ export class CJLanguageWriter extends LanguageWriter {
557
557
  makeTupleAccess(value, index) {
558
558
  return this.makeString(`${value}.value${index}`);
559
559
  }
560
- enumFromOrdinal(value, enumEntry) {
560
+ enumFromI32(value, enumEntry) {
561
561
  return this.makeString(`${this.getNodeName(enumEntry)}(${value.asString()})`);
562
562
  }
563
- ordinalFromEnum(value, _) {
564
- return this.makeString(`Int32(${value.asString()}.value)`);
565
- }
566
- makeEnumEntity(enumEntity, isExport) {
567
- return new CJEnumWithGetter(enumEntity, isExport);
563
+ makeEnumEntity(enumEntity, options) {
564
+ return new CJEnumWithGetter(enumEntity, options.isExport);
568
565
  }
569
566
  makeEquals(args) {
570
567
  return this.makeString(`refEq(${args.map(arg => `${arg.asString()}`).join(`, `)})`);
@@ -583,29 +580,5 @@ export class CJLanguageWriter extends LanguageWriter {
583
580
  castToBoolean(value) {
584
581
  return `if (${value}) { Int32(1) } else { Int32(0) }`;
585
582
  }
586
- makeLengthSerializer(serializer, value) {
587
- return this.makeBlock([
588
- this.makeStatement(this.makeMethodCall(serializer, "writeInt8", [this.makeRuntimeType(RuntimeType.STRING)])),
589
- this.makeStatement(this.makeMethodCall(serializer, "writeString", [this.makeString(`${value}.getValue1()`)]))
590
- ], false);
591
- }
592
- makeLengthDeserializer(deserializer) {
593
- const valueType = "valueType";
594
- return this.makeBlock([
595
- this.makeAssign(valueType, undefined, this.makeMethodCall(deserializer, "readInt8", []), true),
596
- this.makeMultiBranchCondition([{
597
- expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.NUMBER, ''),
598
- stmt: this.makeReturn(this.makeString(`Ark_Length(${deserializer}.readFloat32())`))
599
- },
600
- {
601
- expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.STRING, ''),
602
- stmt: this.makeReturn(this.makeString(`Ark_Length(${deserializer}.readString())`))
603
- },
604
- {
605
- expr: this.makeRuntimeTypeCondition(valueType, true, RuntimeType.OBJECT, ''),
606
- stmt: this.makeReturn(this.makeString(`Ark_Length(Resource(${deserializer}.readString(), "", 0.0, Option.None, Option.None))`))
607
- }], this.makeReturn(this.makeUndefined())),
608
- ], false);
609
- }
610
583
  }
611
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
- }[], op: (writer: LanguageWriter) => void): void;
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
- type: IDLType;
14
+ node: IDLNode;
15
15
  private options?;
16
- constructor(convertor: IdlNameConvertor, value: LanguageExpression, type: IDLType, options?: MakeCastOptions | undefined);
16
+ constructor(convertor: IdlNameConvertor, value: LanguageExpression, node: IDLNode, options?: MakeCastOptions | undefined);
17
17
  asString(): string;
18
18
  private mapTypeWithReceiver;
19
19
  }
@@ -91,7 +91,7 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
91
91
  makeMapInit(type: IDLType): LanguageExpression;
92
92
  makeArrayResize(array: string, arrayType: string, length: string, deserializer: string): LanguageStatement;
93
93
  makeMapResize(mapTypeName: string, keyType: IDLType, valueType: IDLType, map: string, size: string, deserializer: string): LanguageStatement;
94
- makeCast(expr: LanguageExpression, type: IDLType, options?: MakeCastOptions): LanguageExpression;
94
+ makeCast(expr: LanguageExpression, node: IDLNode, options?: MakeCastOptions): LanguageExpression;
95
95
  makePointerPropertyAccessExpression(expression: string, name: string): CppPointerPropertyAccessExpression;
96
96
  writePrintLog(message: string): void;
97
97
  makeDefinedCheck(value: string): LanguageExpression;
@@ -107,19 +107,19 @@ export declare class CppLanguageWriter extends CLikeLanguageWriter {
107
107
  makeTupleAssign(receiver: string, tupleFields: string[]): LanguageStatement;
108
108
  get supportedModifiers(): MethodModifier[];
109
109
  get supportedFieldModifiers(): FieldModifier[];
110
- enumFromOrdinal(value: LanguageExpression, type: IDLType): LanguageExpression;
111
- ordinalFromEnum(value: LanguageExpression, _: IDLType): LanguageExpression;
110
+ enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
112
111
  makeUnsafeCast(param: string): string;
113
112
  makeUnsafeCast_(value: LanguageExpression, type: IDLType, typeOptions?: PrintHint): string;
114
- makeEnumCast(enumEntry: idl.IDLEnum, value: string): string;
113
+ i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
115
114
  escapeKeyword(name: string): string;
116
- makeEnumEntity(enumEntity: IDLEnum, isExport: boolean): LanguageStatement;
115
+ makeEnumEntity(enumEntity: IDLEnum, options: {
116
+ isExport: boolean;
117
+ isDeclare?: boolean;
118
+ }): LanguageStatement;
117
119
  private decayTypeName;
118
120
  stringifyMethodReturnType(type: IDLType, hint?: PrintHint): string;
119
121
  stringifyMethodArgType(type: IDLType, hint?: PrintHint): string;
120
122
  stringifyTypeWithReceiver(type: IDLType, receiver?: string): string;
121
123
  makeSerializerConstructorSignatures(): NamedMethodSignature[] | undefined;
122
- makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
123
- makeLengthDeserializer(deserializer: string): LanguageStatement | undefined;
124
124
  }
125
125
  //# sourceMappingURL=CppLanguageWriter.d.ts.map
@@ -25,15 +25,15 @@ import * as idl from "../../idl";
25
25
  // EXPRESSIONS //
26
26
  ////////////////////////////////////////////////////////////////
27
27
  export class CppCastExpression {
28
- constructor(convertor, value, type, options) {
28
+ constructor(convertor, value, node, options) {
29
29
  this.convertor = convertor;
30
30
  this.value = value;
31
- this.type = type;
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.type).name === "Tag") {
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(this.type, (_b = this.options) === null || _b === void 0 ? void 0 : _b.receiver);
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(type, receiver) {
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(type);
57
+ return this.convertor.convert(this.node);
58
58
  }
59
59
  }
60
60
  export class CppPointerPropertyAccessExpression {
@@ -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, type, options) {
318
- return new CppCastExpression(this.typeConvertor, expr, type, options);
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
- enumFromOrdinal(value, type) {
374
- return this.makeString(`static_cast<${this.typeConvertor.convert(type)}>(` + value.asString() + `)`);
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
- makeEnumCast(enumEntry, value) {
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, isExport) {
402
+ makeEnumEntity(enumEntity, options) {
406
403
  return new CppEnumEntityStatement(enumEntity);
407
404
  }
408
405
  decayTypeName(typeName) {
@@ -463,17 +460,11 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
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 isExport;
21
- constructor(enumEntity: IDLEnum, isExport: boolean);
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 generateEnumToOrdinalName(typeName: string): string;
32
- export declare function generateEnumFromOrdinalName(typeName: string): string;
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,14 +47,17 @@ 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
- enumFromOrdinal(value: LanguageExpression, enumEntry: idl.IDLType): LanguageExpression;
48
- ordinalFromEnum(value: LanguageExpression, enumEntry: idl.IDLType): LanguageExpression;
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, isExport: boolean): LanguageStatement;
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;
@@ -66,7 +72,7 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
66
72
  instanceOf(convertor: ArgConvertor, value: string, duplicateMembers?: Set<string>): LanguageExpression;
67
73
  typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
68
74
  makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
69
- makeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
75
+ makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
70
76
  }
71
77
  export declare function makeEnumTypeCheckerCall(valueAccessor: string, enumName: string, writer: LanguageWriter): LanguageExpression;
72
78
  //# sourceMappingURL=ETSLanguageWriter.d.ts.map
@@ -63,9 +63,9 @@ class ArkTSMapForEachStatement {
63
63
  }
64
64
  }
65
65
  export class ArkTSEnumEntityStatement {
66
- constructor(enumEntity, isExport) {
66
+ constructor(enumEntity, options) {
67
67
  this.enumEntity = enumEntity;
68
- this.isExport = isExport;
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
- const nss = idl.getNamespacesPathFor(this.enumEntity);
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 generateEnumToOrdinalName(typeName) {
137
+ export function generateEnumToNumericName(typeName) {
141
138
  typeName = typeName.split(".").join("_");
142
- return `${typeName}_ToOrdinal`;
139
+ return `${typeName}_ToNumeric`;
143
140
  }
144
- export function generateEnumFromOrdinalName(typeName) {
141
+ export function generateEnumFromNumericName(typeName) {
145
142
  typeName = typeName.split(".").join("_");
146
- return `${typeName}_FromOrdinal`;
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
- enumFromOrdinal(value, enumEntry) {
182
+ i32FromEnum(value, enumEntry) {
186
183
  const enumName = this.getNodeName(enumEntry);
187
- return this.makeMethodCall('TypeChecker', generateEnumFromOrdinalName(enumName), [this.makeString(value.asString())]);
184
+ return this.makeMethodCall('TypeChecker', generateEnumToNumericName(enumName), [value]);
188
185
  }
189
- ordinalFromEnum(value, enumEntry) {
186
+ enumFromI32(value, enumEntry) {
190
187
  const enumName = this.getNodeName(enumEntry);
191
- return this.makeMethodCall('TypeChecker', generateEnumToOrdinalName(enumName), [this.makeString(value.asString())]);
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, isExport) {
212
- return new ArkTSEnumEntityStatement(enumEntity, isExport);
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);
@@ -304,9 +304,9 @@ export class ETSLanguageWriter extends TSLanguageWriter {
304
304
  makeTypeCast(value, type, options) {
305
305
  return this.makeString(`TypeChecker.typeCast<${this.getNodeName(type)}>(value)`);
306
306
  }
307
- makeCast(value, type, options) {
307
+ makeCast(value, node, options) {
308
308
  var _a;
309
- return new TSCastExpression(value, `${this.getNodeName(type)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
309
+ return new TSCastExpression(value, `${this.getNodeName(node)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
310
310
  }
311
311
  }
312
312
  function makeInterfaceTypeCheckerCall(valueAccessor, interfaceName, allFields, duplicates, writer) {
@@ -57,7 +57,7 @@ export declare class JavaLanguageWriter extends CLikeLanguageWriter {
57
57
  makeLoop(counter: string, limit: string, statement?: LanguageStatement): LanguageStatement;
58
58
  makeMapForEach(map: string, key: string, value: string, op: () => void): LanguageStatement;
59
59
  makeMapSize(map: string): LanguageExpression;
60
- makeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
60
+ makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
61
61
  makeStatement(expr: LanguageExpression): LanguageStatement;
62
62
  makeUnionSelector(value: string, valueType: string): LanguageStatement;
63
63
  makeUnionVariantCondition(_convertor: ArgConvertor, _valueName: string, valueType: string, _type: string, convertorIndex: number): LanguageExpression;
@@ -69,7 +69,7 @@ export declare class JavaLanguageWriter extends CLikeLanguageWriter {
69
69
  getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
70
70
  makeUndefined(): LanguageExpression;
71
71
  makeRuntimeType(rt: RuntimeType): LanguageExpression;
72
- makeRuntimeTypeGetterCall(value: string): LanguageExpression;
72
+ protected makeRuntimeTypeGetterCall(value: string): LanguageExpression;
73
73
  makeMapInsert(keyAccessor: string, key: string, valueAccessor: string, value: string): LanguageStatement;
74
74
  getTagType(): idl.IDLType;
75
75
  getRuntimeType(): idl.IDLType;
@@ -80,12 +80,10 @@ export declare class JavaLanguageWriter extends CLikeLanguageWriter {
80
80
  makeClassInit(type: idl.IDLType, paramenters: LanguageExpression[]): LanguageExpression;
81
81
  makeMapInit(type: idl.IDLType): LanguageExpression;
82
82
  makeTupleAccess(value: string, index: number): LanguageExpression;
83
- enumFromOrdinal(value: LanguageExpression, enumEntry: idl.IDLType): LanguageExpression;
84
- ordinalFromEnum(value: LanguageExpression, _: idl.IDLType): LanguageExpression;
83
+ enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
85
84
  makeValueFromOption(value: string): LanguageExpression;
86
85
  runtimeType(param: ArgConvertor, valueType: string, value: string): void;
87
- makeEnumCast(_enumEntry: idl.IDLEnum, enumName: string): string;
86
+ i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
88
87
  castToBoolean(value: string): string;
89
- makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
90
88
  }
91
89
  //# sourceMappingURL=JavaLanguageWriter.d.ts.map
@@ -100,6 +100,13 @@ export class JavaLanguageWriter extends CLikeLanguageWriter {
100
100
  this.typeConvertor = typeConvertor;
101
101
  }
102
102
  getNodeName(type) {
103
+ // another stub. Bad one.
104
+ // I hope that I will rewrite LWs soon
105
+ if (idl.isType(type) && idl.isReferenceType(type)) {
106
+ if (type.name.startsWith('%TEXT%:')) {
107
+ return type.name.substring(7);
108
+ }
109
+ }
103
110
  return this.typeConvertor.convert(type);
104
111
  }
105
112
  fork(options) {
@@ -203,9 +210,9 @@ export class JavaLanguageWriter extends CLikeLanguageWriter {
203
210
  makeMapSize(map) {
204
211
  return this.makeString(`${map}.size()`);
205
212
  }
206
- makeCast(value, type, options) {
213
+ makeCast(value, node, options) {
207
214
  var _a;
208
- return new JavaCastExpression(value, this.getNodeName(type), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
215
+ return new JavaCastExpression(value, this.getNodeName(node), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
209
216
  }
210
217
  makeStatement(expr) {
211
218
  return new CLikeExpressionStatement(expr);
@@ -276,29 +283,23 @@ export class JavaLanguageWriter extends CLikeLanguageWriter {
276
283
  makeTupleAccess(value, index) {
277
284
  return this.makeString(`${value}.value${index}`);
278
285
  }
279
- enumFromOrdinal(value, enumEntry) {
286
+ enumFromI32(value, enumEntry) {
280
287
  const enumName = idl.forceAsNamedNode(enumEntry).name;
281
288
  const ordinal = value.asString();
282
289
  return this.makeString(`${enumName}.values()[${ordinal}]`);
283
290
  }
284
- ordinalFromEnum(value, _) {
285
- return this.makeString(`${value.asString()}.ordinal()`);
286
- }
287
291
  makeValueFromOption(value) {
288
292
  return this.makeString(`${value}`);
289
293
  }
290
294
  runtimeType(param, valueType, value) {
291
295
  this.writeStatement(this.makeAssign(valueType, undefined, this.makeRuntimeTypeGetterCall(value), false));
292
296
  }
293
- makeEnumCast(_enumEntry, enumName) {
294
- return `${enumName}.value`;
297
+ i32FromEnum(value, enumEntry) {
298
+ const i32Value = idl.isStringEnum(enumEntry)
299
+ ? `${value.asString()}.ordinal`
300
+ : `${value.asString()}.value`;
301
+ return this.makeString(i32Value);
295
302
  }
296
303
  castToBoolean(value) { return value; }
297
- makeLengthSerializer(serializer, value) {
298
- return this.makeBlock([
299
- this.makeStatement(this.makeMethodCall(serializer, "writeInt8", [this.makeRuntimeType(RuntimeType.STRING)])),
300
- this.makeStatement(this.makeMethodCall(serializer, "writeString", [this.makeString(`${value}.value`)]))
301
- ], false);
302
- }
303
304
  }
304
305
  //# sourceMappingURL=JavaLanguageWriter.js.map
@@ -47,7 +47,10 @@ export declare class TSLanguageWriter extends LanguageWriter {
47
47
  alias?: string | undefined;
48
48
  stringId: string | undefined;
49
49
  numberId: number;
50
- }[]): void;
50
+ }[], options: {
51
+ isDeclare?: boolean;
52
+ isExport: boolean;
53
+ }): void;
51
54
  writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
52
55
  writeNativeMethodDeclaration(method: Method): void;
53
56
  writeMethodDeclaration(name: string, signature: MethodSignature, modifiers?: MethodModifier[]): void;
@@ -73,7 +76,7 @@ export declare class TSLanguageWriter extends LanguageWriter {
73
76
  makeLoop(counter: string, limit: string, statement?: LanguageStatement): LanguageStatement;
74
77
  makeMapForEach(map: string, key: string, value: string, op: () => void): LanguageStatement;
75
78
  writePrintLog(message: string): void;
76
- makeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
79
+ makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
77
80
  typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
78
81
  getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
79
82
  makeUndefined(): LanguageExpression;
@@ -89,9 +92,8 @@ export declare class TSLanguageWriter extends LanguageWriter {
89
92
  makeTupleAssign(receiver: string, fields: string[]): LanguageStatement;
90
93
  get supportedModifiers(): MethodModifier[];
91
94
  get supportedFieldModifiers(): FieldModifier[];
92
- enumFromOrdinal(value: LanguageExpression, enumEntry: idl.IDLType): LanguageExpression;
93
- ordinalFromEnum(value: LanguageExpression, enumEntry: idl.IDLType): LanguageExpression;
94
- makeEnumCast(enumEntry: idl.IDLEnum, param: string): string;
95
+ enumFromI32(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
96
+ i32FromEnum(value: LanguageExpression, enumEntry: idl.IDLEnum): LanguageExpression;
95
97
  castToBoolean(value: string): string;
96
98
  makeCallIsObject(value: string): LanguageExpression;
97
99
  escapeKeyword(keyword: string): string;