@idlizer/core 2.0.38 → 2.0.40

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 (27) hide show
  1. package/build/lib/src/LanguageWriters/ArgConvertors.js +5 -10
  2. package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +2 -3
  3. package/build/lib/src/LanguageWriters/LanguageWriter.js +2 -5
  4. package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +7 -2
  5. package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +1 -0
  6. package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +15 -1
  7. package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +1 -1
  8. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +6 -4
  9. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +1 -1
  10. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +4 -14
  11. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +1 -1
  12. package/build/lib/src/config.d.ts +1 -0
  13. package/build/lib/src/config.js +1 -0
  14. package/build/lib/src/from-idl/deserialize.js +0 -2
  15. package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +9 -0
  16. package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +17 -2
  17. package/build/lib/src/peer-generation/isMaterialized.js +3 -0
  18. package/package.json +1 -1
  19. package/webidl2.js/LICENSE +21 -0
  20. package/webidl2.js/README.md +827 -0
  21. package/webidl2.js/dist/package.json +3 -0
  22. package/build/lib/src/LanguageWriters/InteropConvertor.d.ts +0 -36
  23. package/build/lib/src/LanguageWriters/InteropConvertor.js +0 -174
  24. package/build/lib/src/peer-generation/LanguageWriters/index.d.ts +0 -2
  25. package/build/lib/src/peer-generation/LanguageWriters/index.js +0 -2
  26. package/build/lib/src/peer-generation/LanguageWriters/nameConvertor.d.ts +0 -25
  27. package/build/lib/src/peer-generation/LanguageWriters/nameConvertor.js +0 -55
@@ -16,7 +16,7 @@ import * as idl from "../idl";
16
16
  import { Language } from "../Language";
17
17
  import { PrintHint, BlockStatement, StringExpression } from "./LanguageWriter";
18
18
  import { RuntimeType } from "./common";
19
- import { generatorConfiguration, generatorTypePrefix } from "../config";
19
+ import { generatorTypePrefix } from "../config";
20
20
  import { hashCodeFromString, warn } from "../util";
21
21
  import { UnionRuntimeTypeChecker } from "../peer-generation/unions";
22
22
  import { CppNameConvertor } from "./convertors/CppConvertors";
@@ -509,7 +509,7 @@ export class ArrayConvertor extends BaseArgConvertor {
509
509
  const statements = [];
510
510
  const arrayType = this.idlType;
511
511
  statements.push(writer.makeAssign(lengthBuffer, idl.IDLI32Type, writer.makeString(`${deserializerName}.readInt32()`), true));
512
- statements.push(writer.makeAssign(bufferName, arrayType, writer.makeArrayInit(this.type), true, false));
512
+ statements.push(writer.makeAssign(bufferName, arrayType, writer.makeArrayInit(this.type, lengthBuffer), true, false));
513
513
  statements.push(writer.makeArrayResize(bufferName, writer.getNodeName(arrayType), lengthBuffer, deserializerName));
514
514
  statements.push(writer.makeLoop(counterBuffer, lengthBuffer, this.elementConvertor.convertorDeserialize(`${bufferName}_buf`, deserializerName, (expr) => {
515
515
  return writer.makeAssign(writer.makeArrayAccess(bufferName, counterBuffer).asString(), undefined, expr, false);
@@ -549,7 +549,7 @@ export class MapConvertor extends BaseArgConvertor {
549
549
  convertorSerialize(param, value, printer) {
550
550
  // Map size.
551
551
  const mapSize = printer.makeMapSize(value);
552
- printer.writeMethodCall(`${param}Serializer`, "writeInt32", [mapSize.asString()]);
552
+ printer.writeMethodCall(`${param}Serializer`, "writeInt32", [printer.castToInt(mapSize.asString(), 32)]);
553
553
  printer.writeStatement(printer.makeMapForEach(value, `${value}_key`, `${value}_value`, () => {
554
554
  this.keyConvertor.convertorSerialize(param, `${value}_key`, printer);
555
555
  this.valueConvertor.convertorSerialize(param, `${value}_value`, printer);
@@ -750,12 +750,7 @@ export class OptionConvertor extends BaseArgConvertor {
750
750
  const statements = [];
751
751
  statements.push(writer.makeAssign(runtimeBufferName, undefined, writer.makeCast(writer.makeString(`${deserializerName}.readInt8()`), writer.getRuntimeType()), true));
752
752
  const bufferType = this.nativeType();
753
- if (writer.language == Language.CJ) {
754
- statements.push(writer.makeAssign(bufferName, bufferType, idl.isOptionalType(bufferType) ? writer.makeString('Option.None') : undefined, true, false));
755
- }
756
- else {
757
- statements.push(writer.makeAssign(bufferName, bufferType, undefined, true, false));
758
- }
753
+ statements.push(writer.makeAssign(bufferName, bufferType, writer.language == Language.CJ ? writer.makeNull() : undefined, true, false));
759
754
  const thenStatement = new BlockStatement([
760
755
  this.typeConvertor.convertorDeserialize(`${bufferName}_`, deserializerName, (expr) => {
761
756
  const receiver = writer.language === Language.CPP
@@ -894,7 +889,7 @@ export class MaterializedClassConvertor extends BaseArgConvertor {
894
889
  convertorArg(param, writer) {
895
890
  switch (writer.language) {
896
891
  case Language.CPP:
897
- return `static_cast<${generatorConfiguration().TypePrefix}${this.declaration.name}>(${param})`;
892
+ return `static_cast<${generatorTypePrefix()}${this.declaration.name}>(${param})`;
898
893
  case Language.JAVA:
899
894
  case Language.CJ:
900
895
  return `MaterializedBase.toPeerPtr(${param})`;
@@ -249,7 +249,7 @@ export declare abstract class LanguageWriter {
249
249
  abstract writePrintLog(message: string): void;
250
250
  abstract makeUndefined(): LanguageExpression;
251
251
  makeUnwrapOptional(expression: LanguageExpression): LanguageExpression;
252
- abstract makeArrayInit(type: idl.IDLContainerType, size?: number): LanguageExpression;
252
+ abstract makeArrayInit(type: idl.IDLContainerType, size?: number | string): LanguageExpression;
253
253
  abstract makeClassInit(type: idl.IDLType, paramenters: LanguageExpression[]): LanguageExpression;
254
254
  abstract makeMapInit(type: idl.IDLType): LanguageExpression;
255
255
  abstract makeMapInsert(keyAccessor: string, key: string, valueAccessor: string, value: string): LanguageStatement;
@@ -336,7 +336,7 @@ export declare abstract class LanguageWriter {
336
336
  makeDiscriminatorFromFields(convertor: {
337
337
  targetType: (writer: LanguageWriter) => string;
338
338
  }, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
339
- makeCallIsResource(value: string): LanguageExpression;
339
+ makeIsTypeCall(value: string, decl: idl.IDLInterface): LanguageExpression;
340
340
  makeEnumEntity(enumEntity: idl.IDLEnum, isExport: boolean): LanguageStatement;
341
341
  makeFieldModifiersList(modifiers: FieldModifier[] | undefined, customFieldFilter?: (field: FieldModifier) => boolean): string;
342
342
  escapeKeyword(keyword: string): string;
@@ -349,7 +349,6 @@ export declare abstract class LanguageWriter {
349
349
  castToInt(value: string, bitness: 8 | 32): string;
350
350
  castToBoolean(value: string): string;
351
351
  makeCallIsObject(value: string): LanguageExpression;
352
- makeCallIsArrayBuffer(value: string): LanguageExpression;
353
352
  instanceOf(convertor: ArgConvertor, value: string, _duplicateMembers?: Set<string>): LanguageExpression;
354
353
  typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
355
354
  makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
@@ -619,8 +619,8 @@ export class LanguageWriter {
619
619
  makeDiscriminatorFromFields(convertor, value, accessors, duplicates) {
620
620
  return this.makeString(`(${this.makeNaryOp("||", accessors.map(it => this.makeString(`${value}!.hasOwnProperty("${it}")`))).asString()})`);
621
621
  }
622
- makeCallIsResource(value) {
623
- return this.makeString(`isResource(${value})`);
622
+ makeIsTypeCall(value, decl) {
623
+ return this.makeString(`is${decl.name}(${value})`);
624
624
  }
625
625
  makeEnumEntity(enumEntity, isExport) {
626
626
  return new TsEnumEntityStatement(enumEntity, isExport);
@@ -666,9 +666,6 @@ export class LanguageWriter {
666
666
  makeCallIsObject(value) {
667
667
  return this.makeString(`typeof ${value} === "object"`);
668
668
  }
669
- makeCallIsArrayBuffer(value) {
670
- return this.makeString(`${value} instanceof ArrayBuffer`);
671
- }
672
669
  instanceOf(convertor, value, _duplicateMembers) {
673
670
  return this.makeString(`${value} instanceof ${this.getNodeName(convertor.idlType)}`);
674
671
  }
@@ -37,6 +37,9 @@ export class CJTypeNameConvertor {
37
37
  const stringes = type.elementType.slice(0, 2).map(it => convertType(this, it));
38
38
  return `Map<${stringes[0]}, ${stringes[1]}>`;
39
39
  }
40
+ if (idl.IDLContainerUtils.isPromise(type)) {
41
+ return `Any`;
42
+ }
40
43
  throw new Error(`IDL type ${idl.DebugUtils.debugPrintType(type)} not supported`);
41
44
  }
42
45
  convertNamespace(node) {
@@ -106,13 +109,14 @@ export class CJTypeNameConvertor {
106
109
  case idl.IDLF64Type: return 'Float64';
107
110
  case idl.IDLPointerType: return 'UInt64';
108
111
  case idl.IDLVoidType: return 'Unit';
109
- case idl.IDLBufferType:
112
+ case idl.IDLBufferType: return 'Array<UInt8>';
110
113
  case idl.IDLInteropReturnBufferType: return 'Array<UInt8>';
114
+ case idl.IDLBigintType: return 'Int64';
111
115
  }
112
116
  throw new Error(`Unsupported IDL primitive ${idl.DebugUtils.debugPrintType(type)}`);
113
117
  }
114
118
  callbackType(decl) {
115
- const params = decl.parameters.map(it => `${it.name}: ${it.isOptional ? "?" : ""}${this.convert(it.type)}`);
119
+ const params = decl.parameters.map(it => `${it.name}: ${this.convert(it.type)}`);
116
120
  return `((${params.join(", ")}) -> ${this.convert(decl.returnType)})`;
117
121
  }
118
122
  productType(decl, isTuple, includeFieldNames) {
@@ -126,6 +130,7 @@ export class CJIDLTypeToForeignStringConvertor extends CJTypeNameConvertor {
126
130
  if (idl.isPrimitiveType(type)) {
127
131
  switch (type) {
128
132
  case idl.IDLStringType: return 'CString';
133
+ case idl.IDLInteropReturnBufferType: return 'KInteropReturnBuffer';
129
134
  }
130
135
  }
131
136
  if (idl.isContainerType(type)) {
@@ -30,6 +30,7 @@ export declare class GenericCppConvertor implements NodeConvertor<ConvertResult>
30
30
  }
31
31
  export declare class CppConvertor extends GenericCppConvertor implements IdlNameConvertor {
32
32
  private unwrap;
33
+ private isPrimitiveOrPrimitiveAlias;
33
34
  convert(node: idl.IDLNode): string;
34
35
  }
35
36
  export declare class CppNameConvertor implements IdlNameConvertor {
@@ -178,9 +178,23 @@ export class CppConvertor extends GenericCppConvertor {
178
178
  const typePrefix = conf.TypePrefix;
179
179
  // TODO remove this ugly hack for CustomObject's
180
180
  const convertedToCustomObject = result.text === idl.IDLCustomObjectType.name;
181
- const libPrefix = idl.isPrimitiveType(type) || convertedToCustomObject ? "" : conf.LibraryPrefix;
181
+ const libPrefix = this.isPrimitiveOrPrimitiveAlias(type) || convertedToCustomObject ? "" : conf.LibraryPrefix;
182
182
  return `${typePrefix}${libPrefix}${result.text}`;
183
183
  }
184
+ isPrimitiveOrPrimitiveAlias(type) {
185
+ if (!idl.isType(type))
186
+ return false;
187
+ const { resolver } = this;
188
+ while (type && idl.isReferenceType(type)) {
189
+ const resolved = resolver.resolveTypeReference(type);
190
+ if (!resolved)
191
+ return false;
192
+ if (!idl.isTypedef(resolved))
193
+ break;
194
+ type = resolved.type;
195
+ }
196
+ return idl.isPrimitiveType(type);
197
+ }
184
198
  convert(node) {
185
199
  return this.unwrap(node, this.convertNode(node));
186
200
  }
@@ -60,11 +60,11 @@ export class InteropReturnTypeConvertor {
60
60
  case idl.IDLBooleanType: return PrimitiveTypesInstance.Boolean.getText();
61
61
  case idl.IDLBigintType: return PrimitiveTypesInstance.Int64.getText();
62
62
  case idl.IDLAnyType:
63
- case idl.IDLBufferType:
64
63
  case idl.IDLThisType:
65
64
  case idl.IDLUndefinedType:
66
65
  case idl.IDLUnknownType:
67
66
  case idl.IDLVoidType: return idl.IDLVoidType.name;
67
+ case idl.IDLBufferType: return KInteropReturnBuffer; /* ArkTS can not return buffer as language object yet */
68
68
  case idl.IDLStringType: return PrimitiveTypesInstance.String.getText();
69
69
  case idl.IDLPointerType: return PrimitiveTypesInstance.NativePointer.getText();
70
70
  }
@@ -152,7 +152,7 @@ class CJMapForEachStatement {
152
152
  this.op = op;
153
153
  }
154
154
  write(writer) {
155
- writer.print(`for ((key, value) in ${this.map}) {`);
155
+ writer.print(`for ((${this.key}, ${this.value}) in ${this.map}) {`);
156
156
  writer.pushIndent();
157
157
  this.op();
158
158
  writer.popIndent();
@@ -266,7 +266,9 @@ export class CJLanguageWriter extends LanguageWriter {
266
266
  return new CJLanguageWriter(new IndentedPrinter(), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.typeForeignConvertor);
267
267
  }
268
268
  getNodeName(type) {
269
- return this.typeConvertor.convert(type);
269
+ // rework for proper namespace logic
270
+ let name = this.typeConvertor.convert(type).split('.');
271
+ return name[name.length - 1];
270
272
  }
271
273
  writeClass(name, op, superClass, interfaces, generics) {
272
274
  let extendsClause = superClass ? `${superClass}` : undefined;
@@ -417,7 +419,7 @@ export class CJLanguageWriter extends LanguageWriter {
417
419
  throw new Error(`makeClassInit`);
418
420
  }
419
421
  makeArrayInit(type, size) {
420
- return this.makeString(`ArrayList<${this.getNodeName(type.elementType[0])}>(${size !== null && size !== void 0 ? size : ''})`);
422
+ return this.makeString(`ArrayList<${this.getNodeName(type.elementType[0])}>(Int64(${size !== null && size !== void 0 ? size : ''}))`);
421
423
  }
422
424
  makeMapInit(type) {
423
425
  throw new Error(`TBD`);
@@ -491,7 +493,7 @@ export class CJLanguageWriter extends LanguageWriter {
491
493
  return this.makeString("Option.None");
492
494
  }
493
495
  makeUnwrapOptional(expression) {
494
- return new CJMatchExpression(expression, [this.makeString('Some(serializer)')], [this.makeString('serializer')], this.indentDepth());
496
+ return new CJMatchExpression(expression, [this.makeString(`Some(unwrap_value)`)], [this.makeString(`unwrap_value`)], this.indentDepth());
495
497
  }
496
498
  makeValueFromOption(value, destinationConvertor) {
497
499
  return this.makeString(`${value}`);
@@ -50,7 +50,7 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
50
50
  targetType: (writer: LanguageWriter) => string;
51
51
  }, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
52
52
  makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
53
- makeCallIsResource(value: string): LanguageExpression;
53
+ makeIsTypeCall(value: string, decl: idl.IDLInterface): LanguageExpression;
54
54
  makeEnumEntity(enumEntity: IDLEnum, isExport: boolean): LanguageStatement;
55
55
  getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
56
56
  writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
@@ -210,8 +210,8 @@ export class ETSLanguageWriter extends TSLanguageWriter {
210
210
  }
211
211
  return super.makeValueFromOption(value, destinationConvertor);
212
212
  }
213
- makeCallIsResource(value) {
214
- return this.makeString(`isResource(${value})`);
213
+ makeIsTypeCall(value, decl) {
214
+ return makeInterfaceTypeCheckerCall(value, decl.name, decl.properties.map(it => it.name), new Set(), this);
215
215
  }
216
216
  makeEnumEntity(enumEntity, isExport) {
217
217
  return new ArkTSEnumEntityStatement(enumEntity, isExport);
@@ -234,7 +234,8 @@ export class ETSLanguageWriter extends TSLanguageWriter {
234
234
  if (!idl.isEnum(decl)) {
235
235
  throwException(`Declaration type must be Enum`);
236
236
  }
237
- return this.makeCast(this.makeString(`${value}${idl.isStringEnum(decl) ? "" : ".valueOf()"}`), IDLI32Type).asString();
237
+ // ((value as Axis) as int) - in case when Axis was casted to Object in Map<Axis, Smth>
238
+ return this.makeCast(this.makeCast(this.makeString(value), convertor.idlType), IDLI32Type).asString();
238
239
  }
239
240
  makeUnionVariantCondition(convertor, valueName, valueType, type, convertorIndex, runtimeTypeIndex) {
240
241
  if (idl.isEnum(this.resolver.toDeclaration(convertor.nativeType()))) {
@@ -315,18 +316,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
315
316
  return new TSCastExpression(value, `${this.getNodeName(type)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
316
317
  }
317
318
  }
318
- const builtInInterfaceTypes = new Map([
319
- ["Resource",
320
- (writer, value) => writer.makeCallIsResource(value)],
321
- ["Object",
322
- (writer, value) => writer.makeCallIsObject(value)],
323
- ["ArrayBuffer",
324
- (writer, value) => writer.makeCallIsArrayBuffer(value)]
325
- ]);
326
319
  function makeInterfaceTypeCheckerCall(valueAccessor, interfaceName, allFields, duplicates, writer) {
327
- if (builtInInterfaceTypes.has(interfaceName)) {
328
- return builtInInterfaceTypes.get(interfaceName)(writer, valueAccessor);
329
- }
330
320
  return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(interfaceName), [writer.makeString(valueAccessor),
331
321
  ...allFields.map(it => {
332
322
  return writer.makeString(duplicates.has(it) ? "true" : "false");
@@ -364,7 +364,7 @@ export class TSLanguageWriter extends LanguageWriter {
364
364
  return this.makeAssign(receiver, undefined, this.makeString(`[${fields.map(it => `${it}!`).join(",")}]`), false);
365
365
  }
366
366
  get supportedModifiers() {
367
- return [MethodModifier.PUBLIC, MethodModifier.PRIVATE, MethodModifier.STATIC];
367
+ return [MethodModifier.PUBLIC, MethodModifier.PRIVATE, MethodModifier.PROTECTED, MethodModifier.STATIC];
368
368
  }
369
369
  get supportedFieldModifiers() {
370
370
  return [FieldModifier.PUBLIC, FieldModifier.PRIVATE, FieldModifier.PROTECTED, FieldModifier.READONLY, FieldModifier.STATIC];
@@ -8,6 +8,7 @@ export interface CoreConfiguration {
8
8
  readonly ignoreMaterialized: string[];
9
9
  readonly builderClasses: string[];
10
10
  readonly forceMaterialized: string[];
11
+ readonly forceCallback: string[];
11
12
  }
12
13
  export declare const defaultCoreConfuguration: CoreConfiguration;
13
14
  export declare function setDefaultConfiguration<T extends CoreConfiguration>(config: T): void;
@@ -22,6 +22,7 @@ export const defaultCoreConfuguration = {
22
22
  ignoreMaterialized: [],
23
23
  builderClasses: [],
24
24
  forceMaterialized: [],
25
+ forceCallback: [],
25
26
  };
26
27
  let currentConfig = defaultCoreConfuguration;
27
28
  export function setDefaultConfiguration(config) {
@@ -113,8 +113,6 @@ function toIDLInterface(file, node) {
113
113
  documentation: makeDocs(node),
114
114
  extendedAttributes: toExtendedAttributes(node.extAttrs),
115
115
  });
116
- if (result.inheritance.length && idl.isReferenceType(result.inheritance[0]))
117
- result.inheritance[0].typeArguments = extractTypeArguments(file, node.extAttrs, idl.IDLExtendedAttributes.TypeArguments);
118
116
  if (node.extAttrs.find(it => it.name === "Synthetic"))
119
117
  addSyntheticType(node.name, result);
120
118
  return result;
@@ -20,10 +20,19 @@ export declare class ETSDeclarationNameConvertor extends DeclarationNameConverto
20
20
  convertEnum(decl: idl.IDLEnum): string;
21
21
  static readonly I: ETSDeclarationNameConvertor;
22
22
  }
23
+ export declare class CJDeclarationNameConvertor extends DeclarationNameConvertor {
24
+ convertInterface(decl: idl.IDLInterface): string;
25
+ convertEnum(decl: idl.IDLEnum): string;
26
+ static readonly I: CJDeclarationNameConvertor;
27
+ }
23
28
  export declare class ETSFeatureNameConvertor extends DeclarationNameConvertor {
24
29
  convertEnum(decl: idl.IDLEnum): string;
25
30
  static readonly I: ETSFeatureNameConvertor;
26
31
  }
32
+ export declare class CJFeatureNameConvertor extends DeclarationNameConvertor {
33
+ convertEnum(decl: idl.IDLEnum): string;
34
+ static readonly I: CJFeatureNameConvertor;
35
+ }
27
36
  export declare function createDeclarationNameConvertor(language: Language): DeclarationNameConvertor;
28
37
  export declare function createFeatureNameConvertor(language: Language): DeclarationNameConvertor;
29
38
  //# sourceMappingURL=IdlNameConvertor.d.ts.map
@@ -57,6 +57,15 @@ export class ETSDeclarationNameConvertor extends DeclarationNameConvertor {
57
57
  }
58
58
  }
59
59
  ETSDeclarationNameConvertor.I = new ETSDeclarationNameConvertor();
60
+ export class CJDeclarationNameConvertor extends DeclarationNameConvertor {
61
+ convertInterface(decl) {
62
+ return decl.name;
63
+ }
64
+ convertEnum(decl) {
65
+ return decl.name;
66
+ }
67
+ }
68
+ CJDeclarationNameConvertor.I = new CJDeclarationNameConvertor();
60
69
  export class ETSFeatureNameConvertor extends DeclarationNameConvertor {
61
70
  convertEnum(decl) {
62
71
  const namespace = idl.getNamespacesPathFor(decl).map(it => it.name);
@@ -66,13 +75,19 @@ export class ETSFeatureNameConvertor extends DeclarationNameConvertor {
66
75
  }
67
76
  }
68
77
  ETSFeatureNameConvertor.I = new ETSFeatureNameConvertor();
78
+ export class CJFeatureNameConvertor extends DeclarationNameConvertor {
79
+ convertEnum(decl) {
80
+ return decl.name;
81
+ }
82
+ }
83
+ CJFeatureNameConvertor.I = new CJFeatureNameConvertor();
69
84
  export function createDeclarationNameConvertor(language) {
70
85
  switch (language) {
71
86
  case Language.ARKTS: return ETSDeclarationNameConvertor.I;
72
87
  case Language.JAVA:
73
88
  case Language.CPP:
74
- case Language.CJ:
75
89
  case Language.TS: return DeclarationNameConvertor.I;
90
+ case Language.CJ: CJDeclarationNameConvertor.I;
76
91
  default: throw new Error(`Language ${language.toString()} is not supported`);
77
92
  }
78
93
  }
@@ -81,8 +96,8 @@ export function createFeatureNameConvertor(language) {
81
96
  case Language.ARKTS: return ETSFeatureNameConvertor.I;
82
97
  case Language.JAVA:
83
98
  case Language.CPP:
84
- case Language.CJ:
85
99
  case Language.TS: return TSFeatureNameConvertor.I;
100
+ case Language.CJ: return CJFeatureNameConvertor.I;
86
101
  default: throw new Error(`Language ${language.toString()} is not supported`);
87
102
  }
88
103
  }
@@ -24,6 +24,9 @@ export function isMaterialized(declaration, resolver) {
24
24
  if (declaration.name == forceMaterialized)
25
25
  return true;
26
26
  }
27
+ if (generatorConfiguration().forceCallback.includes(declaration.name)) {
28
+ return false;
29
+ }
27
30
  for (const ignore of generatorConfiguration().ignoreMaterialized) {
28
31
  if (declaration.name.endsWith(ignore))
29
32
  return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlizer/core",
3
- "version": "2.0.38",
3
+ "version": "2.0.40",
4
4
  "description": "",
5
5
  "types": "build/lib/src/index.d.ts",
6
6
  "exports": {
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Robin Berjon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.