@idlizer/core 2.0.15
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/IndentedPrinter.d.ts +28 -0
- package/build/lib/src/IndentedPrinter.js +81 -0
- package/build/lib/src/Language.d.ts +15 -0
- package/build/lib/src/Language.js +42 -0
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +318 -0
- package/build/lib/src/LanguageWriters/ArgConvertors.js +1015 -0
- package/build/lib/src/LanguageWriters/InteropConvertor.d.ts +36 -0
- package/build/lib/src/LanguageWriters/InteropConvertor.js +174 -0
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +386 -0
- package/build/lib/src/LanguageWriters/LanguageWriter.js +746 -0
- package/build/lib/src/LanguageWriters/common.d.ts +17 -0
- package/build/lib/src/LanguageWriters/common.js +33 -0
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +8 -0
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +35 -0
- package/build/lib/src/LanguageWriters/index.d.ts +3 -0
- package/build/lib/src/LanguageWriters/index.js +3 -0
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +28 -0
- package/build/lib/src/LanguageWriters/nameConvertor.js +61 -0
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +147 -0
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +578 -0
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +46 -0
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.js +121 -0
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +116 -0
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +472 -0
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +72 -0
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +329 -0
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +83 -0
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +275 -0
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +93 -0
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +390 -0
- package/build/lib/src/LibraryInterface.d.ts +21 -0
- package/build/lib/src/LibraryInterface.js +2 -0
- package/build/lib/src/config.d.ts +8 -0
- package/build/lib/src/config.js +20 -0
- package/build/lib/src/from-idl/DtsPrinter.d.ts +35 -0
- package/build/lib/src/from-idl/DtsPrinter.js +375 -0
- package/build/lib/src/from-idl/common.d.ts +5 -0
- package/build/lib/src/from-idl/common.js +83 -0
- package/build/lib/src/from-idl/deserialize.d.ts +9 -0
- package/build/lib/src/from-idl/deserialize.js +384 -0
- package/build/lib/src/from-idl/toString.d.ts +2 -0
- package/build/lib/src/from-idl/toString.js +18 -0
- package/build/lib/src/from-idl/webidl2-utils.d.ts +20 -0
- package/build/lib/src/from-idl/webidl2-utils.js +84 -0
- package/build/lib/src/idl.d.ts +404 -0
- package/build/lib/src/idl.js +1015 -0
- package/build/lib/src/idlize.d.ts +4 -0
- package/build/lib/src/idlize.js +52 -0
- package/build/lib/src/index.d.ts +34 -0
- package/build/lib/src/index.js +48 -0
- package/build/lib/src/inheritance.d.ts +16 -0
- package/build/lib/src/inheritance.js +76 -0
- package/build/lib/src/languageSpecificKeywords.d.ts +5 -0
- package/build/lib/src/languageSpecificKeywords.js +51 -0
- package/build/lib/src/library.d.ts +67 -0
- package/build/lib/src/library.js +190 -0
- package/build/lib/src/options.d.ts +11 -0
- package/build/lib/src/options.js +16 -0
- package/build/lib/src/peer-generation/PrimitiveType.d.ts +24 -0
- package/build/lib/src/peer-generation/PrimitiveType.js +52 -0
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +9 -0
- package/build/lib/src/peer-generation/ReferenceResolver.js +37 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +28 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +82 -0
- package/build/lib/src/peer-generation/idl/common.d.ts +9 -0
- package/build/lib/src/peer-generation/idl/common.js +70 -0
- package/build/lib/src/peer-generation/unions.d.ts +29 -0
- package/build/lib/src/peer-generation/unions.js +111 -0
- package/build/lib/src/rand_utils.d.ts +6 -0
- package/build/lib/src/rand_utils.js +100 -0
- package/build/lib/src/util.d.ts +75 -0
- package/build/lib/src/util.js +622 -0
- package/package.json +49 -0
- 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 +4547 -0
- package/webidl2.js/package.json +55 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as idl from '../idl';
|
|
2
|
+
import { IdlNameConvertor, NodeConvertor } from "./nameConvertor";
|
|
3
|
+
import { ReferenceResolver } from "../peer-generation/ReferenceResolver";
|
|
4
|
+
export interface ConvertResult {
|
|
5
|
+
text: string;
|
|
6
|
+
noPrefix: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class InteropConvertor implements NodeConvertor<ConvertResult> {
|
|
9
|
+
protected resolver: ReferenceResolver;
|
|
10
|
+
constructor(resolver: ReferenceResolver);
|
|
11
|
+
private make;
|
|
12
|
+
convertNode(node: idl.IDLNode): ConvertResult;
|
|
13
|
+
convertNamespace(node: idl.IDLNamespace): ConvertResult;
|
|
14
|
+
convertInterface(node: idl.IDLInterface): ConvertResult;
|
|
15
|
+
convertEnum(node: idl.IDLEnum): ConvertResult;
|
|
16
|
+
convertTypedef(node: idl.IDLTypedef): ConvertResult;
|
|
17
|
+
convertCallback(node: idl.IDLCallback): ConvertResult;
|
|
18
|
+
convertMethod(node: idl.IDLMethod): ConvertResult;
|
|
19
|
+
convertConstant(node: idl.IDLConstant): ConvertResult;
|
|
20
|
+
convertOptional(type: idl.IDLOptionalType): ConvertResult;
|
|
21
|
+
convertUnion(type: idl.IDLUnionType): ConvertResult;
|
|
22
|
+
convertContainer(type: idl.IDLContainerType): ConvertResult;
|
|
23
|
+
convertImport(type: idl.IDLReferenceType, _: string): ConvertResult;
|
|
24
|
+
convertTypeReference(type: idl.IDLReferenceType): ConvertResult;
|
|
25
|
+
convertTypeParameter(type: idl.IDLTypeParameterType): ConvertResult;
|
|
26
|
+
convertPrimitiveType(type: idl.IDLPrimitiveType): ConvertResult;
|
|
27
|
+
private enumName;
|
|
28
|
+
private computeTargetTypeLiteralName;
|
|
29
|
+
}
|
|
30
|
+
export declare class InteropNameConvertor implements IdlNameConvertor {
|
|
31
|
+
protected resolver: ReferenceResolver;
|
|
32
|
+
private readonly interopConvertor;
|
|
33
|
+
constructor(resolver: ReferenceResolver);
|
|
34
|
+
convert(node: idl.IDLNode): string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=InteropConvertor.d.ts.map
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025 Huawei Device Co., Ltd.
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
import * as idl from '../idl';
|
|
16
|
+
import { convertNode } from "./nameConvertor";
|
|
17
|
+
import { generatorConfiguration } from '../config';
|
|
18
|
+
import { capitalize } from '../util';
|
|
19
|
+
import { qualifiedName } from '../peer-generation/idl/common';
|
|
20
|
+
import { maybeTransformManagedCallback } from './ArgConvertors';
|
|
21
|
+
export class InteropConvertor {
|
|
22
|
+
constructor(resolver) {
|
|
23
|
+
this.resolver = resolver;
|
|
24
|
+
}
|
|
25
|
+
make(text, noPrefix = false) {
|
|
26
|
+
return { text, noPrefix };
|
|
27
|
+
}
|
|
28
|
+
convertNode(node) {
|
|
29
|
+
return convertNode(this, node);
|
|
30
|
+
}
|
|
31
|
+
convertNamespace(node) {
|
|
32
|
+
throw new Error("Internal error: namespaces are not allowed on the interop layer");
|
|
33
|
+
}
|
|
34
|
+
convertInterface(node) {
|
|
35
|
+
switch (node.subkind) {
|
|
36
|
+
case idl.IDLInterfaceSubkind.AnonymousInterface:
|
|
37
|
+
return node.name
|
|
38
|
+
? this.make(node.name)
|
|
39
|
+
: this.make(this.computeTargetTypeLiteralName(node), true);
|
|
40
|
+
case idl.IDLInterfaceSubkind.Interface:
|
|
41
|
+
case idl.IDLInterfaceSubkind.Class:
|
|
42
|
+
if (idl.hasExtAttribute(node, idl.IDLExtendedAttributes.Predefined)) {
|
|
43
|
+
return this.make(node.name, true);
|
|
44
|
+
}
|
|
45
|
+
return this.make(node.name);
|
|
46
|
+
case idl.IDLInterfaceSubkind.Tuple:
|
|
47
|
+
return node.name
|
|
48
|
+
? this.make(node.name)
|
|
49
|
+
: this.make(`Tuple_${node.properties.map(it => this.convertNode(idl.maybeOptional(it.type, it.isOptional)).text).join("_")}`, true);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
convertEnum(node) {
|
|
53
|
+
return this.make(this.enumName(node));
|
|
54
|
+
}
|
|
55
|
+
convertTypedef(node) {
|
|
56
|
+
return this.make(node.name);
|
|
57
|
+
}
|
|
58
|
+
convertCallback(node) {
|
|
59
|
+
return this.make(generatorConfiguration().param("LibraryPrefix") + node.name, true);
|
|
60
|
+
}
|
|
61
|
+
convertMethod(node) {
|
|
62
|
+
return this.make(node.name);
|
|
63
|
+
}
|
|
64
|
+
convertConstant(node) {
|
|
65
|
+
return this.make(node.name);
|
|
66
|
+
}
|
|
67
|
+
/////////////////////////////////////////////////////////////////////////////////////////
|
|
68
|
+
convertOptional(type) {
|
|
69
|
+
return this.convertNode(type.type);
|
|
70
|
+
}
|
|
71
|
+
convertUnion(type) {
|
|
72
|
+
return this.make(type.name, false);
|
|
73
|
+
}
|
|
74
|
+
convertContainer(type) {
|
|
75
|
+
if (idl.IDLContainerUtils.isPromise(type)) {
|
|
76
|
+
return this.make(`Promise_${this.convertNode(type.elementType[0]).text}`);
|
|
77
|
+
}
|
|
78
|
+
if (idl.IDLContainerUtils.isSequence(type)) {
|
|
79
|
+
if (type.elementType[0] === idl.IDLU8Type) {
|
|
80
|
+
return this.make(`uint8_t*`, true);
|
|
81
|
+
}
|
|
82
|
+
return this.make(`Array_${this.convertNode(type.elementType[0]).text}`, true);
|
|
83
|
+
}
|
|
84
|
+
if (idl.IDLContainerUtils.isRecord(type)) {
|
|
85
|
+
return this.make(`Map_${this.convertNode(type.elementType[0]).text}_${this.convertNode(type.elementType[1]).text}`, true);
|
|
86
|
+
}
|
|
87
|
+
throw new Error(`Unmapped container type ${idl.DebugUtils.debugPrintType(type)}`);
|
|
88
|
+
}
|
|
89
|
+
convertImport(type, _) {
|
|
90
|
+
return this.make(idl.IDLCustomObjectType.name);
|
|
91
|
+
}
|
|
92
|
+
convertTypeReference(type) {
|
|
93
|
+
var _a;
|
|
94
|
+
const refName = type.name;
|
|
95
|
+
switch (refName) {
|
|
96
|
+
case "object":
|
|
97
|
+
case "Object":
|
|
98
|
+
return this.make('CustomObject');
|
|
99
|
+
}
|
|
100
|
+
if (generatorConfiguration().paramArray("knownParameterized").includes(refName)) {
|
|
101
|
+
return this.make('CustomObject');
|
|
102
|
+
}
|
|
103
|
+
let decl = this.resolver.toDeclaration(type);
|
|
104
|
+
if (idl.isCallback(decl)) {
|
|
105
|
+
decl = (_a = maybeTransformManagedCallback(decl)) !== null && _a !== void 0 ? _a : decl;
|
|
106
|
+
}
|
|
107
|
+
if (idl.isType(decl)) {
|
|
108
|
+
if (idl.isReferenceType(decl)) {
|
|
109
|
+
return this.make(`${capitalize(decl.name)}`);
|
|
110
|
+
}
|
|
111
|
+
return this.convertNode(decl);
|
|
112
|
+
}
|
|
113
|
+
let res = this.convertNode(decl);
|
|
114
|
+
if (type.name === "Optional")
|
|
115
|
+
res = this.make("Opt_" + res.text, true);
|
|
116
|
+
return res;
|
|
117
|
+
}
|
|
118
|
+
convertTypeParameter(type) {
|
|
119
|
+
return this.make('CustomObject');
|
|
120
|
+
}
|
|
121
|
+
convertPrimitiveType(type) {
|
|
122
|
+
switch (type) {
|
|
123
|
+
case idl.IDLVoidType: return this.make('void', true);
|
|
124
|
+
case idl.IDLI8Type: return this.make(`Int8`);
|
|
125
|
+
case idl.IDLU8Type: return this.make(`UInt8`);
|
|
126
|
+
case idl.IDLI16Type: return this.make(`Int16`);
|
|
127
|
+
case idl.IDLU16Type: return this.make(`UInt16`);
|
|
128
|
+
case idl.IDLI32Type: return this.make(`Int32`);
|
|
129
|
+
case idl.IDLU32Type: return this.make(`UInt32`);
|
|
130
|
+
case idl.IDLI64Type: return this.make(`Int64`);
|
|
131
|
+
case idl.IDLU64Type: return this.make(`UInt64`);
|
|
132
|
+
case idl.IDLF32Type: return this.make(`Float32`);
|
|
133
|
+
case idl.IDLF64Type: return this.make(`Float64`);
|
|
134
|
+
case idl.IDLNumberType: return this.make(`Number`);
|
|
135
|
+
case idl.IDLStringType: return this.make(`String`);
|
|
136
|
+
case idl.IDLBooleanType: return this.make(`Boolean`);
|
|
137
|
+
case idl.IDLPointerType: return this.make('NativePointer');
|
|
138
|
+
case idl.IDLUnknownType:
|
|
139
|
+
case idl.IDLCustomObjectType:
|
|
140
|
+
case idl.IDLAnyType: return this.make(`CustomObject`);
|
|
141
|
+
case idl.IDLUndefinedType: return this.make(`Undefined`);
|
|
142
|
+
case idl.IDLLengthType: return this.make(`Length`);
|
|
143
|
+
case idl.IDLFunctionType: return this.make(`Function`);
|
|
144
|
+
case idl.IDLDate: return this.make(`Date`);
|
|
145
|
+
case idl.IDLBufferType: return this.make('Buffer');
|
|
146
|
+
case idl.IDLPointerType: return this.make('Pointer');
|
|
147
|
+
}
|
|
148
|
+
throw new Error(`Unmapped primitive type ${idl.DebugUtils.debugPrintType(type)}`);
|
|
149
|
+
}
|
|
150
|
+
enumName(target) {
|
|
151
|
+
return qualifiedName(target, "_");
|
|
152
|
+
}
|
|
153
|
+
computeTargetTypeLiteralName(decl) {
|
|
154
|
+
const map = new Map();
|
|
155
|
+
for (const prop of decl.properties) {
|
|
156
|
+
const type = this.convertNode(prop.type);
|
|
157
|
+
const values = map.has(type.text) ? map.get(type.text) : [];
|
|
158
|
+
values.push(prop.name);
|
|
159
|
+
map.set(type.text, values);
|
|
160
|
+
}
|
|
161
|
+
const names = Array.from(map.keys()).map(key => `${key}_${map.get(key).join('_')}`);
|
|
162
|
+
return `Literal_${names.join('_')}`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export class InteropNameConvertor {
|
|
166
|
+
constructor(resolver) {
|
|
167
|
+
this.resolver = resolver;
|
|
168
|
+
this.interopConvertor = new InteropConvertor(resolver);
|
|
169
|
+
}
|
|
170
|
+
convert(node) {
|
|
171
|
+
return this.interopConvertor.convertNode(node).text;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=InteropConvertor.js.map
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
import { Language } from "../Language";
|
|
2
|
+
import { IndentedPrinter } from "../IndentedPrinter";
|
|
3
|
+
import * as idl from "../idl";
|
|
4
|
+
import { stringOrNone } from "../util";
|
|
5
|
+
import { NativeModuleType, RuntimeType } from "./common";
|
|
6
|
+
import { ArgConvertor } from "./ArgConvertors";
|
|
7
|
+
import { ReferenceResolver } from "../peer-generation/ReferenceResolver";
|
|
8
|
+
export interface LanguageExpression {
|
|
9
|
+
asString(): string;
|
|
10
|
+
}
|
|
11
|
+
export declare class TernaryExpression implements LanguageExpression {
|
|
12
|
+
condition: LanguageExpression;
|
|
13
|
+
trueExpression: LanguageExpression;
|
|
14
|
+
falseExpression: LanguageExpression;
|
|
15
|
+
constructor(condition: LanguageExpression, trueExpression: LanguageExpression, falseExpression: LanguageExpression);
|
|
16
|
+
asString(): string;
|
|
17
|
+
}
|
|
18
|
+
export declare class NaryOpExpression implements LanguageExpression {
|
|
19
|
+
op: string;
|
|
20
|
+
args: LanguageExpression[];
|
|
21
|
+
constructor(op: string, args: LanguageExpression[]);
|
|
22
|
+
asString(): string;
|
|
23
|
+
}
|
|
24
|
+
export declare class StringExpression implements LanguageExpression {
|
|
25
|
+
value: string;
|
|
26
|
+
constructor(value: string);
|
|
27
|
+
asString(): string;
|
|
28
|
+
}
|
|
29
|
+
export declare class NewObjectExpression implements LanguageExpression {
|
|
30
|
+
private objectName;
|
|
31
|
+
private params;
|
|
32
|
+
constructor(objectName: string, params: LanguageExpression[]);
|
|
33
|
+
asString(): string;
|
|
34
|
+
}
|
|
35
|
+
export declare class FunctionCallExpression implements LanguageExpression {
|
|
36
|
+
private name;
|
|
37
|
+
private params;
|
|
38
|
+
constructor(name: string, params: LanguageExpression[]);
|
|
39
|
+
asString(): string;
|
|
40
|
+
}
|
|
41
|
+
export declare class MethodCallExpression extends FunctionCallExpression {
|
|
42
|
+
receiver: string;
|
|
43
|
+
nullable: boolean;
|
|
44
|
+
constructor(receiver: string, method: string, params: LanguageExpression[], nullable?: boolean);
|
|
45
|
+
asString(): string;
|
|
46
|
+
}
|
|
47
|
+
export declare class FieldAccessExpression {
|
|
48
|
+
receiver: string;
|
|
49
|
+
field: string;
|
|
50
|
+
nullable: boolean;
|
|
51
|
+
constructor(receiver: string, field: string, nullable?: boolean);
|
|
52
|
+
asString(): string;
|
|
53
|
+
}
|
|
54
|
+
export declare class CheckDefinedExpression implements LanguageExpression {
|
|
55
|
+
private value;
|
|
56
|
+
constructor(value: string);
|
|
57
|
+
asString(): string;
|
|
58
|
+
}
|
|
59
|
+
export interface LanguageStatement {
|
|
60
|
+
write(writer: LanguageWriter): void;
|
|
61
|
+
}
|
|
62
|
+
export declare class ProxyStatement implements LanguageStatement {
|
|
63
|
+
private cb;
|
|
64
|
+
constructor(cb: (writer: LanguageWriter) => void);
|
|
65
|
+
write(writer: LanguageWriter): void;
|
|
66
|
+
}
|
|
67
|
+
export declare class AssignStatement implements LanguageStatement {
|
|
68
|
+
variableName: string;
|
|
69
|
+
type: idl.IDLType | undefined;
|
|
70
|
+
expression: LanguageExpression | undefined;
|
|
71
|
+
isDeclared: boolean;
|
|
72
|
+
protected isConst: boolean;
|
|
73
|
+
protected options?: MakeAssignOptions | undefined;
|
|
74
|
+
constructor(variableName: string, type: idl.IDLType | undefined, expression: LanguageExpression | undefined, isDeclared?: boolean, isConst?: boolean, options?: MakeAssignOptions | undefined);
|
|
75
|
+
write(writer: LanguageWriter): void;
|
|
76
|
+
}
|
|
77
|
+
export declare class ExpressionStatement implements LanguageStatement {
|
|
78
|
+
expression: LanguageExpression;
|
|
79
|
+
constructor(expression: LanguageExpression);
|
|
80
|
+
write(writer: LanguageWriter): void;
|
|
81
|
+
}
|
|
82
|
+
export declare class BlockStatement implements LanguageStatement {
|
|
83
|
+
statements: LanguageStatement[];
|
|
84
|
+
private inScope;
|
|
85
|
+
constructor(statements: LanguageStatement[], inScope?: boolean);
|
|
86
|
+
write(writer: LanguageWriter): void;
|
|
87
|
+
}
|
|
88
|
+
export declare class IfStatement implements LanguageStatement {
|
|
89
|
+
condition: LanguageExpression;
|
|
90
|
+
thenStatement: LanguageStatement;
|
|
91
|
+
elseStatement: LanguageStatement | undefined;
|
|
92
|
+
insideIfOp: (() => void) | undefined;
|
|
93
|
+
insideElseOp: (() => void) | undefined;
|
|
94
|
+
constructor(condition: LanguageExpression, thenStatement: LanguageStatement, elseStatement: LanguageStatement | undefined, insideIfOp: (() => void) | undefined, insideElseOp: (() => void) | undefined);
|
|
95
|
+
write(writer: LanguageWriter): void;
|
|
96
|
+
writeBody(writer: LanguageWriter, body: LanguageStatement, op: () => void): void;
|
|
97
|
+
}
|
|
98
|
+
export type BranchStatement = {
|
|
99
|
+
expr: LanguageExpression;
|
|
100
|
+
stmt: LanguageStatement;
|
|
101
|
+
};
|
|
102
|
+
export declare class MultiBranchIfStatement implements LanguageStatement {
|
|
103
|
+
private readonly statements;
|
|
104
|
+
private readonly elseStatement;
|
|
105
|
+
constructor(statements: BranchStatement[], elseStatement: LanguageStatement | undefined);
|
|
106
|
+
write(writer: LanguageWriter): void;
|
|
107
|
+
}
|
|
108
|
+
export declare class CheckOptionalStatement implements LanguageStatement {
|
|
109
|
+
undefinedValue: string;
|
|
110
|
+
optionalExpression: LanguageExpression;
|
|
111
|
+
doStatement: LanguageStatement;
|
|
112
|
+
constructor(undefinedValue: string, optionalExpression: LanguageExpression, doStatement: LanguageStatement);
|
|
113
|
+
write(writer: LanguageWriter): void;
|
|
114
|
+
}
|
|
115
|
+
export declare class TsEnumEntityStatement implements LanguageStatement {
|
|
116
|
+
private readonly enumEntity;
|
|
117
|
+
private readonly isExport;
|
|
118
|
+
constructor(enumEntity: idl.IDLEnum, isExport: boolean);
|
|
119
|
+
write(writer: LanguageWriter): void;
|
|
120
|
+
private maybeQuoted;
|
|
121
|
+
}
|
|
122
|
+
export declare class ReturnStatement implements LanguageStatement {
|
|
123
|
+
expression?: LanguageExpression | undefined;
|
|
124
|
+
constructor(expression?: LanguageExpression | undefined);
|
|
125
|
+
write(writer: LanguageWriter): void;
|
|
126
|
+
}
|
|
127
|
+
export declare abstract class LambdaExpression implements LanguageExpression {
|
|
128
|
+
private originalWriter;
|
|
129
|
+
protected signature: MethodSignature;
|
|
130
|
+
protected resolver: ReferenceResolver;
|
|
131
|
+
private body?;
|
|
132
|
+
constructor(originalWriter: LanguageWriter, signature: MethodSignature, resolver: ReferenceResolver, body?: LanguageStatement[] | undefined);
|
|
133
|
+
protected abstract get statementHasSemicolon(): boolean;
|
|
134
|
+
abstract asString(): string;
|
|
135
|
+
bodyAsString(): string;
|
|
136
|
+
}
|
|
137
|
+
export declare enum FieldModifier {
|
|
138
|
+
READONLY = 0,
|
|
139
|
+
PRIVATE = 1,
|
|
140
|
+
PUBLIC = 2,
|
|
141
|
+
STATIC = 3,
|
|
142
|
+
PROTECTED = 4,
|
|
143
|
+
FINAL = 5,
|
|
144
|
+
VOLATILE = 6,
|
|
145
|
+
INTERNAL = 7
|
|
146
|
+
}
|
|
147
|
+
export declare enum MethodModifier {
|
|
148
|
+
PUBLIC = 0,
|
|
149
|
+
PRIVATE = 1,
|
|
150
|
+
STATIC = 2,
|
|
151
|
+
NATIVE = 3,
|
|
152
|
+
INLINE = 4,
|
|
153
|
+
GETTER = 5,
|
|
154
|
+
SETTER = 6,
|
|
155
|
+
PROTECTED = 7,
|
|
156
|
+
FREE = 8
|
|
157
|
+
}
|
|
158
|
+
export declare enum ClassModifier {
|
|
159
|
+
PUBLIC = 0,
|
|
160
|
+
PRIVATE = 1,
|
|
161
|
+
PROTECTED = 2
|
|
162
|
+
}
|
|
163
|
+
export declare class Field {
|
|
164
|
+
name: string;
|
|
165
|
+
type: idl.IDLType;
|
|
166
|
+
modifiers: FieldModifier[];
|
|
167
|
+
constructor(name: string, type: idl.IDLType, modifiers?: FieldModifier[]);
|
|
168
|
+
}
|
|
169
|
+
export declare class Method {
|
|
170
|
+
name: string;
|
|
171
|
+
signature: MethodSignature;
|
|
172
|
+
modifiers: MethodModifier[] | undefined;
|
|
173
|
+
generics?: string[] | undefined;
|
|
174
|
+
constructor(name: string, signature: MethodSignature, modifiers?: MethodModifier[] | undefined, generics?: string[] | undefined);
|
|
175
|
+
}
|
|
176
|
+
export declare class PrintHint {
|
|
177
|
+
hint: string;
|
|
178
|
+
private constructor();
|
|
179
|
+
static AsPointer: PrintHint;
|
|
180
|
+
static AsConstPointer: PrintHint;
|
|
181
|
+
static AsValue: PrintHint;
|
|
182
|
+
static AsConstReference: PrintHint;
|
|
183
|
+
}
|
|
184
|
+
type MethodArgPrintHintOrNone = PrintHint | undefined;
|
|
185
|
+
export declare class MethodSignature {
|
|
186
|
+
returnType: idl.IDLType;
|
|
187
|
+
args: idl.IDLType[];
|
|
188
|
+
defaults: stringOrNone[] | undefined;
|
|
189
|
+
printHints?: MethodArgPrintHintOrNone[] | undefined;
|
|
190
|
+
argNames?: string[] | undefined;
|
|
191
|
+
constructor(returnType: idl.IDLType, args: idl.IDLType[], defaults?: stringOrNone[] | undefined, printHints?: MethodArgPrintHintOrNone[] | undefined, argNames?: string[] | undefined);
|
|
192
|
+
argName(index: number): string;
|
|
193
|
+
argDefault(index: number): string | undefined;
|
|
194
|
+
retHint(): PrintHint | undefined;
|
|
195
|
+
argHint(index: number): PrintHint | undefined;
|
|
196
|
+
toString(): string;
|
|
197
|
+
}
|
|
198
|
+
export declare class NamedMethodSignature extends MethodSignature {
|
|
199
|
+
argsNames: string[];
|
|
200
|
+
constructor(returnType: idl.IDLType, args?: idl.IDLType[], argsNames?: string[], defaults?: stringOrNone[] | undefined, printHints?: MethodArgPrintHintOrNone[]);
|
|
201
|
+
static make(returnType: idl.IDLType, args: {
|
|
202
|
+
name: string;
|
|
203
|
+
type: idl.IDLType;
|
|
204
|
+
}[]): NamedMethodSignature;
|
|
205
|
+
argName(index: number): string;
|
|
206
|
+
}
|
|
207
|
+
export interface ObjectArgs {
|
|
208
|
+
[name: string]: string;
|
|
209
|
+
}
|
|
210
|
+
export interface PrinterLike {
|
|
211
|
+
getOutput(): string[];
|
|
212
|
+
}
|
|
213
|
+
export declare abstract class LanguageWriter {
|
|
214
|
+
printer: IndentedPrinter;
|
|
215
|
+
protected resolver: ReferenceResolver;
|
|
216
|
+
language: Language;
|
|
217
|
+
constructor(printer: IndentedPrinter, resolver: ReferenceResolver, language: Language);
|
|
218
|
+
indentDepth(): number;
|
|
219
|
+
maybeSemicolon(): string;
|
|
220
|
+
abstract writeClass(name: string, op: (writer: this) => void, superClass?: string, interfaces?: string[], generics?: string[], isDeclared?: boolean, isExport?: boolean): void;
|
|
221
|
+
abstract writeEnum(name: string, members: {
|
|
222
|
+
name: string;
|
|
223
|
+
alias?: string;
|
|
224
|
+
stringId: string | undefined;
|
|
225
|
+
numberId: number;
|
|
226
|
+
}[], op?: (writer: this) => void): void;
|
|
227
|
+
abstract writeInterface(name: string, op: (writer: this) => void, superInterfaces?: string[], isDeclared?: boolean): void;
|
|
228
|
+
abstract writeFieldDeclaration(name: string, type: idl.IDLType, modifiers: FieldModifier[] | undefined, optional: boolean, initExpr?: LanguageExpression): void;
|
|
229
|
+
abstract writeFunctionDeclaration(name: string, signature: MethodSignature): void;
|
|
230
|
+
abstract writeFunctionImplementation(name: string, signature: MethodSignature, op: (writer: this) => void): void;
|
|
231
|
+
abstract writeMethodDeclaration(name: string, signature: MethodSignature, modifiers?: MethodModifier[]): void;
|
|
232
|
+
abstract writeConstructorImplementation(className: string, signature: MethodSignature, op: (writer: this) => void, superCall?: Method, modifiers?: MethodModifier[]): void;
|
|
233
|
+
abstract writeMethodImplementation(method: Method, op: (writer: this) => void): void;
|
|
234
|
+
abstract writeProperty(propName: string, propType: idl.IDLType, mutable?: boolean, getterLambda?: (writer: this) => void, setterLambda?: (writer: this) => void): void;
|
|
235
|
+
abstract makeAssign(variableName: string, type: idl.IDLType | undefined, expr: LanguageExpression | undefined, isDeclared: boolean, isConst?: boolean, options?: MakeAssignOptions): LanguageStatement;
|
|
236
|
+
abstract makeLambda(signature: MethodSignature, body?: LanguageStatement[]): LanguageExpression;
|
|
237
|
+
abstract makeThrowError(message: string): LanguageStatement;
|
|
238
|
+
abstract makeReturn(expr?: LanguageExpression): LanguageStatement;
|
|
239
|
+
abstract makeCheckOptional(optional: LanguageExpression, doStatement: LanguageStatement): LanguageStatement;
|
|
240
|
+
abstract makeRuntimeType(rt: RuntimeType): LanguageExpression;
|
|
241
|
+
abstract getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
|
|
242
|
+
abstract makeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
243
|
+
makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
244
|
+
abstract writePrintLog(message: string): void;
|
|
245
|
+
abstract makeUndefined(): LanguageExpression;
|
|
246
|
+
makeUnwrapOptional(expression: LanguageExpression): LanguageExpression;
|
|
247
|
+
abstract makeArrayInit(type: idl.IDLContainerType, size?: number): LanguageExpression;
|
|
248
|
+
abstract makeClassInit(type: idl.IDLType, paramenters: LanguageExpression[]): LanguageExpression;
|
|
249
|
+
abstract makeMapInit(type: idl.IDLType): LanguageExpression;
|
|
250
|
+
abstract makeMapInsert(keyAccessor: string, key: string, valueAccessor: string, value: string): LanguageStatement;
|
|
251
|
+
abstract makeLoop(counter: string, limit: string): LanguageStatement;
|
|
252
|
+
abstract makeLoop(counter: string, limit: string, statement: LanguageStatement): LanguageStatement;
|
|
253
|
+
abstract makeMapForEach(map: string, key: string, value: string, op: () => void): LanguageStatement;
|
|
254
|
+
abstract getTagType(): idl.IDLType;
|
|
255
|
+
abstract getRuntimeType(): idl.IDLType;
|
|
256
|
+
abstract makeTupleAssign(receiver: string, tupleFields: string[]): LanguageStatement;
|
|
257
|
+
abstract get supportedModifiers(): MethodModifier[];
|
|
258
|
+
abstract get supportedFieldModifiers(): FieldModifier[];
|
|
259
|
+
abstract enumFromOrdinal(value: LanguageExpression, enumEntry: idl.IDLType): LanguageExpression;
|
|
260
|
+
abstract ordinalFromEnum(value: LanguageExpression, enumReference: idl.IDLType): LanguageExpression;
|
|
261
|
+
abstract makeEnumCast(enumName: string, unsafe: boolean, convertor: ArgConvertor | undefined): string;
|
|
262
|
+
abstract getNodeName(type: idl.IDLNode): string;
|
|
263
|
+
abstract fork(options?: {
|
|
264
|
+
resolver?: ReferenceResolver;
|
|
265
|
+
}): LanguageWriter;
|
|
266
|
+
concat(other: PrinterLike): this;
|
|
267
|
+
printTo(file: string): void;
|
|
268
|
+
writeLines(lines: string): void;
|
|
269
|
+
writeGetterImplementation(method: Method, op: (writer: this) => void): void;
|
|
270
|
+
writeSetterImplementation(method: Method, op: (writer: this) => void): void;
|
|
271
|
+
writeSuperCall(params: string[]): void;
|
|
272
|
+
writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
|
|
273
|
+
writeStatement(stmt: LanguageStatement): void;
|
|
274
|
+
writeStatements(...statements: LanguageStatement[]): void;
|
|
275
|
+
writeExpressionStatement(smth: LanguageExpression): void;
|
|
276
|
+
makeRef(type: idl.IDLType, _options?: MakeRefOptions): idl.IDLType;
|
|
277
|
+
makeThis(): LanguageExpression;
|
|
278
|
+
makeNull(value?: string): LanguageExpression;
|
|
279
|
+
makeVoid(): LanguageExpression;
|
|
280
|
+
makeRuntimeTypeCondition(typeVarName: string, equals: boolean, type: RuntimeType, varName?: string): LanguageExpression;
|
|
281
|
+
makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
|
|
282
|
+
makeNewObject(objectName: string, params?: LanguageExpression[]): LanguageExpression;
|
|
283
|
+
makeFunctionCall(name: string | LanguageExpression, params: LanguageExpression[]): LanguageExpression;
|
|
284
|
+
makeMethodCall(receiver: string, method: string, params: LanguageExpression[], nullable?: boolean): LanguageExpression;
|
|
285
|
+
makeFieldAccess(receiver: string, method: string, nullable?: boolean): LanguageExpression;
|
|
286
|
+
makeNativeCall(nativeModule: NativeModuleType, method: string, params: LanguageExpression[], nullable?: boolean): LanguageExpression;
|
|
287
|
+
makeBlock(statements: LanguageStatement[], inScope?: boolean): BlockStatement;
|
|
288
|
+
nativeReceiver(nativeModule: NativeModuleType): string;
|
|
289
|
+
makeDefinedCheck(value: string): LanguageExpression;
|
|
290
|
+
makeRuntimeTypeDefinedCheck(runtimeType: string): LanguageExpression;
|
|
291
|
+
makeCondition(condition: LanguageExpression, thenStatement: LanguageStatement, elseStatement?: LanguageStatement, insideIfOp?: () => void, insideElseOp?: () => void): LanguageStatement;
|
|
292
|
+
makeMultiBranchCondition(conditions: BranchStatement[], elseStatement?: LanguageStatement): LanguageStatement;
|
|
293
|
+
makeTernary(condition: LanguageExpression, trueExpression: LanguageExpression, falseExpression: LanguageExpression): LanguageExpression;
|
|
294
|
+
makeArrayLength(array: string, length?: string): LanguageExpression;
|
|
295
|
+
makeArrayAccess(value: string, indexVar: string): LanguageExpression;
|
|
296
|
+
makeTupleAccess(value: string, index: number): LanguageExpression;
|
|
297
|
+
makeUnionSelector(value: string, valueType: string): LanguageStatement;
|
|
298
|
+
makeUnionVariantCondition(_convertor: ArgConvertor, _valueName: string, valueType: string, type: string, _convertorIndex?: number, _runtimeTypeIndex?: number): LanguageExpression;
|
|
299
|
+
makeUnionVariantCast(value: string, type: string, convertor: ArgConvertor, index?: number): LanguageExpression;
|
|
300
|
+
makeUnionTypeDefaultInitializer(): LanguageExpression;
|
|
301
|
+
makeRuntimeTypeGetterCall(value: string): LanguageExpression;
|
|
302
|
+
makeArrayResize(array: string, arrayType: string, length: string, deserializer: string): LanguageStatement;
|
|
303
|
+
makeMapResize(mapTypeName: string, keyType: idl.IDLType, valueType: idl.IDLType, map: string, size: string, deserializer: string): LanguageStatement;
|
|
304
|
+
makeMapSize(map: string): LanguageExpression;
|
|
305
|
+
makeTupleAlloc(option: string): LanguageStatement;
|
|
306
|
+
makeSetUnionSelector(value: string, index: string): LanguageStatement;
|
|
307
|
+
makeSetOptionTag(value: string, tag: LanguageExpression): LanguageStatement;
|
|
308
|
+
makeString(value: string): LanguageExpression;
|
|
309
|
+
makeNaryOp(op: string, args: LanguageExpression[]): LanguageExpression;
|
|
310
|
+
makeStatement(expr: LanguageExpression): LanguageStatement;
|
|
311
|
+
writeNativeMethodDeclaration(name: string, signature: MethodSignature, isNative?: boolean): void;
|
|
312
|
+
writeUnsafeNativeMethodDeclaration(name: string, signature: MethodSignature): void;
|
|
313
|
+
pushIndent(): void;
|
|
314
|
+
popIndent(): void;
|
|
315
|
+
print(string: stringOrNone): void;
|
|
316
|
+
getOutput(): string[];
|
|
317
|
+
makeSignature(returnType: idl.IDLType, parameters: idl.IDLParameter[]): MethodSignature;
|
|
318
|
+
makeNamedSignature(returnType: idl.IDLType, parameters: idl.IDLParameter[]): NamedMethodSignature;
|
|
319
|
+
makeNativeMethodNamedSignature(returnType: idl.IDLType, parameters: idl.IDLParameter[]): NamedMethodSignature;
|
|
320
|
+
makeSerializerConstructorSignature(): NamedMethodSignature | undefined;
|
|
321
|
+
mapFieldModifier(modifier: FieldModifier): string;
|
|
322
|
+
mapMethodModifier(modifier: MethodModifier): string;
|
|
323
|
+
/**
|
|
324
|
+
* TODO: replace me with {@link makeUnsafeCast_}
|
|
325
|
+
*/
|
|
326
|
+
makeUnsafeCast(convertor: ArgConvertor, param: string): string;
|
|
327
|
+
makeUnsafeCast_(value: LanguageExpression, type: idl.IDLType, typeOptions?: PrintHint): string;
|
|
328
|
+
runtimeType(param: ArgConvertor, valueType: string, value: string): void;
|
|
329
|
+
makeDiscriminatorFromFields(convertor: {
|
|
330
|
+
targetType: (writer: LanguageWriter) => string;
|
|
331
|
+
}, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
|
|
332
|
+
makeCallIsResource(value: string): LanguageExpression;
|
|
333
|
+
makeEnumEntity(enumEntity: idl.IDLEnum, isExport: boolean): LanguageStatement;
|
|
334
|
+
makeFieldModifiersList(modifiers: FieldModifier[] | undefined, customFieldFilter?: (field: FieldModifier) => boolean): string;
|
|
335
|
+
escapeKeyword(keyword: string): string;
|
|
336
|
+
makeCastCustomObject(customName: string, _isGenericType: boolean): LanguageExpression;
|
|
337
|
+
makeHasOwnProperty(value: string, _valueTypeName: string, property: string, propertyTypeName?: string): LanguageExpression;
|
|
338
|
+
discriminatorFromExpressions(value: string, runtimeType: RuntimeType, exprs: LanguageExpression[]): LanguageExpression;
|
|
339
|
+
makeDiscriminatorConvertor(_convertor: ArgConvertor, _value: string, _index: number): LanguageExpression | undefined;
|
|
340
|
+
makeNot(expr: LanguageExpression): LanguageExpression;
|
|
341
|
+
makeEquals(args: LanguageExpression[]): LanguageExpression;
|
|
342
|
+
castToInt(value: string, bitness: 8 | 32): string;
|
|
343
|
+
castToBoolean(value: string): string;
|
|
344
|
+
makeCallIsObject(value: string): LanguageExpression;
|
|
345
|
+
makeCallIsArrayBuffer(value: string): LanguageExpression;
|
|
346
|
+
instanceOf(convertor: ArgConvertor, value: string, _duplicateMembers?: Set<string>): LanguageExpression;
|
|
347
|
+
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
348
|
+
makeLengthSerializer(serializer: string, value: string): LanguageStatement | undefined;
|
|
349
|
+
makeLengthDeserializer(deserializer: string): LanguageStatement | undefined;
|
|
350
|
+
stringifyTypeOrEmpty(type: idl.IDLType | undefined): string;
|
|
351
|
+
/**
|
|
352
|
+
* Writes `namespace <namespace> {` and adds extra indent
|
|
353
|
+
* @param namespace Namespace to begin
|
|
354
|
+
*/
|
|
355
|
+
pushNamespace(namespace: string, ident?: boolean): void;
|
|
356
|
+
/**
|
|
357
|
+
* Writes closing brace of namespace block and removes one level of indent
|
|
358
|
+
*/
|
|
359
|
+
popNamespace(ident?: boolean): void;
|
|
360
|
+
}
|
|
361
|
+
export declare function mangleMethodName(method: Method, id?: number): string;
|
|
362
|
+
export declare function printMethodDeclaration(printer: IndentedPrinter, retType: string, methodName: string, apiParameters: string[], postfix?: string): void;
|
|
363
|
+
export declare function copyMethod(method: Method, overrides: {
|
|
364
|
+
name?: string;
|
|
365
|
+
signature?: MethodSignature;
|
|
366
|
+
modifiers?: MethodModifier[];
|
|
367
|
+
generics?: string[];
|
|
368
|
+
}): Method;
|
|
369
|
+
export type MakeCastOptions = {
|
|
370
|
+
unsafe?: boolean;
|
|
371
|
+
optional?: boolean;
|
|
372
|
+
receiver?: string;
|
|
373
|
+
toRef?: boolean;
|
|
374
|
+
overrideTypeName?: string;
|
|
375
|
+
};
|
|
376
|
+
export type MakeRefOptions = {
|
|
377
|
+
receiver?: string;
|
|
378
|
+
};
|
|
379
|
+
export type MakeAssignOptions = {
|
|
380
|
+
receiver?: string;
|
|
381
|
+
assignRef?: boolean;
|
|
382
|
+
overrideTypeName?: string;
|
|
383
|
+
};
|
|
384
|
+
export type ExpressionAssigner = (expression: LanguageExpression) => LanguageStatement;
|
|
385
|
+
export {};
|
|
386
|
+
//# sourceMappingURL=LanguageWriter.d.ts.map
|