@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.
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +3 -3
- package/build/lib/src/LanguageWriters/ArgConvertors.js +36 -30
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +26 -13
- package/build/lib/src/LanguageWriters/LanguageWriter.js +26 -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 +20 -12
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +7 -17
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +9 -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 +47 -28
- 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 +12 -9
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +10 -37
- 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 +9 -9
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +15 -24
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +14 -8
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +18 -18
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +4 -6
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +15 -14
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +7 -5
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +22 -43
- package/build/lib/src/LibraryInterface.d.ts +1 -4
- package/build/lib/src/config.d.ts +206 -66
- package/build/lib/src/config.js +7 -3
- 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 +30 -18
- 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 +25 -17
- package/build/lib/src/idl.js +363 -109
- package/build/lib/src/idlize.d.ts +2 -1
- package/build/lib/src/idlize.js +82 -26
- package/build/lib/src/index.d.ts +4 -3
- package/build/lib/src/index.js +3 -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 -7
- package/build/lib/src/peer-generation/PeerLibrary.js +129 -65
- 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/isMaterialized.js +25 -8
- 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 +6 -0
- package/build/lib/src/util.js +33 -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/LICENSE +21 -0
- package/webidl2.js/README.md +827 -0
- package/webidl2.js/dist/package.json +3 -0
- package/webidl2.js/dist/webidl2.js +35 -7
|
@@ -20,7 +20,6 @@ import { AssignStatement, BlockStatement, CheckOptionalStatement, ExpressionStat
|
|
|
20
20
|
import { RuntimeType } from "../common";
|
|
21
21
|
import { rightmostIndexOf, throwException } from "../../util";
|
|
22
22
|
import { TSKeywords } from '../../languageSpecificKeywords';
|
|
23
|
-
import { isStringEnumType } from '../../peer-generation/isEnumType';
|
|
24
23
|
////////////////////////////////////////////////////////////////
|
|
25
24
|
// EXPRESSIONS //
|
|
26
25
|
////////////////////////////////////////////////////////////////
|
|
@@ -136,14 +135,14 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
136
135
|
return new TSLanguageWriter(new IndentedPrinter(), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.language);
|
|
137
136
|
}
|
|
138
137
|
getNodeName(type) {
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
138
|
+
// another stub. Bad one.
|
|
139
|
+
// I hope that I will rewrite LWs soon
|
|
140
|
+
if (idl.isType(type) && idl.isReferenceType(type)) {
|
|
141
|
+
if (type.name.startsWith('%TEXT%:')) {
|
|
142
|
+
return type.name.substring(7);
|
|
143
|
+
}
|
|
145
144
|
}
|
|
146
|
-
return
|
|
145
|
+
return this.typeConvertor.convert(type);
|
|
147
146
|
}
|
|
148
147
|
writeClass(name, op, superClass, interfaces, generics, isDeclared, isAbstract) {
|
|
149
148
|
let extendsClause = superClass ? ` extends ${superClass}` : '';
|
|
@@ -185,8 +184,8 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
185
184
|
const returnType = this.getNodeName(signature.returnType);
|
|
186
185
|
return `export function ${name}(${args.join(", ")}): ${returnType}`;
|
|
187
186
|
}
|
|
188
|
-
writeEnum(name, members) {
|
|
189
|
-
this.printer.print(
|
|
187
|
+
writeEnum(name, members, options) {
|
|
188
|
+
this.printer.print(`${options.isExport ? "export " : ""}${options.isDeclare ? "declare " : ""}enum ${name} {`);
|
|
190
189
|
this.printer.pushIndent();
|
|
191
190
|
for (const [index, member] of members.entries()) {
|
|
192
191
|
let value;
|
|
@@ -274,7 +273,6 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
274
273
|
this.print(`export const ${constName}: ${this.getNodeName(constType)}${constVal ? ' = ' + constVal : ''}`);
|
|
275
274
|
}
|
|
276
275
|
writeDeclaration(name, signature, needReturn, needBracket, modifiers, generics) {
|
|
277
|
-
var _a;
|
|
278
276
|
let prefix = !modifiers ? undefined : this.supportedModifiers
|
|
279
277
|
.filter(it => modifiers.includes(it))
|
|
280
278
|
.map(it => this.mapMethodModifier(it)).join(" ");
|
|
@@ -290,19 +288,8 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
290
288
|
}
|
|
291
289
|
prefix = prefix ? prefix.trim() + " " : "";
|
|
292
290
|
const typeParams = (generics === null || generics === void 0 ? void 0 : generics.length) ? `<${generics.join(", ")}>` : "";
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const canBeOptional = [];
|
|
296
|
-
for (let i = signature.args.length - 1; i >= 0; --i) {
|
|
297
|
-
const prevCanBeOptional = (_a = canBeOptional.at(-1)) !== null && _a !== void 0 ? _a : true;
|
|
298
|
-
const curr = signature.args[i];
|
|
299
|
-
const result = prevCanBeOptional && (idl.isOptionalType(curr) || signature.argDefault(i) !== undefined);
|
|
300
|
-
canBeOptional.push(result);
|
|
301
|
-
}
|
|
302
|
-
canBeOptional.reverse();
|
|
303
|
-
const isOptional = signature.args.map((it, i) => idl.isOptionalType(it) && canBeOptional[i] && !isSetter);
|
|
304
|
-
const normalizedArgs = signature.args.map((it, i) => idl.isOptionalType(it) && isOptional[i] ? idl.maybeUnwrapOptionalType(it) : it);
|
|
305
|
-
this.printer.print(`${prefix}${name}${typeParams}(${normalizedArgs.map((it, index) => `${this.escapeKeyword(signature.argName(index))}${isOptional[index] ? "?" : ""}: ${this.getNodeName(it)}${signature.argDefault(index) ? ' = ' + signature.argDefault(index) : ""}`).join(", ")})${needReturn ? ": " + this.getNodeName(signature.returnType) : ""}${needBracket ? " {" : ""}`);
|
|
291
|
+
const normalizedArgs = signature.args.map((it, i) => idl.isOptionalType(it) && signature.isArgOptional(i) ? idl.maybeUnwrapOptionalType(it) : it);
|
|
292
|
+
this.printer.print(`${prefix}${name}${typeParams}(${normalizedArgs.map((it, index) => `${this.escapeKeyword(signature.argName(index))}${signature.isArgOptional(index) ? "?" : ``}: ${this.getNodeName(it)}${signature.argDefault(index) ? ' = ' + signature.argDefault(index) : ""}`).join(", ")})${needReturn ? ": " + this.getNodeName(signature.returnType) : ""}${needBracket ? " {" : ""}`);
|
|
306
293
|
}
|
|
307
294
|
makeNull() {
|
|
308
295
|
return new StringExpression("undefined");
|
|
@@ -334,9 +321,9 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
334
321
|
writePrintLog(message) {
|
|
335
322
|
this.print(`console.log("${message}")`);
|
|
336
323
|
}
|
|
337
|
-
makeCast(value,
|
|
324
|
+
makeCast(value, node, options) {
|
|
338
325
|
var _a;
|
|
339
|
-
return new TSCastExpression(value, this.getNodeName(
|
|
326
|
+
return new TSCastExpression(value, this.getNodeName(node), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
340
327
|
}
|
|
341
328
|
typeInstanceOf(type, value, members) {
|
|
342
329
|
if (idl.isInterface(type)) {
|
|
@@ -399,27 +386,19 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
399
386
|
get supportedFieldModifiers() {
|
|
400
387
|
return [FieldModifier.PUBLIC, FieldModifier.PRIVATE, FieldModifier.PROTECTED, FieldModifier.READONLY, FieldModifier.STATIC];
|
|
401
388
|
}
|
|
402
|
-
|
|
403
|
-
const enumName =
|
|
389
|
+
enumFromI32(value, enumEntry) {
|
|
390
|
+
const enumName = enumEntry.name;
|
|
404
391
|
const ordinal = value.asString();
|
|
405
|
-
return
|
|
392
|
+
return idl.isStringEnum(enumEntry)
|
|
406
393
|
? this.makeString(`Object.values(${enumName})[${ordinal}]`)
|
|
407
|
-
: this.makeString(
|
|
394
|
+
: this.makeString(ordinal);
|
|
408
395
|
}
|
|
409
|
-
|
|
410
|
-
const enumName =
|
|
411
|
-
|
|
412
|
-
if (decl && idl.isEnum(decl) && idl.isStringEnum(decl)) {
|
|
396
|
+
i32FromEnum(value, enumEntry) {
|
|
397
|
+
const enumName = this.getNodeName(enumEntry);
|
|
398
|
+
if (idl.isEnum(enumEntry) && idl.isStringEnum(enumEntry)) {
|
|
413
399
|
return this.makeString(`Object.values(${enumName}).indexOf(${value.asString()})`);
|
|
414
400
|
}
|
|
415
|
-
return value;
|
|
416
|
-
}
|
|
417
|
-
makeEnumCast(enumEntry, param) {
|
|
418
|
-
// Take the ordinal value if Enum is a string, and valueOf when it is an integer
|
|
419
|
-
// Enum.valueOf() - compatible with ArkTS/TS
|
|
420
|
-
return idl.isStringEnum(enumEntry)
|
|
421
|
-
? this.ordinalFromEnum(this.makeString(param), idl.createReferenceType(enumEntry)).asString()
|
|
422
|
-
: `${param}.valueOf()`;
|
|
401
|
+
return this.makeString(`${value.asString()}.valueOf()`);
|
|
423
402
|
}
|
|
424
403
|
castToBoolean(value) { return `+${value}`; }
|
|
425
404
|
makeCallIsObject(value) {
|
|
@@ -437,7 +416,7 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
437
416
|
throwException(`The type reference ${decl === null || decl === void 0 ? void 0 : decl.name} must be Enum`);
|
|
438
417
|
}
|
|
439
418
|
const ordinal = idl.isStringEnum(decl)
|
|
440
|
-
? this.
|
|
419
|
+
? this.i32FromEnum(this.makeCast(this.makeString(this.getObjectAccessor(convertor, value)), convertor.idlType), decl)
|
|
441
420
|
: this.makeUnionVariantCast(this.getObjectAccessor(convertor, value), this.getNodeName(idl.IDLI32Type), convertor, index);
|
|
442
421
|
const { low, high } = idl.extremumOfOrdinals(decl);
|
|
443
422
|
return this.discriminatorFromExpressions(value, convertor.runtimeTypes[0], [
|
|
@@ -3,12 +3,9 @@ import { Language } from "./Language";
|
|
|
3
3
|
import { IdlNameConvertor } from "./LanguageWriters";
|
|
4
4
|
import { ArgConvertor } from "./LanguageWriters/ArgConvertors";
|
|
5
5
|
import { ReferenceResolver } from "./peer-generation/ReferenceResolver";
|
|
6
|
-
export interface LibraryFileInterface {
|
|
7
|
-
get entries(): idl.IDLEntry[];
|
|
8
|
-
}
|
|
9
6
|
export interface LibraryInterface extends ReferenceResolver {
|
|
10
7
|
language: Language;
|
|
11
|
-
get files():
|
|
8
|
+
get files(): idl.IDLFile[];
|
|
12
9
|
typeConvertor(param: string, type: idl.IDLType, isOptionalParam?: boolean): ArgConvertor;
|
|
13
10
|
declarationConvertor(param: string, type: idl.IDLReferenceType, declaration: idl.IDLEntry | undefined): ArgConvertor;
|
|
14
11
|
getInteropName(node: idl.IDLNode): string;
|