@idlizer/core 2.1.10-arktscgen-6 → 2.1.10-arktscgen-7

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.
@@ -123,7 +123,6 @@ export declare class TsEnumEntityStatement implements LanguageStatement {
123
123
  isDeclare: boolean;
124
124
  });
125
125
  write(writer: LanguageWriter): void;
126
- private maybeQuoted;
127
126
  }
128
127
  export declare class ReturnStatement implements LanguageStatement {
129
128
  expression?: LanguageExpression | undefined;
@@ -12,10 +12,12 @@
12
12
  * See the License for the specific language governing permissions and
13
13
  * limitations under the License.
14
14
  */
15
+ import { Language } from "../Language";
15
16
  import * as idl from "../idl";
16
17
  import * as fs from "fs";
17
18
  import { RuntimeType } from "./common";
18
- import { withInsideInstanceof } from "./nameConvertor";
19
+ import { convertDeclaration, withInsideInstanceof } from "./nameConvertor";
20
+ import { createDeclarationNameConvertor } from "../peer-generation/idl/IdlNameConvertor";
19
21
  export class TernaryExpression {
20
22
  constructor(condition, trueExpression, falseExpression) {
21
23
  this.condition = condition;
@@ -235,28 +237,33 @@ export class TsEnumEntityStatement {
235
237
  this.options = options;
236
238
  }
237
239
  write(writer) {
238
- // writer.print(this.enumEntity.comment)
239
- writer.print(`${this.options.isExport ? "export " : ""}${this.options.isDeclare ? "declare " : ""}enum ${this.enumEntity.name} {`);
240
- writer.pushIndent();
240
+ let enumName = convertDeclaration(createDeclarationNameConvertor(Language.ARKTS), this.enumEntity);
241
+ enumName = enumName.split('.').at(-1);
242
+ const correctStyleNames = [];
243
+ const originalStyleNames = [];
241
244
  this.enumEntity.elements.forEach((member, index) => {
242
- // writer.print(member.comment)
243
- const initValue = member.initializer
244
- ? ` = ${this.maybeQuoted(member.initializer)}` : ``;
245
- writer.print(`${member.name}${initValue},`);
246
- let originalName = idl.getExtAttribute(member, idl.IDLExtendedAttributes.OriginalEnumMemberName);
247
- if (originalName) {
248
- const initValue = ` = ${member.name}`;
249
- writer.print(`${originalName}${initValue},`);
250
- }
245
+ var _a;
246
+ const initText = (_a = member.initializer) !== null && _a !== void 0 ? _a : index;
247
+ const isTypeString = typeof initText !== "number";
248
+ const originalName = idl.getExtAttribute(member, idl.IDLExtendedAttributes.OriginalEnumMemberName);
249
+ correctStyleNames.push({
250
+ name: originalName ? member.name : `${member.name}_DUMMY`,
251
+ alias: undefined,
252
+ stringId: isTypeString ? initText : undefined,
253
+ numberId: initText
254
+ });
255
+ originalStyleNames.push({
256
+ name: originalName !== null && originalName !== void 0 ? originalName : member.name,
257
+ alias: undefined,
258
+ stringId: isTypeString ? initText : undefined,
259
+ numberId: initText
260
+ });
251
261
  });
252
- writer.popIndent();
253
- writer.print(`}`);
254
- }
255
- maybeQuoted(value) {
256
- if (typeof value == "string")
257
- return `"${value}"`;
258
- else
259
- return `${value}`;
262
+ let members = originalStyleNames;
263
+ if (this.enumEntity.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
264
+ members = members.concat(correctStyleNames);
265
+ }
266
+ writer.writeEnum(enumName, members, { isExport: this.options.isExport, isDeclare: this.options.isDeclare });
260
267
  }
261
268
  }
262
269
  export class ReturnStatement {
@@ -17,7 +17,7 @@ import { Language } from '../../Language';
17
17
  import { isTopLevelConflicted } from '../../peer-generation/ConflictingDeclarations';
18
18
  import { isDeclaredInCurrentFile, LayoutNodeRole } from '../../peer-generation/LayoutManager';
19
19
  import { maybeRestoreGenerics } from '../../transformers/GenericTransformer';
20
- import { convertNode, convertType, isInsideInstanceof } from '../nameConvertor';
20
+ import { convertNode, convertType, isInsideInstanceof, withInsideInstanceof } from '../nameConvertor';
21
21
  export class TSTypeNameConvertor {
22
22
  constructor(library) {
23
23
  this.library = library;
@@ -142,7 +142,8 @@ export class TSTypeNameConvertor {
142
142
  }
143
143
  let typeSpec = type.name;
144
144
  let typeArgs = !isInsideInstanceof() || decl && idl.isCallback(decl)
145
- ? (_b = (_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.map(it => this.convert(it))) !== null && _b !== void 0 ? _b : []
145
+ // there is a bug with panda - if we're inside callback generics, we need to expand other generics too. So withInsideInstanceof is used
146
+ ? (_b = (_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.map(it => withInsideInstanceof(false, () => this.convert(it)))) !== null && _b !== void 0 ? _b : []
146
147
  : [];
147
148
  if (typeSpec === `Optional`)
148
149
  return `${typeArgs} | undefined`;
@@ -1,7 +1,7 @@
1
1
  import { IndentedPrinter } from "../../IndentedPrinter";
2
2
  import { LambdaExpression, LanguageExpression, LanguageStatement, LanguageWriter, MakeAssignOptions, MakeCastOptions, Method, MethodModifier, MethodSignature } from "../LanguageWriter";
3
3
  import { TSLanguageWriter } from "./TsLanguageWriter";
4
- import { IDLEnum, IDLType } from '../../idl';
4
+ import { IDLType } from '../../idl';
5
5
  import { ArgConvertor } from "../ArgConvertors";
6
6
  import * as idl from '../../idl';
7
7
  import { IdlNameConvertor } from "../nameConvertor";
@@ -23,15 +23,6 @@ export declare class EtsAssignStatement implements LanguageStatement {
23
23
  constructor(variableName: string, type: IDLType | undefined, expression: LanguageExpression, isDeclared?: boolean, isConst?: boolean, options?: MakeAssignOptions | undefined);
24
24
  write(writer: LanguageWriter): void;
25
25
  }
26
- export declare class ArkTSEnumEntityStatement implements LanguageStatement {
27
- private readonly enumEntity;
28
- private readonly options;
29
- constructor(enumEntity: IDLEnum, options: {
30
- isExport: boolean;
31
- isDeclare: boolean;
32
- });
33
- write(writer: LanguageWriter): void;
34
- }
35
26
  export declare class ETSLambdaExpression extends LambdaExpression {
36
27
  private convertor;
37
28
  constructor(writer: LanguageWriter, convertor: IdlNameConvertor, signature: MethodSignature, resolver: ReferenceResolver, body?: LanguageStatement[]);
@@ -60,10 +51,6 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
60
51
  targetType: (writer: LanguageWriter) => string;
61
52
  }, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
62
53
  makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
63
- makeEnumEntity(enumEntity: IDLEnum, options: {
64
- isExport: boolean;
65
- isDeclare?: boolean;
66
- }): LanguageStatement;
67
54
  writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
68
55
  isQuickType(type: IDLType): boolean;
69
56
  writeNativeMethodDeclaration(method: Method): void;
@@ -15,11 +15,10 @@
15
15
  import { IndentedPrinter } from "../../IndentedPrinter";
16
16
  import { BlockStatement, LambdaExpression, MethodModifier } from "../LanguageWriter";
17
17
  import { TSCastExpression, TSLanguageWriter } from "./TsLanguageWriter";
18
- import { getExtAttribute, IDLThisType } from '../../idl';
18
+ import { IDLThisType } from '../../idl';
19
19
  import { AggregateConvertor, CustomTypeConvertor, InterfaceConvertor, MaterializedClassConvertor } from "../ArgConvertors";
20
20
  import * as idl from '../../idl';
21
- import { convertDeclaration, withInsideInstanceof } from "../nameConvertor";
22
- import { createDeclarationNameConvertor } from "../../peer-generation/idl/IdlNameConvertor";
21
+ import { withInsideInstanceof } from "../nameConvertor";
23
22
  import { Language } from "../../Language";
24
23
  ////////////////////////////////////////////////////////////////
25
24
  // EXPRESSIONS //
@@ -82,41 +81,6 @@ class ArkTSMapForEachStatement {
82
81
  writer.print(`}`);
83
82
  }
84
83
  }
85
- export class ArkTSEnumEntityStatement {
86
- constructor(enumEntity, options) {
87
- this.enumEntity = enumEntity;
88
- this.options = options;
89
- }
90
- write(writer) {
91
- let enumName = convertDeclaration(createDeclarationNameConvertor(Language.ARKTS), this.enumEntity);
92
- enumName = enumName.split('.').at(-1);
93
- const correctStyleNames = [];
94
- const originalStyleNames = [];
95
- this.enumEntity.elements.forEach((member, index) => {
96
- var _a;
97
- const initText = (_a = member.initializer) !== null && _a !== void 0 ? _a : index;
98
- const isTypeString = typeof initText !== "number";
99
- const originalName = getExtAttribute(member, idl.IDLExtendedAttributes.OriginalEnumMemberName);
100
- correctStyleNames.push({
101
- name: originalName ? member.name : `${member.name}_DUMMY`,
102
- alias: undefined,
103
- stringId: isTypeString ? initText : undefined,
104
- numberId: initText
105
- });
106
- originalStyleNames.push({
107
- name: originalName !== null && originalName !== void 0 ? originalName : member.name,
108
- alias: undefined,
109
- stringId: isTypeString ? initText : undefined,
110
- numberId: initText
111
- });
112
- });
113
- let members = originalStyleNames;
114
- if (this.enumEntity.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
115
- members = members.concat(correctStyleNames);
116
- }
117
- writer.writeEnum(enumName, members, { isExport: this.options.isExport, isDeclare: this.options.isDeclare });
118
- }
119
- }
120
84
  export class ETSLambdaExpression extends LambdaExpression {
121
85
  constructor(writer, convertor, signature, resolver, body) {
122
86
  super(writer, signature, resolver, body);
@@ -224,12 +188,6 @@ export class ETSLanguageWriter extends TSLanguageWriter {
224
188
  }
225
189
  return super.makeValueFromOption(value, destinationConvertor);
226
190
  }
227
- makeEnumEntity(enumEntity, options) {
228
- return new ArkTSEnumEntityStatement(enumEntity, {
229
- isExport: options === null || options === void 0 ? void 0 : options.isExport,
230
- isDeclare: !!(options === null || options === void 0 ? void 0 : options.isDeclare),
231
- });
232
- }
233
191
  writeMethodCall(receiver, method, params, nullable = false) {
234
192
  // ArkTS does not support - 'this.?'
235
193
  super.writeMethodCall(receiver, method, params, nullable && receiver !== "this");
@@ -446,8 +446,15 @@ export class TSLanguageWriter extends LanguageWriter {
446
446
  }
447
447
  i32FromEnum(value, enumEntry) {
448
448
  const enumName = this.getNodeName(enumEntry);
449
- if (idl.isEnum(enumEntry) && idl.isStringEnum(enumEntry)) {
450
- return this.makeString(`Object.values(${enumName}).indexOf(${value.asString()})`);
449
+ if (idl.isStringEnum(enumEntry)) {
450
+ let extractorStatement = this.makeString(`Object.values(${enumName}).indexOf(${value.asString()})`);
451
+ if (enumEntry.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
452
+ extractorStatement = this.makeNaryOp('%', [
453
+ extractorStatement,
454
+ this.makeString(enumEntry.elements.length.toString())
455
+ ]);
456
+ }
457
+ return extractorStatement;
451
458
  }
452
459
  return this.makeString(`${value.asString()}.valueOf()`);
453
460
  }
@@ -80,7 +80,7 @@ class DefaultGenericsTransformer extends IdlTransformer {
80
80
  this.resolver = resolver;
81
81
  }
82
82
  visit(node) {
83
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
83
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
84
84
  if (idl.isReferenceType(node)) {
85
85
  const decl = this.resolver.resolveTypeReference(node);
86
86
  if (!decl) {
@@ -91,14 +91,14 @@ class DefaultGenericsTransformer extends IdlTransformer {
91
91
  return this.visitEachChild(node);
92
92
  }
93
93
  if (((_c = (_b = decl.typeParameters) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > ((_e = (_d = node.typeArguments) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0)) {
94
- const defaults = (_h = (_g = (_f = decl.extendedAttributes) === null || _f === void 0 ? void 0 : _f.find(it => it.name === idl.IDLExtendedAttributes.TypeParametersDefaults)) === null || _g === void 0 ? void 0 : _g.typesValue) !== null && _h !== void 0 ? _h : [];
94
+ const defaults = (_j = (_h = (_g = (_f = decl.extendedAttributes) === null || _f === void 0 ? void 0 : _f.find(it => it.name === idl.IDLExtendedAttributes.TypeParametersDefaults)) === null || _g === void 0 ? void 0 : _g.typesValue) === null || _h === void 0 ? void 0 : _h.slice()) !== null && _j !== void 0 ? _j : [];
95
95
  while (defaults.length < decl.typeParameters.length) {
96
96
  defaults.unshift(undefined);
97
97
  }
98
- const typeArguments = Array.from((_j = node.typeArguments) !== null && _j !== void 0 ? _j : []);
98
+ const typeArguments = Array.from((_k = node.typeArguments) !== null && _k !== void 0 ? _k : []);
99
99
  while (decl.typeParameters.length > typeArguments.length) {
100
100
  if (defaults[typeArguments.length] === undefined) {
101
- const declarationDetails = `${idl.getFQName(decl)}<${((_k = decl.typeParameters) !== null && _k !== void 0 ? _k : [])
101
+ const declarationDetails = `${idl.getFQName(decl)}<${((_l = decl.typeParameters) !== null && _l !== void 0 ? _l : [])
102
102
  .map((it, index) => `${it}${defaults[index] ? '=' + defaults[index] : ''}`)
103
103
  .join(', ')}>`;
104
104
  const referenceDetails = `${node.name}<${typeArguments.map(it => idl.printType(it)).join(", ")}>`;
@@ -18,6 +18,7 @@ export declare function snakeCaseToCamelCase(input: string, tailToLowerCase?: bo
18
18
  export declare function toCamelCase(input: string): string;
19
19
  export declare function isUpperCase(s: string): boolean;
20
20
  export declare function camelCaseToUpperSnakeCase(input: string): string;
21
+ export declare function camelCaseToLowerSnakeCase(input: string): string;
21
22
  export declare function snakeToLowCamelNode(node: idl.IDLEntry): string;
22
23
  export declare function renameDtsToPeer(fileName: string, language: Language, withFileExtension?: boolean): string;
23
24
  export declare function renameDtsToComponent(fileName: string, language: Language, withFileExtension?: boolean): string;
@@ -122,6 +122,9 @@ export function camelCaseToUpperSnakeCase(input) {
122
122
  .map(s => toUpperSnakeCase(s))
123
123
  .join('_');
124
124
  }
125
+ export function camelCaseToLowerSnakeCase(input) {
126
+ return camelCaseToUpperSnakeCase(input).toLowerCase();
127
+ }
125
128
  export function snakeToLowCamelNode(node) {
126
129
  if (!node.fileName) {
127
130
  throw new Error("Invalid Convert");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlizer/core",
3
- "version": "2.1.10-arktscgen-6",
3
+ "version": "2.1.10-arktscgen-7",
4
4
  "description": "",
5
5
  "types": "build/lib/src/index.d.ts",
6
6
  "exports": {