@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.
Files changed (65) hide show
  1. package/build/lib/src/Language.d.ts +0 -1
  2. package/build/lib/src/Language.js +0 -2
  3. package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +15 -2
  4. package/build/lib/src/LanguageWriters/ArgConvertors.js +75 -19
  5. package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +14 -2
  6. package/build/lib/src/LanguageWriters/LanguageWriter.js +12 -4
  7. package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +0 -1
  8. package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +2 -4
  9. package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +7 -7
  10. package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +37 -23
  11. package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.js +9 -5
  12. package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -4
  13. package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +73 -30
  14. package/build/lib/src/LanguageWriters/index.d.ts +2 -2
  15. package/build/lib/src/LanguageWriters/index.js +8 -13
  16. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +4 -0
  17. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +24 -16
  18. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +2 -0
  19. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +7 -1
  20. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +1 -2
  21. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +0 -6
  22. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +2 -0
  23. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +11 -0
  24. package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.d.ts +8 -0
  25. package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.js +75 -27
  26. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +2 -0
  27. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +38 -12
  28. package/build/lib/src/LibraryInterface.d.ts +0 -1
  29. package/build/lib/src/config.d.ts +760 -0
  30. package/build/lib/src/config.js +7 -0
  31. package/build/lib/src/formatter.js +5 -2
  32. package/build/lib/src/from-idl/DtsPrinter.js +3 -3
  33. package/build/lib/src/from-idl/common.js +2 -2
  34. package/build/lib/src/from-idl/deserialize.d.ts +3 -7
  35. package/build/lib/src/from-idl/deserialize.js +65 -39
  36. package/build/lib/src/from-idl/parser.d.ts +1 -1
  37. package/build/lib/src/from-idl/parser.js +29 -20
  38. package/build/lib/src/idl.d.ts +12 -1
  39. package/build/lib/src/idl.js +73 -11
  40. package/build/lib/src/index.d.ts +3 -5
  41. package/build/lib/src/index.js +3 -5
  42. package/build/lib/src/inheritance.d.ts +0 -2
  43. package/build/lib/src/inheritance.js +0 -17
  44. package/build/lib/src/languageSpecificKeywords.js +1 -1
  45. package/build/lib/src/peer-generation/ConflictingDeclarations.d.ts +6 -0
  46. package/build/lib/src/peer-generation/ConflictingDeclarations.js +43 -0
  47. package/build/lib/src/peer-generation/LayoutManager.d.ts +2 -0
  48. package/build/lib/src/peer-generation/LayoutManager.js +15 -0
  49. package/build/lib/src/peer-generation/Materialized.d.ts +2 -0
  50. package/build/lib/src/peer-generation/Materialized.js +14 -1
  51. package/build/lib/src/peer-generation/PeerLibrary.d.ts +0 -3
  52. package/build/lib/src/peer-generation/PeerLibrary.js +63 -38
  53. package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +6 -0
  54. package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +15 -3
  55. package/build/lib/src/peer-generation/isMaterialized.js +1 -1
  56. package/build/lib/src/peer-generation/modules.d.ts +2 -0
  57. package/build/lib/src/peer-generation/modules.js +14 -1
  58. package/build/lib/src/transformers/GenericTransformer.js +70 -5
  59. package/build/lib/src/transformers/NullTransformer.d.ts +0 -1
  60. package/build/lib/src/transformers/NullTransformer.js +1 -2
  61. package/build/lib/src/transformers/OnSerializeTransformer.d.ts +3 -0
  62. package/build/lib/src/transformers/OnSerializeTransformer.js +19 -0
  63. package/build/lib/src/util.d.ts +10 -39
  64. package/build/lib/src/util.js +56 -371
  65. package/package.json +45 -49
@@ -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
- console.warn(`Node ${getQualifiedName(node, "namespace.name")} does not have IDLFile in parents`);
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
- return `(${printType(type.type)} or ${IDLUndefinedType.name})`;
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
- extAttrs.push({ name: IDLExtendedAttributes.TypeArguments, value: type.typeArguments.map(it => printType(it)).join(",") });
889
- if (!extAttrs.length)
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(extAttrs)}] ${type.name}`;
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.push(docs);
984
+ attributes.unshift(docs);
971
985
  }
972
- const attrSpec = quoteAttributeValues(attributes);
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
@@ -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 { toIDLFile, addSyntheticType, resolveSyntheticType, IDLTokenInfoMap } from "./from-idl/deserialize";
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
@@ -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 { toIDLFile, addSyntheticType, resolveSyntheticType } from "./from-idl/deserialize";
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
- /*'false', */ 'static', 'public', 'private',
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;