@idlizer/core 2.1.10-arktscgen-5 → 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/Language.js +1 -1
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +16 -6
- package/build/lib/src/LanguageWriters/ArgConvertors.js +80 -92
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +8 -7
- package/build/lib/src/LanguageWriters/LanguageWriter.js +35 -22
- package/build/lib/src/LanguageWriters/common.d.ts +1 -0
- package/build/lib/src/LanguageWriters/common.js +2 -1
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +7 -1
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +53 -15
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.d.ts +1 -0
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +10 -8
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +1 -1
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +26 -14
- package/build/lib/src/LanguageWriters/index.d.ts +4 -3
- package/build/lib/src/LanguageWriters/index.js +9 -11
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +2 -0
- package/build/lib/src/LanguageWriters/nameConvertor.js +11 -0
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +1 -1
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +2 -22
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +34 -113
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +3 -0
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +33 -9
- package/build/lib/src/config.d.ts +2 -1461
- package/build/lib/src/config.js +16 -32
- package/build/lib/src/configMerge.d.ts +3 -0
- package/build/lib/src/configMerge.js +63 -0
- package/build/lib/src/diagnostictypes.d.ts +1 -5
- package/build/lib/src/diagnostictypes.js +1 -27
- package/build/lib/src/from-idl/DtsPrinter.js +12 -5
- package/build/lib/src/from-idl/IDLLinter.d.ts +3 -4
- package/build/lib/src/from-idl/IDLLinter.js +30 -32
- package/build/lib/src/from-idl/deserialize.d.ts +3 -4
- package/build/lib/src/from-idl/deserialize.js +29 -641
- package/build/lib/src/from-idl/parser.d.ts +20 -2
- package/build/lib/src/from-idl/parser.js +97 -29
- package/build/lib/src/idl/builders.d.ts +43 -0
- package/build/lib/src/idl/builders.js +135 -0
- package/build/lib/src/idl/discriminators.d.ts +53 -0
- package/build/lib/src/idl/discriminators.js +232 -0
- package/build/lib/src/idl/dump.d.ts +48 -0
- package/build/lib/src/idl/dump.js +327 -0
- package/build/lib/src/idl/index.d.ts +9 -0
- package/build/lib/src/idl/index.js +23 -0
- package/build/lib/src/idl/keywords.d.ts +2 -0
- package/build/lib/src/{options.js → idl/keywords.js} +7 -3
- package/build/lib/src/idl/node.d.ts +233 -0
- package/build/lib/src/idl/node.js +103 -0
- package/build/lib/src/idl/stdlib.d.ts +34 -0
- package/build/lib/src/idl/stdlib.js +54 -0
- package/build/lib/src/idl/utils.d.ts +44 -0
- package/build/lib/src/idl/utils.js +215 -0
- package/build/lib/src/idl/visitors.d.ts +15 -0
- package/build/lib/src/idl/visitors.js +593 -0
- package/build/lib/src/index.d.ts +4 -2
- package/build/lib/src/index.js +5 -3
- package/build/lib/src/inputPaths.d.ts +11 -0
- package/build/lib/src/inputPaths.js +81 -0
- package/build/lib/src/languageSpecificKeywords.d.ts +0 -1
- package/build/lib/src/languageSpecificKeywords.js +0 -5
- package/build/lib/src/peer-generation/LayoutManager.d.ts +1 -1
- package/build/lib/src/peer-generation/Materialized.d.ts +8 -2
- package/build/lib/src/peer-generation/Materialized.js +24 -12
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +10 -15
- package/build/lib/src/peer-generation/PeerLibrary.js +35 -215
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +6 -1
- package/build/lib/src/peer-generation/ReferenceResolver.js +93 -2
- package/build/lib/src/peer-generation/idl/common.d.ts +6 -2
- package/build/lib/src/peer-generation/idl/common.js +7 -7
- package/build/lib/src/peer-generation/isMaterialized.js +2 -3
- package/build/lib/src/peer-generation/modules.js +2 -0
- package/build/lib/src/peer-generation/toDeclaration.d.ts +4 -0
- package/build/lib/src/peer-generation/toDeclaration.js +53 -0
- package/build/lib/src/peer-generation/unions.d.ts +1 -1
- package/build/lib/src/peer-generation/unions.js +15 -7
- package/build/lib/src/resolveNamedNode.d.ts +1 -0
- package/build/lib/src/resolveNamedNode.js +7 -0
- package/build/lib/src/transformers/FqnTransformer.d.ts +1 -1
- package/build/lib/src/transformers/FqnTransformer.js +20 -12
- package/build/lib/src/transformers/GenericTransformer.d.ts +4 -3
- package/build/lib/src/transformers/GenericTransformer.js +252 -158
- package/build/lib/src/transformers/IdlTransformer.d.ts +6 -0
- package/build/lib/src/transformers/IdlTransformer.js +7 -0
- package/build/lib/src/transformers/NullTransformer.d.ts +1 -1
- package/build/lib/src/transformers/NullTransformer.js +27 -21
- package/build/lib/src/transformers/OnSerializeTransformer.d.ts +1 -1
- package/build/lib/src/transformers/OnSerializeTransformer.js +28 -13
- package/build/lib/src/util.d.ts +5 -0
- package/build/lib/src/util.js +25 -0
- package/package.json +6 -7
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +0 -37
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +0 -210
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +0 -85
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +0 -306
- package/build/lib/src/from-idl/webidl2-utils.d.ts +0 -21
- package/build/lib/src/from-idl/webidl2-utils.js +0 -87
- package/build/lib/src/idl.d.ts +0 -444
- package/build/lib/src/idl.js +0 -1385
- package/build/lib/src/idlize.d.ts +0 -25
- package/build/lib/src/idlize.js +0 -198
- package/build/lib/src/options.d.ts +0 -13
- package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -20
- package/build/lib/src/peer-generation/BuilderClass.js +0 -68
- package/webidl2.js/dist/webidl2.js +0 -4622
- package/webidl2.js/package.json +0 -55
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import * as idl from "../../idl";
|
|
16
16
|
import { LanguageWriter } from "../LanguageWriter";
|
|
17
|
+
import { isInsideInstanceof } from "../nameConvertor";
|
|
17
18
|
import { TSInteropArgConvertor, TSTypeNameConvertor } from "./TSConvertors";
|
|
18
19
|
export class ETSTypeNameConvertor extends TSTypeNameConvertor {
|
|
19
20
|
convertTypeReference(type) {
|
|
@@ -25,18 +26,13 @@ export class ETSTypeNameConvertor extends TSTypeNameConvertor {
|
|
|
25
26
|
}
|
|
26
27
|
// TODO: Fix for 'TypeError: Type 'Function<R>' is generic but type argument were not provided.'
|
|
27
28
|
if (typeName === "Function") {
|
|
28
|
-
return "Function<void>";
|
|
29
|
+
return isInsideInstanceof() ? "Function" : "Function<void>";
|
|
29
30
|
}
|
|
30
31
|
return typeName;
|
|
31
32
|
}
|
|
32
33
|
convertContainer(type) {
|
|
33
34
|
if (idl.IDLContainerUtils.isSequence(type)) {
|
|
34
|
-
|
|
35
|
-
case idl.IDLU8Type: return 'KUint8ArrayPtr';
|
|
36
|
-
case idl.IDLI32Type: return 'KInt32ArrayPtr';
|
|
37
|
-
case idl.IDLF32Type: return 'KFloat32ArrayPtr';
|
|
38
|
-
}
|
|
39
|
-
return `Array<${this.convert(type.elementType[0])}>`;
|
|
35
|
+
return isInsideInstanceof() ? `Array` : `Array<${this.convert(type.elementType[0])}>`;
|
|
40
36
|
}
|
|
41
37
|
return super.convertContainer(type);
|
|
42
38
|
}
|
|
@@ -95,9 +91,15 @@ export class ETSTypeNameConvertor extends TSTypeNameConvertor {
|
|
|
95
91
|
if (typeArgs.length === 0) {
|
|
96
92
|
typeArgs = [this.convert(idl.IDLVoidType)];
|
|
97
93
|
}
|
|
98
|
-
return `Function${typeArgs.length - 1}<${typeArgs.join(",")}>`;
|
|
94
|
+
return isInsideInstanceof() ? `Function${typeArgs.length - 1}` : `Function${typeArgs.length - 1}<${typeArgs.join(",")}>`;
|
|
99
95
|
}
|
|
100
96
|
}
|
|
101
97
|
export class ETSInteropArgConvertor extends TSInteropArgConvertor {
|
|
98
|
+
convertPrimitiveType(type) {
|
|
99
|
+
switch (type) {
|
|
100
|
+
case idl.IDLBigintType: return 'long';
|
|
101
|
+
}
|
|
102
|
+
return super.convertPrimitiveType(type);
|
|
103
|
+
}
|
|
102
104
|
}
|
|
103
105
|
//# sourceMappingURL=ETSConvertors.js.map
|
|
@@ -84,7 +84,7 @@ export class InteropReturnTypeConvertor {
|
|
|
84
84
|
if (decl) {
|
|
85
85
|
// Callbacks and array types return by value
|
|
86
86
|
if (idl.isCallback(this.resolver.toDeclaration(type))) {
|
|
87
|
-
return
|
|
87
|
+
return KInteropReturnBuffer;
|
|
88
88
|
}
|
|
89
89
|
if (idl.isInterface(decl)) {
|
|
90
90
|
if (isMaterialized(decl, this.resolver)) {
|
|
@@ -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 } from '../nameConvertor';
|
|
20
|
+
import { convertNode, convertType, isInsideInstanceof, withInsideInstanceof } from '../nameConvertor';
|
|
21
21
|
export class TSTypeNameConvertor {
|
|
22
22
|
constructor(library) {
|
|
23
23
|
this.library = library;
|
|
@@ -50,6 +50,8 @@ export class TSTypeNameConvertor {
|
|
|
50
50
|
}
|
|
51
51
|
convertTypedef(node) {
|
|
52
52
|
var _a;
|
|
53
|
+
if (idl.isSyntheticEntry(node))
|
|
54
|
+
return this.convert(node.type);
|
|
53
55
|
return (_a = this.mangleTopLevel(node)) !== null && _a !== void 0 ? _a : idl.getQualifiedName(node, "namespace.name");
|
|
54
56
|
}
|
|
55
57
|
convertCallback(node) {
|
|
@@ -87,18 +89,13 @@ export class TSTypeNameConvertor {
|
|
|
87
89
|
}
|
|
88
90
|
convertContainer(type) {
|
|
89
91
|
if (idl.IDLContainerUtils.isSequence(type)) {
|
|
90
|
-
|
|
91
|
-
case idl.IDLU8Type: return 'Uint8Array'; // should be changed to Array
|
|
92
|
-
case idl.IDLI32Type: return 'Int32Array'; // should be changed to Array
|
|
93
|
-
case idl.IDLF32Type: return 'KFloat32ArrayPtr'; // should be changed to Array
|
|
94
|
-
default: return `Array<${this.convert(type.elementType[0])}>`;
|
|
95
|
-
}
|
|
92
|
+
return isInsideInstanceof() ? `Array` : `Array<${this.convert(type.elementType[0])}>`;
|
|
96
93
|
}
|
|
97
94
|
if (idl.IDLContainerUtils.isRecord(type)) {
|
|
98
|
-
return `Map<${this.convert(type.elementType[0])}, ${this.convert(type.elementType[1])}>`;
|
|
95
|
+
return isInsideInstanceof() ? `Map` : `Map<${this.convert(type.elementType[0])}, ${this.convert(type.elementType[1])}>`;
|
|
99
96
|
}
|
|
100
97
|
if (idl.IDLContainerUtils.isPromise(type)) {
|
|
101
|
-
return `Promise<${this.convert(type.elementType[0])}>`;
|
|
98
|
+
return isInsideInstanceof() ? `Promise` : `Promise<${this.convert(type.elementType[0])}>`;
|
|
102
99
|
}
|
|
103
100
|
throw new Error(`Unmapped container type ${idl.DebugUtils.debugPrintType(type)}`);
|
|
104
101
|
}
|
|
@@ -108,7 +105,7 @@ export class TSTypeNameConvertor {
|
|
|
108
105
|
}
|
|
109
106
|
convertTypeReferenceAsImport(type, importClause) {
|
|
110
107
|
var _a;
|
|
111
|
-
const maybeTypeArguments = ((_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.length) ? `<${type.typeArguments.join(', ')}>` : "";
|
|
108
|
+
const maybeTypeArguments = ((_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.length) && !isInsideInstanceof() ? `<${type.typeArguments.join(', ')}>` : "";
|
|
112
109
|
let decl = this.library.resolveTypeReference(type);
|
|
113
110
|
if (decl)
|
|
114
111
|
return `${decl.name}${maybeTypeArguments}`;
|
|
@@ -122,6 +119,9 @@ export class TSTypeNameConvertor {
|
|
|
122
119
|
if (idl.isCallback(decl)) {
|
|
123
120
|
return this.mapCallback(decl, type.typeArguments);
|
|
124
121
|
}
|
|
122
|
+
if (idl.isTypedef(decl)) {
|
|
123
|
+
return this.convert(decl.type);
|
|
124
|
+
}
|
|
125
125
|
const entity = idl.getExtAttribute(decl, idl.IDLExtendedAttributes.Entity);
|
|
126
126
|
if (entity) {
|
|
127
127
|
const isTuple = entity === idl.IDLEntity.Tuple;
|
|
@@ -141,7 +141,10 @@ export class TSTypeNameConvertor {
|
|
|
141
141
|
decl = this.library.resolveTypeReference(maybeRestoredGeneric);
|
|
142
142
|
}
|
|
143
143
|
let typeSpec = type.name;
|
|
144
|
-
let typeArgs = (
|
|
144
|
+
let typeArgs = !isInsideInstanceof() || decl && idl.isCallback(decl)
|
|
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 : []
|
|
147
|
+
: [];
|
|
145
148
|
if (typeSpec === `Optional`)
|
|
146
149
|
return `${typeArgs} | undefined`;
|
|
147
150
|
if (typeSpec === `Function`)
|
|
@@ -249,7 +252,7 @@ export class TSTypeNameConvertor {
|
|
|
249
252
|
return name;
|
|
250
253
|
}
|
|
251
254
|
mapFunctionType(typeArgs) {
|
|
252
|
-
return `Function${typeArgs.length ? `<${typeArgs.join(",")}>` : ''}`;
|
|
255
|
+
return isInsideInstanceof() ? `Function` : `Function${typeArgs.length ? `<${typeArgs.join(",")}>` : ''}`;
|
|
253
256
|
}
|
|
254
257
|
}
|
|
255
258
|
export class TSInteropArgConvertor {
|
|
@@ -257,6 +260,11 @@ export class TSInteropArgConvertor {
|
|
|
257
260
|
return convertType(this, type);
|
|
258
261
|
}
|
|
259
262
|
convertContainer(type) {
|
|
263
|
+
switch (type.elementType[0]) {
|
|
264
|
+
case idl.IDLU8Type: return 'KUint8ArrayPtr';
|
|
265
|
+
case idl.IDLI32Type: return 'KInt32ArrayPtr';
|
|
266
|
+
case idl.IDLF32Type: return 'KFloat32ArrayPtr';
|
|
267
|
+
}
|
|
260
268
|
throw new Error(`Cannot pass container types through interop`);
|
|
261
269
|
}
|
|
262
270
|
convertImport(type) {
|
|
@@ -276,13 +284,17 @@ export class TSInteropArgConvertor {
|
|
|
276
284
|
case idl.IDLF64Type: return "KDouble";
|
|
277
285
|
case idl.IDLNumberType: return 'number';
|
|
278
286
|
case idl.IDLBigintType: return 'bigint';
|
|
279
|
-
case idl.IDLBooleanType:
|
|
287
|
+
case idl.IDLBooleanType: return 'boolean';
|
|
280
288
|
case idl.IDLFunctionType: return 'KInt';
|
|
281
289
|
case idl.IDLStringType: return 'KStringPtr';
|
|
282
290
|
case idl.IDLBufferType: return 'ArrayBuffer';
|
|
291
|
+
case idl.IDLSerializerBuffer: return 'KSerializerBuffer';
|
|
292
|
+
case idl.IDLInteropReturnBufferType: return `KInteropReturnBuffer`;
|
|
293
|
+
case idl.IDLObjectType: return 'Object';
|
|
294
|
+
case idl.IDLAnyType: return "Object";
|
|
283
295
|
case idl.IDLDate: return 'number';
|
|
296
|
+
case idl.IDLVoidType: return 'void';
|
|
284
297
|
case idl.IDLUndefinedType:
|
|
285
|
-
case idl.IDLVoidType:
|
|
286
298
|
case idl.IDLPointerType: return 'KPointer';
|
|
287
299
|
}
|
|
288
300
|
throw new Error(`Cannot pass primitive type ${type.name} through interop`);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Language } from "../Language";
|
|
2
2
|
import { LibraryInterface } from "../LibraryInterface";
|
|
3
|
+
import { PeerLibrary } from "../peer-generation/PeerLibrary";
|
|
3
4
|
import { LanguageWriter } from "./LanguageWriter";
|
|
4
|
-
import {
|
|
5
|
+
import { IdlNameConvertor } from "./nameConvertor";
|
|
5
6
|
export * from "./nameConvertor";
|
|
6
|
-
export declare function createLanguageWriter(language: Language, library: LibraryInterface): LanguageWriter;
|
|
7
|
-
export declare function createInteropArgConvertor(language: Language):
|
|
7
|
+
export declare function createLanguageWriter(language: Language, library: LibraryInterface, nameConvertor?: IdlNameConvertor): LanguageWriter;
|
|
8
|
+
export declare function createInteropArgConvertor(language: Language, library: PeerLibrary): IdlNameConvertor;
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IndentedPrinter } from "../IndentedPrinter";
|
|
2
2
|
import { Language } from "../Language";
|
|
3
3
|
import { PrimitiveTypesInstance } from "../peer-generation/PrimitiveType";
|
|
4
|
-
import { createEmptyReferenceResolver } from "../peer-generation/ReferenceResolver";
|
|
5
4
|
import { CJIDLTypeToForeignStringConvertor, CJInteropArgConvertor, CJTypeNameConvertor } from "./convertors/CJConvertors";
|
|
6
5
|
import { CppInteropArgConvertor, CppConvertor } from "./convertors/CppConvertors";
|
|
7
6
|
import { ETSInteropArgConvertor, ETSTypeNameConvertor } from "./convertors/ETSConvertors";
|
|
8
|
-
import {
|
|
7
|
+
import { KotlinTypeNameConvertor } from "./convertors/KotlinConvertors";
|
|
9
8
|
import { TSInteropArgConvertor, TSTypeNameConvertor } from "./convertors/TSConvertors";
|
|
10
9
|
import { CJLanguageWriter } from "./writers/CJLanguageWriter";
|
|
11
10
|
import { CppLanguageWriter } from "./writers/CppLanguageWriter";
|
|
@@ -13,26 +12,25 @@ import { ETSLanguageWriter } from "./writers/ETSLanguageWriter";
|
|
|
13
12
|
import { KotlinLanguageWriter } from "./writers/KotlinLanguageWriter";
|
|
14
13
|
import { TSLanguageWriter } from "./writers/TsLanguageWriter";
|
|
15
14
|
export * from "./nameConvertor";
|
|
16
|
-
export function createLanguageWriter(language, library) {
|
|
15
|
+
export function createLanguageWriter(language, library, nameConvertor) {
|
|
17
16
|
const printer = new IndentedPrinter();
|
|
18
17
|
switch (language) {
|
|
19
|
-
case Language.TS: return new TSLanguageWriter(printer, library, new TSTypeNameConvertor(library));
|
|
20
|
-
case Language.ARKTS: return new ETSLanguageWriter(printer, library, new ETSTypeNameConvertor(library), new CppConvertor(library));
|
|
21
|
-
case Language.CPP: return new CppLanguageWriter(printer, library, new CppConvertor(library), PrimitiveTypesInstance);
|
|
22
|
-
case Language.CJ: return new CJLanguageWriter(printer, library, new CJTypeNameConvertor(library), new CJIDLTypeToForeignStringConvertor(library));
|
|
23
|
-
case Language.KOTLIN: return new KotlinLanguageWriter(printer, library, new KotlinTypeNameConvertor(library));
|
|
18
|
+
case Language.TS: return new TSLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new TSTypeNameConvertor(library));
|
|
19
|
+
case Language.ARKTS: return new ETSLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new ETSTypeNameConvertor(library), new CppConvertor(library));
|
|
20
|
+
case Language.CPP: return new CppLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new CppConvertor(library), PrimitiveTypesInstance);
|
|
21
|
+
case Language.CJ: return new CJLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new CJTypeNameConvertor(library), new CJIDLTypeToForeignStringConvertor(library));
|
|
22
|
+
case Language.KOTLIN: return new KotlinLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new KotlinTypeNameConvertor(library));
|
|
24
23
|
default: throw new Error(`Language ${language.toString()} is not supported`);
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
export function createInteropArgConvertor(language) {
|
|
26
|
+
export function createInteropArgConvertor(language, library) {
|
|
28
27
|
switch (language) {
|
|
29
28
|
case Language.TS: return new TSInteropArgConvertor();
|
|
30
29
|
case Language.ARKTS: return new ETSInteropArgConvertor();
|
|
31
30
|
case Language.CPP: return CppInteropArgConvertor.INSTANCE;
|
|
32
31
|
case Language.CJ: return new CJInteropArgConvertor();
|
|
33
|
-
case Language.KOTLIN: return new
|
|
32
|
+
case Language.KOTLIN: return new KotlinTypeNameConvertor(library);
|
|
34
33
|
}
|
|
35
34
|
throw new Error(`InteropArgConvertor for language ${language} not implemented`);
|
|
36
35
|
}
|
|
37
|
-
const EmptyReferenceResolver = createEmptyReferenceResolver();
|
|
38
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -27,4 +27,6 @@ export declare function convertDeclaration<T>(convertor: DeclarationConvertor<T>
|
|
|
27
27
|
export interface NodeConvertor<T> extends TypeConvertor<T>, DeclarationConvertor<T> {
|
|
28
28
|
}
|
|
29
29
|
export declare function convertNode<T>(convertor: NodeConvertor<T>, node: idl.IDLNode): T;
|
|
30
|
+
export declare function isInsideInstanceof(): boolean;
|
|
31
|
+
export declare function withInsideInstanceof<T>(isInsideInstanceof: boolean, op: () => T): T;
|
|
30
32
|
//# sourceMappingURL=nameConvertor.d.ts.map
|
|
@@ -62,4 +62,15 @@ export function convertNode(convertor, node) {
|
|
|
62
62
|
return convertType(convertor, node);
|
|
63
63
|
throw new Error(`Unknown node type ${idl.IDLKind[node.kind]}`);
|
|
64
64
|
}
|
|
65
|
+
let _isInsideInstanceof = false;
|
|
66
|
+
export function isInsideInstanceof() {
|
|
67
|
+
return _isInsideInstanceof;
|
|
68
|
+
}
|
|
69
|
+
export function withInsideInstanceof(isInsideInstanceof, op) {
|
|
70
|
+
const prevIsInsideInstanceof = _isInsideInstanceof;
|
|
71
|
+
_isInsideInstanceof = isInsideInstanceof;
|
|
72
|
+
const result = op();
|
|
73
|
+
_isInsideInstanceof = prevIsInsideInstanceof;
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
65
76
|
//# sourceMappingURL=nameConvertor.js.map
|
|
@@ -386,7 +386,7 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
386
386
|
return createReferenceType('Tag');
|
|
387
387
|
}
|
|
388
388
|
getRuntimeType() {
|
|
389
|
-
return createReferenceType(`RuntimeType`);
|
|
389
|
+
return createReferenceType(`idlize.stdlib.RuntimeType`);
|
|
390
390
|
}
|
|
391
391
|
makeTupleAssign(receiver, tupleFields) {
|
|
392
392
|
const statements = tupleFields.map((field, index) => {
|
|
@@ -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,25 +23,14 @@ 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[]);
|
|
38
29
|
protected get statementHasSemicolon(): boolean;
|
|
39
30
|
asString(): string;
|
|
40
31
|
}
|
|
41
|
-
export declare function generateTypeCheckerName(typeName: string): string;
|
|
42
32
|
export declare function generateEnumToNumericName(entry: idl.IDLEntry): string;
|
|
43
33
|
export declare function generateEnumFromNumericName(entry: idl.IDLEntry): string;
|
|
44
|
-
export declare function makeArrayTypeCheckCall(valueAccessor: string, typeName: string, writer: LanguageWriter): LanguageExpression;
|
|
45
34
|
export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
46
35
|
private arrayConvertor;
|
|
47
36
|
constructor(printer: IndentedPrinter, resolver: ReferenceResolver, typeConvertor: IdlNameConvertor, arrayConvertor: IdlNameConvertor);
|
|
@@ -62,10 +51,6 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
62
51
|
targetType: (writer: LanguageWriter) => string;
|
|
63
52
|
}, value: string, accessors: string[], duplicates: Set<string>): LanguageExpression;
|
|
64
53
|
makeValueFromOption(value: string, destinationConvertor: ArgConvertor): LanguageExpression;
|
|
65
|
-
makeEnumEntity(enumEntity: IDLEnum, options: {
|
|
66
|
-
isExport: boolean;
|
|
67
|
-
isDeclare?: boolean;
|
|
68
|
-
}): LanguageStatement;
|
|
69
54
|
writeMethodCall(receiver: string, method: string, params: string[], nullable?: boolean): void;
|
|
70
55
|
isQuickType(type: IDLType): boolean;
|
|
71
56
|
writeNativeMethodDeclaration(method: Method): void;
|
|
@@ -74,12 +59,7 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
74
59
|
discriminate(value: string, index: number, type: idl.IDLType, runtimeTypes: RuntimeType[]): string;
|
|
75
60
|
castToInt(value: string, bitness: 8 | 32): string;
|
|
76
61
|
castToBoolean(value: string): string;
|
|
77
|
-
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
78
|
-
makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
79
62
|
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
80
|
-
|
|
81
|
-
static get isUseTypeChecker(): boolean;
|
|
82
|
-
static useTypeChecker<T>(isUseTypeChecker: boolean, op: () => T): T;
|
|
63
|
+
instanceOf(value: string, type: idl.IDLType): LanguageExpression;
|
|
83
64
|
}
|
|
84
|
-
export declare function makeEnumTypeCheckerCall(valueAccessor: string, enumName: string, writer: LanguageWriter): LanguageExpression;
|
|
85
65
|
//# sourceMappingURL=ETSLanguageWriter.d.ts.map
|
|
@@ -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 //
|
|
@@ -56,7 +55,7 @@ export class EtsAssignStatement {
|
|
|
56
55
|
const typeClause = this.type !== undefined ? `: ${writer.getNodeName(this.type)}` : '';
|
|
57
56
|
const maybeAssign = this.expression !== undefined ? " = " : "";
|
|
58
57
|
const initValue = this.expression !== undefined ? this.expression : writer.makeString("");
|
|
59
|
-
writer.print(`${this.isConst ? "const" : "let"} ${this.variableName}
|
|
58
|
+
writer.print(`${this.isConst ? "const" : "let"} ${this.variableName}${typeClause}${maybeAssign}${initValue.asString()}`);
|
|
60
59
|
}
|
|
61
60
|
else {
|
|
62
61
|
const receiver = (_a = this.options) === null || _a === void 0 ? void 0 : _a.receiver;
|
|
@@ -82,46 +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 members = this.enumEntity.elements
|
|
94
|
-
.flatMap((member, index) => {
|
|
95
|
-
var _a;
|
|
96
|
-
const initText = (_a = member.initializer) !== null && _a !== void 0 ? _a : index;
|
|
97
|
-
const isTypeString = typeof initText !== "number";
|
|
98
|
-
const originalName = getExtAttribute(member, idl.IDLExtendedAttributes.OriginalEnumMemberName);
|
|
99
|
-
const res = [{
|
|
100
|
-
name: member.name,
|
|
101
|
-
alias: undefined,
|
|
102
|
-
stringId: isTypeString ? initText : undefined,
|
|
103
|
-
numberId: initText
|
|
104
|
-
}];
|
|
105
|
-
if (originalName !== undefined) {
|
|
106
|
-
res.push({
|
|
107
|
-
name: originalName,
|
|
108
|
-
alias: undefined,
|
|
109
|
-
stringId: isTypeString ? initText : undefined,
|
|
110
|
-
numberId: initText
|
|
111
|
-
});
|
|
112
|
-
//TODO: enums do not support member aliases
|
|
113
|
-
// res.push({
|
|
114
|
-
// name: originalName,
|
|
115
|
-
// alias: member.name,
|
|
116
|
-
// stringId: undefined,
|
|
117
|
-
// numberId: initText as number
|
|
118
|
-
// })
|
|
119
|
-
}
|
|
120
|
-
return res;
|
|
121
|
-
});
|
|
122
|
-
writer.writeEnum(enumName, members, { isExport: this.options.isExport, isDeclare: this.options.isDeclare });
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
84
|
export class ETSLambdaExpression extends LambdaExpression {
|
|
126
85
|
constructor(writer, convertor, signature, resolver, body) {
|
|
127
86
|
super(writer, signature, resolver, body);
|
|
@@ -149,12 +108,6 @@ export class ETSLambdaExpression extends LambdaExpression {
|
|
|
149
108
|
////////////////////////////////////////////////////////////////
|
|
150
109
|
// UTILS //
|
|
151
110
|
////////////////////////////////////////////////////////////////
|
|
152
|
-
export function generateTypeCheckerName(typeName) {
|
|
153
|
-
return "is" + typeName
|
|
154
|
-
.replaceAll('[]', 'BracketsArray')
|
|
155
|
-
.replaceAll(/<.*$/g, '') // delete type arguments
|
|
156
|
-
.replaceAll('.', '_');
|
|
157
|
-
}
|
|
158
111
|
export function generateEnumToNumericName(entry) {
|
|
159
112
|
const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
|
|
160
113
|
return `${typeName}_ToNumeric`;
|
|
@@ -163,10 +116,6 @@ export function generateEnumFromNumericName(entry) {
|
|
|
163
116
|
const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
|
|
164
117
|
return `${typeName}_FromNumeric`;
|
|
165
118
|
}
|
|
166
|
-
export function makeArrayTypeCheckCall(valueAccessor, typeName, writer) {
|
|
167
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(typeName), [writer.makeString(valueAccessor)
|
|
168
|
-
]);
|
|
169
|
-
}
|
|
170
119
|
////////////////////////////////////////////////////////////////
|
|
171
120
|
// WRITER //
|
|
172
121
|
////////////////////////////////////////////////////////////////
|
|
@@ -204,18 +153,22 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
204
153
|
return this.makeString(`${value} as ${type}`);
|
|
205
154
|
}
|
|
206
155
|
i32FromEnum(value, enumEntry) {
|
|
207
|
-
if (
|
|
208
|
-
|
|
156
|
+
if (idl.isStringEnum(enumEntry)) {
|
|
157
|
+
let extractorStatement = this.makeMethodCall(value.asString(), 'getOrdinal', []);
|
|
158
|
+
if (enumEntry.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
|
|
159
|
+
extractorStatement = this.makeNaryOp('%', [
|
|
160
|
+
extractorStatement,
|
|
161
|
+
this.makeString(enumEntry.elements.length.toString())
|
|
162
|
+
]);
|
|
163
|
+
}
|
|
164
|
+
return extractorStatement;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
return this.makeMethodCall(value.asString(), 'valueOf', []);
|
|
209
168
|
}
|
|
210
|
-
return idl.isStringEnum(enumEntry)
|
|
211
|
-
? this.makeMethodCall(value.asString(), 'getOrdinal', [])
|
|
212
|
-
: this.makeMethodCall(value.asString(), 'valueOf', []);
|
|
213
169
|
}
|
|
214
170
|
enumFromI32(value, enumEntry) {
|
|
215
171
|
const enumName = this.getNodeName(enumEntry);
|
|
216
|
-
if (ETSLanguageWriter.isUseTypeChecker) {
|
|
217
|
-
return this.makeMethodCall('TypeChecker', generateEnumFromNumericName(enumEntry), [value]);
|
|
218
|
-
}
|
|
219
172
|
return idl.isStringEnum(enumEntry)
|
|
220
173
|
? this.makeString(`${enumName}.values()[${value.asString()}]`)
|
|
221
174
|
: this.makeMethodCall(enumName, 'fromValue', [value]);
|
|
@@ -227,7 +180,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
227
180
|
|| convertor instanceof CustomTypeConvertor) {
|
|
228
181
|
return this.instanceOf(value, convertor.idlType);
|
|
229
182
|
}
|
|
230
|
-
return this.makeString(`${value} instanceof ${convertor.targetType(this)}`);
|
|
183
|
+
return this.makeString(`${value} instanceof ${withInsideInstanceof(true, () => convertor.targetType(this))}`);
|
|
231
184
|
}
|
|
232
185
|
makeValueFromOption(value, destinationConvertor) {
|
|
233
186
|
if (idl.isEnum(this.resolver.toDeclaration(destinationConvertor.nativeType()))) {
|
|
@@ -235,12 +188,6 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
235
188
|
}
|
|
236
189
|
return super.makeValueFromOption(value, destinationConvertor);
|
|
237
190
|
}
|
|
238
|
-
makeEnumEntity(enumEntity, options) {
|
|
239
|
-
return new ArkTSEnumEntityStatement(enumEntity, {
|
|
240
|
-
isExport: options === null || options === void 0 ? void 0 : options.isExport,
|
|
241
|
-
isDeclare: !!(options === null || options === void 0 ? void 0 : options.isDeclare),
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
191
|
writeMethodCall(receiver, method, params, nullable = false) {
|
|
245
192
|
// ArkTS does not support - 'this.?'
|
|
246
193
|
super.writeMethodCall(receiver, method, params, nullable && receiver !== "this");
|
|
@@ -266,15 +213,16 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
266
213
|
return super.makeNaryOp('==', args);
|
|
267
214
|
}
|
|
268
215
|
discriminate(value, index, type, runtimeTypes) {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
216
|
+
return `${value} instanceof ${withInsideInstanceof(true, () => {
|
|
217
|
+
let typeName = this.getNodeName(type);
|
|
218
|
+
if (idl.isReferenceType(type)) {
|
|
219
|
+
const decl = this.resolver.resolveTypeReference(type);
|
|
220
|
+
if (decl && idl.isInterface(decl) && decl.subkind == idl.IDLInterfaceSubkind.Tuple) {
|
|
221
|
+
typeName = "Tuple";
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return typeName;
|
|
225
|
+
})}`;
|
|
278
226
|
}
|
|
279
227
|
castToInt(value, bitness) {
|
|
280
228
|
// This fix is used to avoid unnecessary writeInt8(value as int32) call, which is generated if value is already an int32
|
|
@@ -284,50 +232,23 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
284
232
|
return `(${value}).toChar()`;
|
|
285
233
|
return `(${value}).toInt()`; // FIXME: is there int8 in ARKTS?
|
|
286
234
|
}
|
|
287
|
-
castToBoolean(value) { return `${value} ?
|
|
288
|
-
typeInstanceOf(type, value, members) {
|
|
289
|
-
if (!members || members.length === 0) {
|
|
290
|
-
throw new Error("At least one member needs to provided to pass it to TypeChecker!");
|
|
291
|
-
}
|
|
292
|
-
const prop = members[0];
|
|
293
|
-
// Use the same typeInstanceOf<T>(...) method to compile the ETS code by two compilers ArkTS and TS
|
|
294
|
-
return this.makeString(`TypeChecker.typeInstanceOf<${this.getNodeName(type)}>(value, "${prop}")`);
|
|
295
|
-
}
|
|
296
|
-
makeTypeCast(value, type, options) {
|
|
297
|
-
return this.makeString(`TypeChecker.typeCast<${this.getNodeName(type)}>(value)`);
|
|
298
|
-
}
|
|
235
|
+
castToBoolean(value) { return `${value} ? true : false`; }
|
|
299
236
|
makeCast(value, node, options) {
|
|
300
237
|
var _a;
|
|
301
238
|
if (node === idl.IDLI64Type)
|
|
302
|
-
return this.makeMethodCall(value.asString(), `toLong`, []);
|
|
239
|
+
return this.makeMethodCall(value.asString() + '!', `toLong`, []);
|
|
303
240
|
if (node === idl.IDLI32Type)
|
|
304
|
-
return this.makeMethodCall(value.asString(), `toInt`, []);
|
|
241
|
+
return this.makeMethodCall(value.asString() + '!', `toInt`, []);
|
|
305
242
|
if (node === idl.IDLI8Type)
|
|
306
|
-
return this.makeMethodCall(value.asString(), `toByte`, []);
|
|
243
|
+
return this.makeMethodCall(value.asString() + '!', `toByte`, []);
|
|
307
244
|
if (node === idl.IDLF64Type)
|
|
308
|
-
return this.makeMethodCall(value.asString(), `toDouble`, []);
|
|
245
|
+
return this.makeMethodCall(value.asString() + '!', `toDouble`, []);
|
|
309
246
|
if (node === idl.IDLF32Type)
|
|
310
|
-
return this.makeMethodCall(value.asString(), `toFloat`, []);
|
|
247
|
+
return this.makeMethodCall(value.asString() + '!', `toFloat`, []);
|
|
311
248
|
return new TSCastExpression(value, `${this.getNodeName(node)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
312
249
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
const prevIsUse = this.isReferenceRelativeToNamespaces;
|
|
316
|
-
this._isUseTypeChecker = isUseTypeChecker;
|
|
317
|
-
const result = op();
|
|
318
|
-
this._isUseTypeChecker = prevIsUse;
|
|
319
|
-
return result;
|
|
250
|
+
instanceOf(value, type) {
|
|
251
|
+
return this.makeString(this.discriminate(value, -1, type, []));
|
|
320
252
|
}
|
|
321
253
|
}
|
|
322
|
-
ETSLanguageWriter._isUseTypeChecker = true;
|
|
323
|
-
function makeInterfaceTypeCheckerCall(valueAccessor, interfaceName, allFields, duplicates, writer) {
|
|
324
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(interfaceName), [writer.makeString(valueAccessor),
|
|
325
|
-
...allFields.map(it => {
|
|
326
|
-
return writer.makeString(duplicates.has(it) ? "true" : "false");
|
|
327
|
-
})
|
|
328
|
-
]);
|
|
329
|
-
}
|
|
330
|
-
export function makeEnumTypeCheckerCall(valueAccessor, enumName, writer) {
|
|
331
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(enumName), [writer.makeString(valueAccessor)]);
|
|
332
|
-
}
|
|
333
254
|
//# sourceMappingURL=ETSLanguageWriter.js.map
|
|
@@ -78,6 +78,7 @@ export declare class TSLanguageWriter extends LanguageWriter {
|
|
|
78
78
|
makeMapForEach(map: string, key: string, value: string, body: LanguageStatement[]): LanguageStatement;
|
|
79
79
|
writePrintLog(message: string): void;
|
|
80
80
|
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
81
|
+
instanceOf(value: string, type: idl.IDLType): LanguageExpression;
|
|
81
82
|
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
82
83
|
getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
|
|
83
84
|
makeUndefined(): LanguageExpression;
|
|
@@ -100,5 +101,7 @@ export declare class TSLanguageWriter extends LanguageWriter {
|
|
|
100
101
|
makeCallIsObject(value: string): LanguageExpression;
|
|
101
102
|
escapeKeyword(keyword: string): string;
|
|
102
103
|
discriminate(value: string, index: number, type: idl.IDLType, runtimeTypes: RuntimeType[]): string;
|
|
104
|
+
private writingClassBody;
|
|
105
|
+
classOp(op: () => void): void;
|
|
103
106
|
}
|
|
104
107
|
//# sourceMappingURL=TsLanguageWriter.d.ts.map
|