@idlizer/core 2.1.10-arktscgen-3a → 2.1.10-arktscgen-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/Language.d.ts +0 -1
- package/build/lib/src/Language.js +0 -2
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +15 -2
- package/build/lib/src/LanguageWriters/ArgConvertors.js +75 -19
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +14 -2
- package/build/lib/src/LanguageWriters/LanguageWriter.js +12 -4
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +0 -1
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +2 -4
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +7 -7
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +37 -23
- package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.js +9 -5
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -4
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +73 -30
- package/build/lib/src/LanguageWriters/index.d.ts +2 -2
- package/build/lib/src/LanguageWriters/index.js +8 -13
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +4 -0
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +24 -16
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +2 -0
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +7 -1
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +1 -2
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +0 -6
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +2 -0
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +11 -0
- package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.d.ts +8 -0
- package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.js +75 -27
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +2 -0
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +38 -12
- package/build/lib/src/LibraryInterface.d.ts +0 -1
- package/build/lib/src/config.d.ts +760 -0
- package/build/lib/src/config.js +7 -0
- package/build/lib/src/formatter.js +5 -2
- package/build/lib/src/from-idl/DtsPrinter.js +3 -3
- package/build/lib/src/from-idl/common.js +2 -2
- package/build/lib/src/from-idl/deserialize.d.ts +3 -7
- package/build/lib/src/from-idl/deserialize.js +65 -39
- package/build/lib/src/from-idl/parser.d.ts +1 -1
- package/build/lib/src/from-idl/parser.js +29 -20
- package/build/lib/src/idl.d.ts +12 -1
- package/build/lib/src/idl.js +73 -11
- package/build/lib/src/index.d.ts +3 -5
- package/build/lib/src/index.js +3 -5
- package/build/lib/src/inheritance.d.ts +0 -2
- package/build/lib/src/inheritance.js +0 -17
- package/build/lib/src/languageSpecificKeywords.js +1 -1
- package/build/lib/src/peer-generation/ConflictingDeclarations.d.ts +6 -0
- package/build/lib/src/peer-generation/ConflictingDeclarations.js +43 -0
- package/build/lib/src/peer-generation/LayoutManager.d.ts +2 -0
- package/build/lib/src/peer-generation/LayoutManager.js +15 -0
- package/build/lib/src/peer-generation/Materialized.d.ts +2 -0
- package/build/lib/src/peer-generation/Materialized.js +14 -1
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +0 -3
- package/build/lib/src/peer-generation/PeerLibrary.js +63 -38
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +6 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +15 -3
- package/build/lib/src/peer-generation/isMaterialized.js +1 -1
- package/build/lib/src/peer-generation/modules.d.ts +2 -0
- package/build/lib/src/peer-generation/modules.js +14 -1
- package/build/lib/src/transformers/GenericTransformer.js +70 -5
- package/build/lib/src/transformers/NullTransformer.d.ts +0 -1
- package/build/lib/src/transformers/NullTransformer.js +1 -2
- package/build/lib/src/transformers/OnSerializeTransformer.d.ts +3 -0
- package/build/lib/src/transformers/OnSerializeTransformer.js +19 -0
- package/build/lib/src/util.d.ts +10 -39
- package/build/lib/src/util.js +56 -371
- package/package.json +45 -49
package/build/lib/src/idl.js
CHANGED
|
@@ -87,11 +87,13 @@ export var IDLExtendedAttributes;
|
|
|
87
87
|
IDLExtendedAttributes["TypeAnnotations"] = "TypeAnnotations";
|
|
88
88
|
IDLExtendedAttributes["TypeArguments"] = "TypeArguments";
|
|
89
89
|
IDLExtendedAttributes["TypeParameters"] = "TypeParameters";
|
|
90
|
+
IDLExtendedAttributes["TypeParametersDefaults"] = "TypeParametersDefaults";
|
|
90
91
|
IDLExtendedAttributes["VerbatimDts"] = "VerbatimDts";
|
|
91
92
|
IDLExtendedAttributes["HandWrittenImplementation"] = "HandWrittenImplementation";
|
|
92
93
|
IDLExtendedAttributes["ExtraMethod"] = "ExtraMethod";
|
|
93
94
|
IDLExtendedAttributes["OverloadAlias"] = "OverloadAlias";
|
|
94
95
|
IDLExtendedAttributes["OverloadPriority"] = "OverloadPriority";
|
|
96
|
+
IDLExtendedAttributes["TransformOnSerialize"] = "TransformOnSerialize";
|
|
95
97
|
})(IDLExtendedAttributes || (IDLExtendedAttributes = {}));
|
|
96
98
|
export var IDLAccessorAttribute;
|
|
97
99
|
(function (IDLAccessorAttribute) {
|
|
@@ -443,6 +445,7 @@ export const IDLSerializerBuffer = createPrimitiveType('SerializerBuffer');
|
|
|
443
445
|
export const IDLFunctionType = createPrimitiveType('Function');
|
|
444
446
|
export const IDLCustomObjectType = createPrimitiveType('CustomObject');
|
|
445
447
|
export const IDLInteropReturnBufferType = createPrimitiveType('InteropReturnBuffer');
|
|
448
|
+
export const IDLNullTypeName = "idlize.stdlib.Null";
|
|
446
449
|
export function createNamespace(name, members, nodeInitializer) {
|
|
447
450
|
return Object.assign(Object.assign({ kind: IDLKind.Namespace, members: members !== null && members !== void 0 ? members : [], name: name }, nodeInitializer), { _idlNodeBrand: innerIdlSymbol, _idlEntryBrand: innerIdlSymbol, _idlNamedNodeBrand: innerIdlSymbol });
|
|
448
451
|
}
|
|
@@ -479,6 +482,7 @@ export function getNamespacesPathFor(node) {
|
|
|
479
482
|
}
|
|
480
483
|
return result;
|
|
481
484
|
}
|
|
485
|
+
const nodesWithoutIDLFiles = new Set();
|
|
482
486
|
export function getFileFor(node) {
|
|
483
487
|
let iterator = node;
|
|
484
488
|
while (iterator) {
|
|
@@ -486,7 +490,11 @@ export function getFileFor(node) {
|
|
|
486
490
|
return iterator;
|
|
487
491
|
iterator = iterator.parent;
|
|
488
492
|
}
|
|
489
|
-
|
|
493
|
+
const name = getQualifiedName(node, "namespace.name");
|
|
494
|
+
if (!nodesWithoutIDLFiles.has(name)) {
|
|
495
|
+
console.warn(`Node ${name} does not have IDLFile in parents`);
|
|
496
|
+
nodesWithoutIDLFiles.add(name);
|
|
497
|
+
}
|
|
490
498
|
return undefined;
|
|
491
499
|
}
|
|
492
500
|
export function isEqualByQualifedName(a, b, pattern = "package.namespace.name") {
|
|
@@ -872,23 +880,29 @@ export function unescapeKeyword(name) {
|
|
|
872
880
|
const printedIndentInc = "[[indent-inc]]";
|
|
873
881
|
const printedIndentDec = "[[indent-dec]]";
|
|
874
882
|
export function printType(type, options) {
|
|
883
|
+
var _a;
|
|
875
884
|
if (!type)
|
|
876
885
|
throw new Error("Missing type");
|
|
877
886
|
if (isInterface(type))
|
|
878
887
|
return type.name;
|
|
879
|
-
if (isOptionalType(type))
|
|
880
|
-
|
|
888
|
+
if (isOptionalType(type)) {
|
|
889
|
+
if (hasExtAttribute(type, IDLExtendedAttributes.UnionOnlyNull))
|
|
890
|
+
return `(${printType(type.type)} or ${IDLNullTypeName})`;
|
|
891
|
+
else if (hasExtAttribute(type, IDLExtendedAttributes.UnionWithNull))
|
|
892
|
+
return `(${printType(type.type)} or ${IDLUndefinedType.name} or${IDLNullTypeName})`;
|
|
893
|
+
else
|
|
894
|
+
return `(${printType(type.type)} or ${IDLUndefinedType.name})`;
|
|
895
|
+
}
|
|
881
896
|
if (isPrimitiveType(type))
|
|
882
897
|
return type.name;
|
|
883
898
|
if (isContainerType(type))
|
|
884
899
|
return `${type.containerKind}<${type.elementType.map(it => printType(it)).join(", ")}>`;
|
|
885
900
|
if (isReferenceType(type)) {
|
|
886
|
-
const extAttrs = type.extendedAttributes ? Array.from(type.extendedAttributes) : [];
|
|
887
901
|
if (type.typeArguments)
|
|
888
|
-
|
|
889
|
-
if (!
|
|
902
|
+
updateExtAttribute(type, IDLExtendedAttributes.TypeArguments, type.typeArguments.map(it => printType(it)).join(","));
|
|
903
|
+
if (!((_a = type.extendedAttributes) === null || _a === void 0 ? void 0 : _a.length))
|
|
890
904
|
return type.name;
|
|
891
|
-
let res = `[${quoteAttributeValues(
|
|
905
|
+
let res = `[${quoteAttributeValues(type.extendedAttributes)}] ${type.name}`;
|
|
892
906
|
if (options === null || options === void 0 ? void 0 : options.bracketsAroundReferenceTypeWithExtAttrs)
|
|
893
907
|
return `(${res})`;
|
|
894
908
|
return res;
|
|
@@ -958,18 +972,31 @@ export function printExtendedAttributes(idl, indentLevel) {
|
|
|
958
972
|
break;
|
|
959
973
|
}
|
|
960
974
|
const attributes = Array.from(idl.extendedAttributes || []);
|
|
961
|
-
if (typeParameters === null || typeParameters === void 0 ? void 0 : typeParameters.length)
|
|
975
|
+
if ((typeParameters === null || typeParameters === void 0 ? void 0 : typeParameters.length) && !attributes.find(x => x.name === IDLExtendedAttributes.TypeParameters))
|
|
962
976
|
attributes.push({ name: IDLExtendedAttributes.TypeParameters, value: typeParameters.join(",") });
|
|
963
|
-
if (typeArguments === null || typeArguments === void 0 ? void 0 : typeArguments.length)
|
|
977
|
+
if ((typeArguments === null || typeArguments === void 0 ? void 0 : typeArguments.length) && !attributes.find(x => x.name === IDLExtendedAttributes.TypeArguments))
|
|
964
978
|
attributes.push({ name: IDLExtendedAttributes.TypeArguments, value: typeArguments.map(it => printType(it)).join(",") });
|
|
965
979
|
if (idl.documentation) {
|
|
966
980
|
let docs = {
|
|
967
981
|
name: IDLExtendedAttributes.Documentation,
|
|
968
982
|
value: idl.documentation
|
|
969
983
|
};
|
|
970
|
-
attributes.
|
|
984
|
+
attributes.unshift(docs);
|
|
971
985
|
}
|
|
972
|
-
|
|
986
|
+
// Deduplicate
|
|
987
|
+
const names = new Set();
|
|
988
|
+
const actualAttributes = [];
|
|
989
|
+
for (const attr of attributes) {
|
|
990
|
+
if (names.has(attr.name)) {
|
|
991
|
+
continue;
|
|
992
|
+
}
|
|
993
|
+
names.add(attr.name);
|
|
994
|
+
actualAttributes.push(attr);
|
|
995
|
+
}
|
|
996
|
+
if (actualAttributes.length == 0) {
|
|
997
|
+
return [];
|
|
998
|
+
}
|
|
999
|
+
const attrSpec = quoteAttributeValues(actualAttributes);
|
|
973
1000
|
return attrSpec ? [`[${attrSpec}]`] : [];
|
|
974
1001
|
}
|
|
975
1002
|
export const attributesToQuote = new Set([
|
|
@@ -981,6 +1008,7 @@ export const attributesToQuote = new Set([
|
|
|
981
1008
|
IDLExtendedAttributes.TraceKey,
|
|
982
1009
|
IDLExtendedAttributes.TypeArguments,
|
|
983
1010
|
IDLExtendedAttributes.TypeParameters,
|
|
1011
|
+
IDLExtendedAttributes.TypeParametersDefaults,
|
|
984
1012
|
]);
|
|
985
1013
|
function quoteAttributeValues(attributes) {
|
|
986
1014
|
return attributes === null || attributes === void 0 ? void 0 : attributes.map(it => {
|
|
@@ -1181,6 +1209,17 @@ export function getExtAttribute(node, name) {
|
|
|
1181
1209
|
var _a, _b;
|
|
1182
1210
|
return (_b = (_a = node.extendedAttributes) === null || _a === void 0 ? void 0 : _a.find(it => it.name === name)) === null || _b === void 0 ? void 0 : _b.value;
|
|
1183
1211
|
}
|
|
1212
|
+
export function removeExtAttribute(node, name) {
|
|
1213
|
+
if (node.extendedAttributes) {
|
|
1214
|
+
node.extendedAttributes = node.extendedAttributes.filter(it => it.name !== name);
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
export function updateExtAttribute(node, name, value) {
|
|
1218
|
+
var _a;
|
|
1219
|
+
removeExtAttribute(node, name);
|
|
1220
|
+
(_a = node.extendedAttributes) !== null && _a !== void 0 ? _a : (node.extendedAttributes = []);
|
|
1221
|
+
node.extendedAttributes.push({ name, value });
|
|
1222
|
+
}
|
|
1184
1223
|
export function getVerbatimDts(node) {
|
|
1185
1224
|
let value = getExtAttribute(node, IDLExtendedAttributes.VerbatimDts);
|
|
1186
1225
|
return value ? value.substring(1, value.length - 1) : undefined;
|
|
@@ -1203,6 +1242,16 @@ export function decomposeQualifiedName(type) {
|
|
|
1203
1242
|
}
|
|
1204
1243
|
return [undefined, typeName];
|
|
1205
1244
|
}
|
|
1245
|
+
export function qualifiedNameStartsWith(node, template) {
|
|
1246
|
+
const name = Array.isArray(node) ? node : getFQName(node).split(".");
|
|
1247
|
+
if (name.length < template.length)
|
|
1248
|
+
return false;
|
|
1249
|
+
for (let i = 0; i < template.length; i++) {
|
|
1250
|
+
if (name[i] != template[i])
|
|
1251
|
+
return false;
|
|
1252
|
+
}
|
|
1253
|
+
return true;
|
|
1254
|
+
}
|
|
1206
1255
|
export function maybeUnwrapOptionalType(type) {
|
|
1207
1256
|
if (isOptionalType(type)) {
|
|
1208
1257
|
return type.type;
|
|
@@ -1320,4 +1369,17 @@ export function extremumOfOrdinals(enumEntry) {
|
|
|
1320
1369
|
});
|
|
1321
1370
|
return { low, high };
|
|
1322
1371
|
}
|
|
1372
|
+
export const PACKAGE_IDLIZE_INTERNAL = "idlize.internal";
|
|
1373
|
+
export function isInIdlize(entry) {
|
|
1374
|
+
return isInPackage(entry, "idlize");
|
|
1375
|
+
}
|
|
1376
|
+
export function isInIdlizeInterop(entry) {
|
|
1377
|
+
return isInPackage(entry, `${PACKAGE_IDLIZE_INTERNAL}.interop`);
|
|
1378
|
+
}
|
|
1379
|
+
export function isInIdlizeInternal(entry) {
|
|
1380
|
+
return isInPackage(entry, PACKAGE_IDLIZE_INTERNAL);
|
|
1381
|
+
}
|
|
1382
|
+
export function isInIdlizeStdlib(entry) {
|
|
1383
|
+
return isInPackage(entry, "idlize.stdlib");
|
|
1384
|
+
}
|
|
1323
1385
|
//# sourceMappingURL=idl.js.map
|
package/build/lib/src/index.d.ts
CHANGED
|
@@ -3,11 +3,9 @@ export * from "./idl";
|
|
|
3
3
|
export * from "./resolveNamedNode";
|
|
4
4
|
export * from "./visitor";
|
|
5
5
|
export * from "./library";
|
|
6
|
-
export * from "./idlize";
|
|
7
6
|
export * from "./inheritance";
|
|
8
7
|
export * from "./Language";
|
|
9
8
|
export * from "./languageSpecificKeywords";
|
|
10
|
-
export * from "./options";
|
|
11
9
|
export * from "./util";
|
|
12
10
|
export * from "./rand_utils";
|
|
13
11
|
export * from "./IndentedPrinter";
|
|
@@ -22,14 +20,12 @@ export * from "./LanguageWriters/nameConvertor";
|
|
|
22
20
|
export * from "./LanguageWriters/convertors/CppConvertors";
|
|
23
21
|
export * from "./LanguageWriters/convertors/TSConvertors";
|
|
24
22
|
export * from "./LanguageWriters/convertors/ETSConvertors";
|
|
25
|
-
export * from "./LanguageWriters/convertors/JavaConvertors";
|
|
26
23
|
export * from "./LanguageWriters/convertors/CJConvertors";
|
|
27
24
|
export * from "./LanguageWriters/convertors/InteropConvertors";
|
|
28
25
|
export * from "./LanguageWriters/convertors/KotlinConvertors";
|
|
29
26
|
export * from "./LanguageWriters/writers/CJLanguageWriter";
|
|
30
27
|
export * from "./LanguageWriters/writers/CLikeLanguageWriter";
|
|
31
28
|
export * from "./LanguageWriters/writers/CppLanguageWriter";
|
|
32
|
-
export * from "./LanguageWriters/writers/JavaLanguageWriter";
|
|
33
29
|
export * from "./LanguageWriters/writers/TsLanguageWriter";
|
|
34
30
|
export * from "./LanguageWriters/writers/ETSLanguageWriter";
|
|
35
31
|
export * from "./LanguageWriters/writers/KotlinLanguageWriter";
|
|
@@ -49,16 +45,18 @@ export * from "./peer-generation/isStructureType";
|
|
|
49
45
|
export * from "./peer-generation/isEnumType";
|
|
50
46
|
export * from "./peer-generation/unions";
|
|
51
47
|
export * from "./peer-generation/getSuperType";
|
|
48
|
+
export * from "./peer-generation/ConflictingDeclarations";
|
|
52
49
|
export * from "./transformers/FqnTransformer";
|
|
53
50
|
export * from "./transformers/GenericTransformer";
|
|
54
51
|
export * from "./transformers/NullTransformer";
|
|
52
|
+
export * from "./transformers/OnSerializeTransformer";
|
|
55
53
|
export * from "./LanguageWriters";
|
|
56
54
|
export * from "./peer-generation/ReferenceResolver";
|
|
57
55
|
export * from "./peer-generation/idl/common";
|
|
58
56
|
export * from "./from-idl/IDLLinter";
|
|
59
57
|
export { fromIDL, scanIDL } from "./from-idl/common";
|
|
60
58
|
export { idlToDtsString, CustomPrintVisitor } from "./from-idl/DtsPrinter";
|
|
61
|
-
export {
|
|
59
|
+
export { parseIDLFile, addSyntheticType, resolveSyntheticType } from "./from-idl/deserialize";
|
|
62
60
|
export { Parser, FatalParserException } from "./from-idl/parser";
|
|
63
61
|
export { D, ConfigTypeInfer, ConfigSchema, inspectSchema } from './configDescriber';
|
|
64
62
|
//# sourceMappingURL=index.d.ts.map
|
package/build/lib/src/index.js
CHANGED
|
@@ -17,11 +17,9 @@ export * from "./idl";
|
|
|
17
17
|
export * from "./resolveNamedNode";
|
|
18
18
|
export * from "./visitor";
|
|
19
19
|
export * from "./library";
|
|
20
|
-
export * from "./idlize";
|
|
21
20
|
export * from "./inheritance";
|
|
22
21
|
export * from "./Language";
|
|
23
22
|
export * from "./languageSpecificKeywords";
|
|
24
|
-
export * from "./options";
|
|
25
23
|
export * from "./util";
|
|
26
24
|
export * from "./rand_utils";
|
|
27
25
|
export * from "./IndentedPrinter";
|
|
@@ -36,14 +34,12 @@ export * from "./LanguageWriters/nameConvertor";
|
|
|
36
34
|
export * from "./LanguageWriters/convertors/CppConvertors";
|
|
37
35
|
export * from "./LanguageWriters/convertors/TSConvertors";
|
|
38
36
|
export * from "./LanguageWriters/convertors/ETSConvertors";
|
|
39
|
-
export * from "./LanguageWriters/convertors/JavaConvertors";
|
|
40
37
|
export * from "./LanguageWriters/convertors/CJConvertors";
|
|
41
38
|
export * from "./LanguageWriters/convertors/InteropConvertors";
|
|
42
39
|
export * from "./LanguageWriters/convertors/KotlinConvertors";
|
|
43
40
|
export * from "./LanguageWriters/writers/CJLanguageWriter";
|
|
44
41
|
export * from "./LanguageWriters/writers/CLikeLanguageWriter";
|
|
45
42
|
export * from "./LanguageWriters/writers/CppLanguageWriter";
|
|
46
|
-
export * from "./LanguageWriters/writers/JavaLanguageWriter";
|
|
47
43
|
export * from "./LanguageWriters/writers/TsLanguageWriter";
|
|
48
44
|
export * from "./LanguageWriters/writers/ETSLanguageWriter";
|
|
49
45
|
export * from "./LanguageWriters/writers/KotlinLanguageWriter";
|
|
@@ -63,16 +59,18 @@ export * from "./peer-generation/isStructureType";
|
|
|
63
59
|
export * from "./peer-generation/isEnumType";
|
|
64
60
|
export * from "./peer-generation/unions";
|
|
65
61
|
export * from "./peer-generation/getSuperType";
|
|
62
|
+
export * from "./peer-generation/ConflictingDeclarations";
|
|
66
63
|
export * from "./transformers/FqnTransformer";
|
|
67
64
|
export * from "./transformers/GenericTransformer";
|
|
68
65
|
export * from "./transformers/NullTransformer";
|
|
66
|
+
export * from "./transformers/OnSerializeTransformer";
|
|
69
67
|
export * from "./LanguageWriters";
|
|
70
68
|
export * from "./peer-generation/ReferenceResolver";
|
|
71
69
|
export * from "./peer-generation/idl/common";
|
|
72
70
|
export * from "./from-idl/IDLLinter";
|
|
73
71
|
export { fromIDL, scanIDL } from "./from-idl/common";
|
|
74
72
|
export { idlToDtsString, CustomPrintVisitor } from "./from-idl/DtsPrinter";
|
|
75
|
-
export {
|
|
73
|
+
export { parseIDLFile, addSyntheticType, resolveSyntheticType } from "./from-idl/deserialize";
|
|
76
74
|
export { Parser, FatalParserException } from "./from-idl/parser";
|
|
77
75
|
export { D, inspectSchema } from './configDescriber';
|
|
78
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as ts from "typescript";
|
|
2
1
|
export declare enum InheritanceRole {
|
|
3
2
|
Finalizable = 0,
|
|
4
3
|
PeerNode = 1,
|
|
@@ -6,7 +5,6 @@ export declare enum InheritanceRole {
|
|
|
6
5
|
Heir = 3,
|
|
7
6
|
Standalone = 4
|
|
8
7
|
}
|
|
9
|
-
export declare function isCommonMethodOrSubclass(typeChecker: ts.TypeChecker, decl: ts.ClassDeclaration): boolean;
|
|
10
8
|
export declare function determineInheritanceRole(name: string): InheritanceRole;
|
|
11
9
|
export declare function determineParentRole(name: string | undefined, parent: string | undefined): InheritanceRole;
|
|
12
10
|
export declare function isCommonMethod(name: string): boolean;
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
* See the License for the specific language governing permissions and
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
|
-
import * as ts from "typescript";
|
|
16
15
|
import { generatorConfiguration } from "./config";
|
|
17
|
-
import { asString, heritageDeclarations, identName } from "./util";
|
|
18
16
|
export var InheritanceRole;
|
|
19
17
|
(function (InheritanceRole) {
|
|
20
18
|
InheritanceRole[InheritanceRole["Finalizable"] = 0] = "Finalizable";
|
|
@@ -23,21 +21,6 @@ export var InheritanceRole;
|
|
|
23
21
|
InheritanceRole[InheritanceRole["Heir"] = 3] = "Heir";
|
|
24
22
|
InheritanceRole[InheritanceRole["Standalone"] = 4] = "Standalone";
|
|
25
23
|
})(InheritanceRole || (InheritanceRole = {}));
|
|
26
|
-
export function isCommonMethodOrSubclass(typeChecker, decl) {
|
|
27
|
-
var _a;
|
|
28
|
-
let name = identName(decl.name);
|
|
29
|
-
let isSubclass = isRoot(name);
|
|
30
|
-
(_a = decl.heritageClauses) === null || _a === void 0 ? void 0 : _a.forEach(it => {
|
|
31
|
-
heritageDeclarations(typeChecker, it).forEach(it => {
|
|
32
|
-
let name = asString(it.name);
|
|
33
|
-
isSubclass = isSubclass || isRoot(name);
|
|
34
|
-
if (!ts.isClassDeclaration(it))
|
|
35
|
-
return isSubclass;
|
|
36
|
-
isSubclass = isSubclass || isCommonMethodOrSubclass(typeChecker, it);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
return isSubclass;
|
|
40
|
-
}
|
|
41
24
|
export function determineInheritanceRole(name) {
|
|
42
25
|
if (generatorConfiguration().rootComponents.includes(name))
|
|
43
26
|
return InheritanceRole.Root;
|
|
@@ -35,7 +35,7 @@ export const CJKeywords = new Set([
|
|
|
35
35
|
'break', 'is', 'as', 'in', 'match',
|
|
36
36
|
'from', 'where', 'extend', 'spawn',
|
|
37
37
|
'synchronized', 'macro', 'quote', 'true',
|
|
38
|
-
|
|
38
|
+
'false', 'static', 'public', 'private',
|
|
39
39
|
'protected', 'override', 'redef', 'abstract',
|
|
40
40
|
'open', 'operator', 'foreign', 'inout',
|
|
41
41
|
'prop', 'mut', 'unsafe', 'get', 'set', 'type'
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as idl from "../idl";
|
|
2
|
+
import { Language } from "../Language";
|
|
3
|
+
import { LibraryInterface } from "../LibraryInterface";
|
|
4
|
+
export declare function findTopLevelConflicts(library: LibraryInterface, language: Language): string[];
|
|
5
|
+
export declare function isTopLevelConflicted(library: LibraryInterface, language: Language, node: idl.IDLEntry): boolean;
|
|
6
|
+
//# sourceMappingURL=ConflictingDeclarations.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as idl from "../idl";
|
|
2
|
+
import { Language } from "../Language";
|
|
3
|
+
const findTopLevelConflicts_cache = new Map();
|
|
4
|
+
export function findTopLevelConflicts(library, language) {
|
|
5
|
+
if (!findTopLevelConflicts_cache.has(library))
|
|
6
|
+
findTopLevelConflicts_cache.set(library, new Map);
|
|
7
|
+
const libraryCache = findTopLevelConflicts_cache.get(library);
|
|
8
|
+
if (!libraryCache.has(language))
|
|
9
|
+
libraryCache.set(language, findTopLevelConflictsUncached(library, language));
|
|
10
|
+
return libraryCache.get(language);
|
|
11
|
+
}
|
|
12
|
+
function findTopLevelConflictsUncached(library, language) {
|
|
13
|
+
const foundNames = new Set();
|
|
14
|
+
const conflictingNames = new Set();
|
|
15
|
+
const ignoreTypedefs = language === Language.CPP;
|
|
16
|
+
for (const file of library.files) {
|
|
17
|
+
for (const entry of file.entries) {
|
|
18
|
+
if (idl.isSyntheticEntry(entry))
|
|
19
|
+
continue;
|
|
20
|
+
if (ignoreTypedefs && idl.isTypedef(entry))
|
|
21
|
+
// for redefinitions like `typedef _Resource Resource;` - in CPP than anyway will be expanded to Resource declaration
|
|
22
|
+
continue;
|
|
23
|
+
if (idl.isCallback(entry) || idl.isInterface(entry) || idl.isTypedef(entry) || idl.isEnum(entry)) {
|
|
24
|
+
if (foundNames.has(entry.name)) {
|
|
25
|
+
conflictingNames.add(entry.name);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
foundNames.add(entry.name);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return Array.from(conflictingNames);
|
|
34
|
+
}
|
|
35
|
+
export function isTopLevelConflicted(library, language, node) {
|
|
36
|
+
const topLevelConflicts = findTopLevelConflicts(library, language);
|
|
37
|
+
while (node.parent && idl.isNamespace(node.parent)) {
|
|
38
|
+
node = node.parent;
|
|
39
|
+
}
|
|
40
|
+
return node.parent !== undefined
|
|
41
|
+
&& idl.isFile(node.parent) && idl.isEntry(node) && topLevelConflicts.includes(node.name);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=ConflictingDeclarations.js.map
|
|
@@ -23,4 +23,6 @@ export declare class LayoutManager {
|
|
|
23
23
|
handwrittenPackage(): string;
|
|
24
24
|
static Empty(): LayoutManager;
|
|
25
25
|
}
|
|
26
|
+
export declare function wrapCurrentFileDescription<T>(description: LayoutTargetDescription, op: () => T): T;
|
|
27
|
+
export declare function isDeclaredInCurrentFile(layout: LayoutManagerStrategy, over: LayoutTargetDescription): boolean;
|
|
26
28
|
//# sourceMappingURL=LayoutManager.d.ts.map
|
|
@@ -35,4 +35,19 @@ export class LayoutManager {
|
|
|
35
35
|
return new LayoutManager({ resolve: () => '', handwrittenPackage: () => '' });
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
let currentGenerationDescription;
|
|
39
|
+
export function wrapCurrentFileDescription(description, op) {
|
|
40
|
+
const prev = currentGenerationDescription;
|
|
41
|
+
currentGenerationDescription = description;
|
|
42
|
+
const result = op();
|
|
43
|
+
currentGenerationDescription = prev;
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
export function isDeclaredInCurrentFile(layout, over) {
|
|
47
|
+
if (!currentGenerationDescription)
|
|
48
|
+
throw new Error("Current file context is not set up. Please use `wrapCurrentFileDescription` to set up current context. That must be temporary solution until structural printers are ready");
|
|
49
|
+
if (layout.resolve(currentGenerationDescription) === layout.resolve(over))
|
|
50
|
+
return true;
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
38
53
|
//# sourceMappingURL=LayoutManager.js.map
|
|
@@ -11,6 +11,8 @@ export declare class MaterializedField {
|
|
|
11
11
|
isNullableOriginalTypeField?: boolean | undefined;
|
|
12
12
|
extraMethodName: string | undefined;
|
|
13
13
|
constructor(field: Field, argConvertor: ArgConvertor, outArgConvertor?: ArgConvertor | undefined, isNullableOriginalTypeField?: boolean | undefined, extraMethodName?: string | undefined);
|
|
14
|
+
hasGetter(): boolean;
|
|
15
|
+
hasSetter(): boolean;
|
|
14
16
|
}
|
|
15
17
|
export declare class MaterializedMethod extends PeerMethod {
|
|
16
18
|
decl: idl.IDLConstructor | idl.IDLMethod | undefined;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
import * as idl from '../idl';
|
|
16
|
-
import { copyMethod, Method, MethodModifier, NamedMethodSignature } from '../LanguageWriters/LanguageWriter';
|
|
16
|
+
import { copyMethod, FieldModifier, Method, MethodModifier, NamedMethodSignature } from '../LanguageWriters/LanguageWriter';
|
|
17
17
|
import { capitalize } from '../util';
|
|
18
18
|
import { qualifiedName } from './idl/common';
|
|
19
19
|
import { PeerMethod, PeerMethodSignature } from './PeerMethod';
|
|
@@ -25,6 +25,19 @@ export class MaterializedField {
|
|
|
25
25
|
this.isNullableOriginalTypeField = isNullableOriginalTypeField;
|
|
26
26
|
this.extraMethodName = extraMethodName;
|
|
27
27
|
}
|
|
28
|
+
hasGetter() {
|
|
29
|
+
const isGetter = this.field.modifiers.includes(FieldModifier.GET);
|
|
30
|
+
const isSetter = this.field.modifiers.includes(FieldModifier.SET);
|
|
31
|
+
const isAccessor = isGetter || isSetter;
|
|
32
|
+
return !isAccessor || isGetter;
|
|
33
|
+
}
|
|
34
|
+
hasSetter() {
|
|
35
|
+
const isReadonly = this.field.modifiers.includes(FieldModifier.READONLY);
|
|
36
|
+
const isGetter = this.field.modifiers.includes(FieldModifier.GET);
|
|
37
|
+
const isSetter = this.field.modifiers.includes(FieldModifier.SET);
|
|
38
|
+
const isAccessor = isGetter || isSetter;
|
|
39
|
+
return (!isAccessor && !isReadonly) || isSetter;
|
|
40
|
+
}
|
|
28
41
|
}
|
|
29
42
|
export class MaterializedMethod extends PeerMethod {
|
|
30
43
|
constructor(decl, sig, originalParentName, implementationParentName, returnType, isCallSignature, uniqueOverloadName, method) {
|
|
@@ -10273,8 +10273,6 @@ export declare class PeerLibrary implements LibraryInterface {
|
|
|
10273
10273
|
readonly customComponentMethods: string[];
|
|
10274
10274
|
createLanguageWriter(language?: Language): LanguageWriter;
|
|
10275
10275
|
createTypeNameConvertor(language: Language): IdlNameConvertor;
|
|
10276
|
-
protected readonly targetNameConvertorInstance: IdlNameConvertor;
|
|
10277
|
-
private readonly interopNameConvertorInstance;
|
|
10278
10276
|
get libraryPrefix(): string;
|
|
10279
10277
|
createContinuationParameters(continuationType: idl.IDLType): idl.IDLParameter[];
|
|
10280
10278
|
createContinuationCallbackReference(continuationType: idl.IDLType): idl.IDLReferenceType;
|
|
@@ -10294,7 +10292,6 @@ export declare class PeerLibrary implements LibraryInterface {
|
|
|
10294
10292
|
typeConvertor(param: string, type: idl.IDLType, isOptionalParam?: boolean): ArgConvertor;
|
|
10295
10293
|
declarationConvertor(param: string, type: idl.IDLReferenceType, declaration: idl.IDLEntry | undefined): ArgConvertor;
|
|
10296
10294
|
private customConvertor;
|
|
10297
|
-
getInteropName(node: idl.IDLNode): string;
|
|
10298
10295
|
toDeclaration(type: idl.IDLType | idl.IDLTypedef | idl.IDLCallback | idl.IDLEnum | idl.IDLInterface): idl.IDLEntry | idl.IDLType;
|
|
10299
10296
|
setFileLayout(strategy: LayoutManagerStrategy): void;
|
|
10300
10297
|
withFileLayout(strategy: LayoutManagerStrategy, op: () => void): void;
|