@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.
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +0 -1
- package/build/lib/src/LanguageWriters/LanguageWriter.js +28 -21
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +3 -2
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +1 -14
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +2 -44
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +9 -2
- package/build/lib/src/transformers/GenericTransformer.js +4 -4
- package/build/lib/src/util.d.ts +1 -0
- package/build/lib/src/util.js +3 -0
- package/package.json +1 -1
|
@@ -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
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
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
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
18
|
+
import { IDLThisType } from '../../idl';
|
|
19
19
|
import { AggregateConvertor, CustomTypeConvertor, InterfaceConvertor, MaterializedClassConvertor } from "../ArgConvertors";
|
|
20
20
|
import * as idl from '../../idl';
|
|
21
|
-
import {
|
|
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.
|
|
450
|
-
|
|
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 &&
|
|
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((
|
|
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)}<${((
|
|
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(", ")}>`;
|
package/build/lib/src/util.d.ts
CHANGED
|
@@ -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;
|
package/build/lib/src/util.js
CHANGED
|
@@ -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");
|