expo-type-information 0.1.2 → 0.1.3

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.
@@ -21,6 +21,8 @@ const swiftDeclarationKind = {
21
21
  varParameter: 'source.lang.swift.decl.var.parameter',
22
22
  closure: 'source.lang.swift.expr.closure',
23
23
  enumcase: 'source.lang.swift.decl.enumcase',
24
+ varStatic: 'source.lang.swift.decl.var.static',
25
+ varGlobal: 'source.lang.swift.decl.var.global',
24
26
  };
25
27
  function isSwiftDictionary(type) {
26
28
  return (type.startsWith('[') &&
@@ -45,6 +47,12 @@ function isEitherTypeIdentifier(typeIdentifier) {
45
47
  function isEnumStructure(structure) {
46
48
  return structure['key.kind'] === swiftDeclarationKind.enum;
47
49
  }
50
+ function isClassStructure(structure) {
51
+ return structure['key.kind'] === swiftDeclarationKind.class;
52
+ }
53
+ function isStructStructure(structure) {
54
+ return structure['key.kind'] === swiftDeclarationKind.struct;
55
+ }
48
56
  function isRecordStructure(structure) {
49
57
  const isRecordOrClass = structure['key.kind'] === swiftDeclarationKind.struct ||
50
58
  structure['key.kind'] === swiftDeclarationKind.class;
@@ -202,6 +210,56 @@ function getIdentifierFromOffsetObject(offsetObject, file) {
202
210
  const endIndex = offsetObject['key.offset'] + offsetObject['key.length'];
203
211
  return file.content.substring(startIndex, endIndex).replaceAll('"', '');
204
212
  }
213
+ function getLiteralOrResolvedIdentifier(offsetObject, ctx) {
214
+ const { namespaces, file } = ctx;
215
+ const startIndex = offsetObject['key.offset'];
216
+ const endIndex = offsetObject['key.offset'] + offsetObject['key.length'];
217
+ const literalOrIdentifier = file.content.substring(startIndex, endIndex);
218
+ if (literalOrIdentifier.startsWith('"')) {
219
+ return literalOrIdentifier.replaceAll('"', '');
220
+ }
221
+ const parts = literalOrIdentifier.split('.');
222
+ const traverse = (baseObj, keys) => {
223
+ let current = baseObj;
224
+ for (const key of keys) {
225
+ if (typeof current === 'string' || current === null) {
226
+ return undefined;
227
+ }
228
+ const subNamespace = current[key];
229
+ if (subNamespace === undefined) {
230
+ return undefined;
231
+ }
232
+ current = subNamespace;
233
+ }
234
+ return current;
235
+ };
236
+ const n0 = traverse(namespaces, parts);
237
+ if (typeof n0 === 'string') {
238
+ return n0.replaceAll('"', '');
239
+ }
240
+ const n1 = traverse(namespaces[''] || {}, parts);
241
+ if (typeof n1 === 'string') {
242
+ return n1.replaceAll('"', '');
243
+ }
244
+ return parts[parts.length - 1] ?? literalOrIdentifier;
245
+ }
246
+ function isStringLiteral(str) {
247
+ return str.length > 1 && str[0] == '"' && str[str.length - 1] == '"';
248
+ }
249
+ function getInitializerValue(structure, file) {
250
+ const nameEnd = structure['key.nameoffset'] + structure['key.namelength'];
251
+ const declarationEnd = structure['key.offset'] + structure['key.length'];
252
+ if (!nameEnd || !declarationEnd) {
253
+ return null;
254
+ }
255
+ const valueSubstring = file.content.substring(nameEnd, declarationEnd);
256
+ const indexOfInitializerStart = valueSubstring.indexOf('=');
257
+ const initializer = valueSubstring.slice(indexOfInitializerStart + 1).trim();
258
+ if (!isStringLiteral(initializer)) {
259
+ return null;
260
+ }
261
+ return initializer;
262
+ }
205
263
  function hasSubstructure(structure) {
206
264
  return structure?.['key.substructure'] && structure['key.substructure'].length > 0;
207
265
  }
@@ -402,7 +460,8 @@ function getClosureBodyStructure(structure) {
402
460
  const classDeclarationClosureBody = classDeclarationClosure?.['key.substructure']?.[0];
403
461
  return classDeclarationClosureBody ?? null;
404
462
  }
405
- async function parseModuleClassStructure(structure, file, options) {
463
+ async function parseModuleClassStructure(structure, options, ctx) {
464
+ const { file } = ctx;
406
465
  const nestedModuleSubstructure = getClosureBodyStructure(structure)?.['key.substructure'];
407
466
  const nameSubstrucutre = structure['key.substructure']?.[0];
408
467
  const name = nameSubstrucutre
@@ -420,7 +479,7 @@ async function parseModuleClassStructure(structure, file, options) {
420
479
  };
421
480
  }
422
481
  // `parseModuleStructure` returns `ModuleClassDeclaration` with a found name or with the provided 'UNUSED_NAME', we don't need it here.
423
- const classTypeInfo = await parseModuleStructure(nestedModuleSubstructure, file, 'UNUSED_NAME', structure['key.offset'], options);
482
+ const classTypeInfo = await parseModuleStructure(nestedModuleSubstructure, 'UNUSED_NAME', structure['key.offset'], options, ctx);
424
483
  return {
425
484
  name,
426
485
  methods: classTypeInfo.functions,
@@ -475,7 +534,8 @@ async function parseModulePropDeclaration(substructure, file, options) {
475
534
  definitionOffset: substructure['key.offset'],
476
535
  };
477
536
  }
478
- async function parseModuleViewDeclaration(substructure, file, options) {
537
+ async function parseModuleViewDeclaration(substructure, options, ctx) {
538
+ const { file } = ctx;
479
539
  // The View arguments is a.self for some class a we want.
480
540
  const suffixLength = 5;
481
541
  const nameSubstrucutre = substructure['key.substructure']?.[0];
@@ -488,10 +548,15 @@ async function parseModuleViewDeclaration(substructure, file, options) {
488
548
  if (!viewSubstructure) {
489
549
  return null;
490
550
  }
491
- return await parseModuleStructure(viewSubstructure, file, name, viewStructure['key.offset'], options);
551
+ return await parseModuleStructure(viewSubstructure, name, viewStructure['key.offset'], options, ctx);
492
552
  }
493
- function parseModuleEventDeclaration(structure, file, events) {
494
- structure['key.substructure'].forEach((substructure) => events.push(getIdentifierFromOffsetObject(substructure, file)));
553
+ function parseModuleEventDeclaration(structure, events, ctx) {
554
+ structure['key.substructure'].forEach((substructure) => {
555
+ const eventName = getLiteralOrResolvedIdentifier(substructure, ctx);
556
+ if (eventName) {
557
+ events.push(eventName);
558
+ }
559
+ });
495
560
  }
496
561
  function hasFieldAttribute(attributes, file) {
497
562
  if (!attributes) {
@@ -559,7 +624,8 @@ function parsePropertyString(property, definitionOffset) {
559
624
  definitionOffset,
560
625
  };
561
626
  }
562
- async function parseModuleStructure(moduleStructure, file, name, definitionOffset, options) {
627
+ async function parseModuleStructure(moduleStructure, name, definitionOffset, options, ctx) {
628
+ const { file } = ctx;
563
629
  const moduleClassDeclaration = {
564
630
  name,
565
631
  constants: [],
@@ -602,7 +668,7 @@ async function parseModuleStructure(moduleStructure, file, name, definitionOffse
602
668
  break;
603
669
  }
604
670
  case 'Class':
605
- moduleClassDeclaration.classes.push(await parseModuleClassStructure(structure, file, options));
671
+ moduleClassDeclaration.classes.push(await parseModuleClassStructure(structure, options, ctx));
606
672
  break;
607
673
  case 'Property': {
608
674
  const propertyDeclaration = await parseModulePropertyStructure(structure, file, options);
@@ -627,14 +693,14 @@ async function parseModuleStructure(moduleStructure, file, name, definitionOffse
627
693
  moduleClassDeclaration.props.push(await parseModulePropDeclaration(structure, file, options));
628
694
  break;
629
695
  case 'View': {
630
- const viewDeclaration = await parseModuleViewDeclaration(structure, file, options);
696
+ const viewDeclaration = await parseModuleViewDeclaration(structure, options, ctx);
631
697
  if (viewDeclaration) {
632
698
  moduleClassDeclaration.views.push(viewDeclaration);
633
699
  }
634
700
  break;
635
701
  }
636
702
  case 'Events':
637
- parseModuleEventDeclaration(structure, file, moduleClassDeclaration.events);
703
+ parseModuleEventDeclaration(structure, moduleClassDeclaration.events, ctx);
638
704
  break;
639
705
  default:
640
706
  console.warn(`Module substructure not supported. ${structure['key.name']}`);
@@ -736,12 +802,39 @@ function collectModuleTypeIdentifiers(moduleClassDeclaration, fileTypeInformatio
736
802
  c.properties.forEach(collectArg);
737
803
  });
738
804
  }
805
+ function parseNamespaces(structure, namespaces, file, currentNamespace) {
806
+ if (isModuleStructure(structure) ||
807
+ isRecordStructure(structure) ||
808
+ isStructStructure(structure) ||
809
+ isEnumStructure(structure) ||
810
+ isClassStructure(structure)) {
811
+ const moduleName = structure['key.name'];
812
+ namespaces[moduleName] = namespaces[moduleName] || {};
813
+ const ns = namespaces[moduleName];
814
+ currentNamespace[moduleName] = ns;
815
+ structure['key.substructure'].forEach((substructure) => {
816
+ parseNamespaces(substructure, namespaces, file, ns);
817
+ });
818
+ return;
819
+ }
820
+ if (structure['key.kind'] === swiftDeclarationKind.varStatic ||
821
+ structure['key.kind'] === swiftDeclarationKind.varGlobal) {
822
+ currentNamespace[structure['key.name']] = getInitializerValue(structure, file);
823
+ return;
824
+ }
825
+ const substructures = structure['key.substructure'];
826
+ substructures?.forEach((substructure) => parseNamespaces(substructure, namespaces, file, currentNamespace));
827
+ }
739
828
  async function getSwiftFileTypeInformation(filePath, options) {
740
829
  const file = { path: filePath, content: fs_1.default.readFileSync(filePath, 'utf8') };
741
830
  const modulesStructures = [];
742
831
  const recordsStructures = [];
743
832
  const enumsStructures = [];
744
- parseStructure(getStructureFromFile(file), '', modulesStructures, recordsStructures, enumsStructures);
833
+ const fileStructure = getStructureFromFile(file);
834
+ parseStructure(fileStructure, '', modulesStructures, recordsStructures, enumsStructures);
835
+ const namespaces = {};
836
+ namespaces[''] = {};
837
+ parseNamespaces(fileStructure, namespaces, file, namespaces['']);
745
838
  const inferredTypeParametersCount = new Map();
746
839
  const moduleClasses = [];
747
840
  const moduleTypeIdentifiers = new Set();
@@ -753,7 +846,10 @@ async function getSwiftFileTypeInformation(filePath, options) {
753
846
  return parseRecordStructure(rd, recordTypeIdentifiers, inferredTypeParametersCount, file, options);
754
847
  };
755
848
  const recordsPromise = (0, utils_1.taskAll)(recordsStructures, recordMap);
756
- const moduleClassDeclarationsPromise = (0, utils_1.taskAll)(modulesStructures.filter(({ structure }) => hasSubstructure(structure)), ({ structure, name }) => parseModuleStructure(structure['key.substructure'], file, name, structure['key.offset'], options));
849
+ const moduleClassDeclarationsPromise = (0, utils_1.taskAll)(modulesStructures.filter(({ structure }) => hasSubstructure(structure)), ({ structure, name }) => {
850
+ namespaces[name] = namespaces[name] || {};
851
+ return parseModuleStructure(structure['key.substructure'], name, structure['key.offset'], options, { namespaces, file });
852
+ });
757
853
  const [records, moduleClassDeclarations] = await Promise.all([
758
854
  recordsPromise,
759
855
  moduleClassDeclarationsPromise,
@@ -1 +1 @@
1
- {"version":3,"file":"sourcekittenTypeInformation.js","sourceRoot":"","sources":["../../src/swift/sourcekittenTypeInformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourcekittenTypeInformation.js","sourceRoot":"","sources":["../../src/swift/sourcekittenTypeInformation.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -15,6 +15,7 @@ export type Structure = {
15
15
  'key.offset': number;
16
16
  'key.length': number;
17
17
  'key.nameoffset': number;
18
+ 'key.namelength': number;
18
19
  'key.inheritedtypes': {
19
20
  'key.name': string;
20
21
  }[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-type-information",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "keywords": [
5
5
  "react-native",
6
6
  "expo",
@@ -36,7 +36,7 @@
36
36
  "ts-jest": "^29.1.2",
37
37
  "expo-module-scripts": "56.0.3"
38
38
  },
39
- "gitHead": "6ffed84381e2d2bb80c2fc713d99724f707d6c06",
39
+ "gitHead": "70af1caf83d8a324b46e02e18cd5c8c4e310da20",
40
40
  "scripts": {
41
41
  "build": "expo-module build",
42
42
  "clean": "expo-module clean",
@@ -47,6 +47,8 @@ const swiftDeclarationKind = {
47
47
  varParameter: 'source.lang.swift.decl.var.parameter',
48
48
  closure: 'source.lang.swift.expr.closure',
49
49
  enumcase: 'source.lang.swift.decl.enumcase',
50
+ varStatic: 'source.lang.swift.decl.var.static',
51
+ varGlobal: 'source.lang.swift.decl.var.global',
50
52
  };
51
53
 
52
54
  function isSwiftDictionary(type: string): boolean {
@@ -82,6 +84,14 @@ function isEnumStructure(structure: Structure): boolean {
82
84
  return structure['key.kind'] === swiftDeclarationKind.enum;
83
85
  }
84
86
 
87
+ function isClassStructure(structure: Structure): boolean {
88
+ return structure['key.kind'] === swiftDeclarationKind.class;
89
+ }
90
+
91
+ function isStructStructure(structure: Structure): boolean {
92
+ return structure['key.kind'] === swiftDeclarationKind.struct;
93
+ }
94
+
85
95
  function isRecordStructure(structure: Structure): boolean {
86
96
  const isRecordOrClass =
87
97
  structure['key.kind'] === swiftDeclarationKind.struct ||
@@ -256,6 +266,66 @@ function getIdentifierFromOffsetObject(offsetObject: Structure, file: FileType)
256
266
  return file.content.substring(startIndex, endIndex).replaceAll('"', '');
257
267
  }
258
268
 
269
+ function getLiteralOrResolvedIdentifier(offsetObject: Structure, ctx: ParseContext): string {
270
+ const { namespaces, file } = ctx;
271
+ const startIndex = offsetObject['key.offset'];
272
+ const endIndex = offsetObject['key.offset'] + offsetObject['key.length'];
273
+ const literalOrIdentifier = file.content.substring(startIndex, endIndex);
274
+
275
+ if (literalOrIdentifier.startsWith('"')) {
276
+ return literalOrIdentifier.replaceAll('"', '');
277
+ }
278
+
279
+ const parts = literalOrIdentifier.split('.');
280
+
281
+ const traverse = (baseObj: namespace | string | null, keys: string[]) => {
282
+ let current = baseObj;
283
+ for (const key of keys) {
284
+ if (typeof current === 'string' || current === null) {
285
+ return undefined;
286
+ }
287
+ const subNamespace = current[key];
288
+ if (subNamespace === undefined) {
289
+ return undefined;
290
+ }
291
+ current = subNamespace;
292
+ }
293
+ return current;
294
+ };
295
+
296
+ const n0 = traverse(namespaces, parts);
297
+ if (typeof n0 === 'string') {
298
+ return n0.replaceAll('"', '');
299
+ }
300
+
301
+ const n1 = traverse(namespaces[''] || {}, parts);
302
+ if (typeof n1 === 'string') {
303
+ return n1.replaceAll('"', '');
304
+ }
305
+
306
+ return parts[parts.length - 1] ?? literalOrIdentifier;
307
+ }
308
+
309
+ function isStringLiteral(str: string): boolean {
310
+ return str.length > 1 && str[0] == '"' && str[str.length - 1] == '"';
311
+ }
312
+
313
+ function getInitializerValue(structure: Structure, file: FileType): string | null {
314
+ const nameEnd = structure['key.nameoffset'] + structure['key.namelength'];
315
+ const declarationEnd = structure['key.offset'] + structure['key.length'];
316
+ if (!nameEnd || !declarationEnd) {
317
+ return null;
318
+ }
319
+ const valueSubstring = file.content.substring(nameEnd, declarationEnd);
320
+ const indexOfInitializerStart = valueSubstring.indexOf('=');
321
+ const initializer = valueSubstring.slice(indexOfInitializerStart + 1).trim();
322
+
323
+ if (!isStringLiteral(initializer)) {
324
+ return null;
325
+ }
326
+ return initializer;
327
+ }
328
+
259
329
  function hasSubstructure(structure: Structure) {
260
330
  return structure?.['key.substructure'] && structure['key.substructure'].length > 0;
261
331
  }
@@ -518,9 +588,10 @@ function getClosureBodyStructure(structure: Structure): Structure | null {
518
588
 
519
589
  async function parseModuleClassStructure(
520
590
  structure: Structure,
521
- file: FileType,
522
- options: SwiftFileTypeInformationOptions
591
+ options: SwiftFileTypeInformationOptions,
592
+ ctx: ParseContext
523
593
  ): Promise<ClassDeclaration> {
594
+ const { file } = ctx;
524
595
  const nestedModuleSubstructure = getClosureBodyStructure(structure)?.['key.substructure'];
525
596
  const nameSubstrucutre = structure['key.substructure']?.[0];
526
597
  const name = nameSubstrucutre
@@ -542,10 +613,10 @@ async function parseModuleClassStructure(
542
613
  // `parseModuleStructure` returns `ModuleClassDeclaration` with a found name or with the provided 'UNUSED_NAME', we don't need it here.
543
614
  const classTypeInfo = await parseModuleStructure(
544
615
  nestedModuleSubstructure,
545
- file,
546
616
  'UNUSED_NAME',
547
617
  structure['key.offset'],
548
- options
618
+ options,
619
+ ctx
549
620
  );
550
621
  return {
551
622
  name,
@@ -615,9 +686,10 @@ async function parseModulePropDeclaration(
615
686
 
616
687
  async function parseModuleViewDeclaration(
617
688
  substructure: Structure,
618
- file: FileType,
619
- options: SwiftFileTypeInformationOptions
689
+ options: SwiftFileTypeInformationOptions,
690
+ ctx: ParseContext
620
691
  ): Promise<ViewDeclaration | null> {
692
+ const { file } = ctx;
621
693
  // The View arguments is a.self for some class a we want.
622
694
  const suffixLength = 5;
623
695
  const nameSubstrucutre = substructure['key.substructure']?.[0];
@@ -634,17 +706,20 @@ async function parseModuleViewDeclaration(
634
706
 
635
707
  return await parseModuleStructure(
636
708
  viewSubstructure,
637
- file,
638
709
  name,
639
710
  viewStructure['key.offset'],
640
- options
711
+ options,
712
+ ctx
641
713
  );
642
714
  }
643
715
 
644
- function parseModuleEventDeclaration(structure: Structure, file: FileType, events: string[]) {
645
- structure['key.substructure'].forEach((substructure) =>
646
- events.push(getIdentifierFromOffsetObject(substructure, file))
647
- );
716
+ function parseModuleEventDeclaration(structure: Structure, events: string[], ctx: ParseContext) {
717
+ structure['key.substructure'].forEach((substructure) => {
718
+ const eventName = getLiteralOrResolvedIdentifier(substructure, ctx);
719
+ if (eventName) {
720
+ events.push(eventName);
721
+ }
722
+ });
648
723
  }
649
724
 
650
725
  function hasFieldAttribute(attributes: Attribute[] | null, file: FileType): boolean {
@@ -740,13 +815,23 @@ function parsePropertyString(
740
815
  };
741
816
  }
742
817
 
818
+ type namespace = {
819
+ [key: string]: namespace | string | null;
820
+ };
821
+
822
+ type ParseContext = {
823
+ file: FileType;
824
+ namespaces: { [key: string]: namespace };
825
+ };
826
+
743
827
  async function parseModuleStructure(
744
828
  moduleStructure: Structure[],
745
- file: FileType,
746
829
  name: string,
747
830
  definitionOffset: number,
748
- options: SwiftFileTypeInformationOptions
831
+ options: SwiftFileTypeInformationOptions,
832
+ ctx: ParseContext
749
833
  ): Promise<ModuleClassDeclaration> {
834
+ const { file } = ctx;
750
835
  const moduleClassDeclaration: ModuleClassDeclaration = {
751
836
  name,
752
837
  constants: [],
@@ -797,7 +882,7 @@ async function parseModuleStructure(
797
882
  }
798
883
  case 'Class':
799
884
  moduleClassDeclaration.classes.push(
800
- await parseModuleClassStructure(structure, file, options)
885
+ await parseModuleClassStructure(structure, options, ctx)
801
886
  );
802
887
  break;
803
888
  case 'Property': {
@@ -835,14 +920,14 @@ async function parseModuleStructure(
835
920
  );
836
921
  break;
837
922
  case 'View': {
838
- const viewDeclaration = await parseModuleViewDeclaration(structure, file, options);
923
+ const viewDeclaration = await parseModuleViewDeclaration(structure, options, ctx);
839
924
  if (viewDeclaration) {
840
925
  moduleClassDeclaration.views.push(viewDeclaration);
841
926
  }
842
927
  break;
843
928
  }
844
929
  case 'Events':
845
- parseModuleEventDeclaration(structure, file, moduleClassDeclaration.events);
930
+ parseModuleEventDeclaration(structure, moduleClassDeclaration.events, ctx);
846
931
  break;
847
932
  default:
848
933
  console.warn(`Module substructure not supported. ${structure['key.name']}`);
@@ -993,6 +1078,41 @@ function collectModuleTypeIdentifiers(
993
1078
  });
994
1079
  }
995
1080
 
1081
+ function parseNamespaces(
1082
+ structure: Structure,
1083
+ namespaces: { [key: string]: namespace },
1084
+ file: FileType,
1085
+ currentNamespace: namespace
1086
+ ) {
1087
+ if (
1088
+ isModuleStructure(structure) ||
1089
+ isRecordStructure(structure) ||
1090
+ isStructStructure(structure) ||
1091
+ isEnumStructure(structure) ||
1092
+ isClassStructure(structure)
1093
+ ) {
1094
+ const moduleName = structure['key.name'];
1095
+ namespaces[moduleName] = namespaces[moduleName] || {};
1096
+ const ns: namespace = namespaces[moduleName];
1097
+ currentNamespace[moduleName] = ns;
1098
+ structure['key.substructure'].forEach((substructure) => {
1099
+ parseNamespaces(substructure, namespaces, file, ns);
1100
+ });
1101
+ return;
1102
+ }
1103
+ if (
1104
+ structure['key.kind'] === swiftDeclarationKind.varStatic ||
1105
+ structure['key.kind'] === swiftDeclarationKind.varGlobal
1106
+ ) {
1107
+ currentNamespace[structure['key.name']] = getInitializerValue(structure, file);
1108
+ return;
1109
+ }
1110
+ const substructures = structure['key.substructure'];
1111
+ substructures?.forEach((substructure) =>
1112
+ parseNamespaces(substructure, namespaces, file, currentNamespace)
1113
+ );
1114
+ }
1115
+
996
1116
  export type SwiftFileTypeInformationOptions = {
997
1117
  typeInference: boolean;
998
1118
  };
@@ -1006,13 +1126,12 @@ export async function getSwiftFileTypeInformation(
1006
1126
  const modulesStructures: { name: string; structure: Structure }[] = [];
1007
1127
  const recordsStructures: Structure[] = [];
1008
1128
  const enumsStructures: Structure[] = [];
1009
- parseStructure(
1010
- getStructureFromFile(file),
1011
- '',
1012
- modulesStructures,
1013
- recordsStructures,
1014
- enumsStructures
1015
- );
1129
+ const fileStructure = getStructureFromFile(file);
1130
+ parseStructure(fileStructure, '', modulesStructures, recordsStructures, enumsStructures);
1131
+
1132
+ const namespaces: { [key: string]: namespace } = {};
1133
+ namespaces[''] = {};
1134
+ parseNamespaces(fileStructure, namespaces, file, namespaces['']);
1016
1135
 
1017
1136
  const inferredTypeParametersCount = new Map<string, number>();
1018
1137
  const moduleClasses: ModuleClassDeclaration[] = [];
@@ -1034,14 +1153,16 @@ export async function getSwiftFileTypeInformation(
1034
1153
  const recordsPromise = taskAll(recordsStructures, recordMap);
1035
1154
  const moduleClassDeclarationsPromise = taskAll(
1036
1155
  modulesStructures.filter(({ structure }) => hasSubstructure(structure)),
1037
- ({ structure, name }) =>
1038
- parseModuleStructure(
1156
+ ({ structure, name }) => {
1157
+ namespaces[name] = namespaces[name] || {};
1158
+ return parseModuleStructure(
1039
1159
  structure['key.substructure'],
1040
- file,
1041
1160
  name,
1042
1161
  structure['key.offset'],
1043
- options
1044
- )
1162
+ options,
1163
+ { namespaces, file }
1164
+ );
1165
+ }
1045
1166
  );
1046
1167
 
1047
1168
  const [records, moduleClassDeclarations] = await Promise.all([
package/src/types.ts CHANGED
@@ -17,6 +17,7 @@ export type Structure = {
17
17
  'key.offset': number;
18
18
  'key.length': number;
19
19
  'key.nameoffset': number;
20
+ 'key.namelength': number;
20
21
  'key.inheritedtypes': { 'key.name': string }[];
21
22
  'key.attributes': Attribute[];
22
23
  };
@@ -3,7 +3,20 @@ import WebKit
3
3
 
4
4
  public class TestModule: Module {
5
5
  public func definition() -> ModuleDefinition {
6
- Events("event1", "event2", "event3")
6
+ Events(
7
+ "event1",
8
+ "event2",
9
+ "event3",
10
+ globalEventName,
11
+ privateGlobalEventName,
12
+ EventNames.staticLetEvent,
13
+ EventNames.staticVarEvent,
14
+ EventStructNamespace.structEvent,
15
+ EventClassNamespace.classEvent,
16
+ OuterNamespace.InnerNamespace.nestedEvent,
17
+ // TODO(@HubertBer) Maybe fix this if this is needed, for now just document we don't support it
18
+ globalAssignedToGlobal
19
+ )
7
20
 
8
21
  Constant("StringConstant") { () -> Int in
9
22
  return "Swift constant 1283"
@@ -196,3 +209,27 @@ enum IntBackedEnum1: Int {
196
209
  enum IntBackedEnum2: Something, Int, SomethingElse {
197
210
  case simpleCase
198
211
  }
212
+ // Global variable names
213
+ let globalEventName = "onGlobalEvent"
214
+
215
+ private let privateGlobalEventName = "onPrivateGlobalEvent"
216
+ private let globalAssignedToGlobal = globalEventName
217
+
218
+ enum EventNames {
219
+ static let staticLetEvent = "onStaticLetEvent"
220
+ static var staticVarEvent = "onStaticVarEvent"
221
+ }
222
+
223
+ struct EventStructNamespace {
224
+ static let structEvent = "onStructEvent"
225
+ }
226
+
227
+ class EventClassNamespace {
228
+ static let classEvent = "onClassEvent"
229
+ }
230
+
231
+ enum OuterNamespace {
232
+ enum InnerNamespace {
233
+ static let nestedEvent = "onNestedEvent"
234
+ }
235
+ }
@@ -48,6 +48,8 @@ export enum IntBackedEnum1 {
48
48
  export enum IntBackedEnum2 {
49
49
  simpleCase
50
50
  }
51
+ export enum EventNames {}
52
+ export enum OuterNamespace {}
51
53
 
52
54
  export declare class TestClassWithConstructor {
53
55
  constructor(a: number);
@@ -69,6 +71,13 @@ export type TestModuleEvents = {
69
71
  event1: (...args: any[]) => void;
70
72
  event2: (...args: any[]) => void;
71
73
  event3: (...args: any[]) => void;
74
+ onClassEvent: (...args: any[]) => void;
75
+ onGlobalEvent: (...args: any[]) => void;
76
+ onNestedEvent: (...args: any[]) => void;
77
+ onPrivateGlobalEvent: (...args: any[]) => void;
78
+ onStaticLetEvent: (...args: any[]) => void;
79
+ onStaticVarEvent: (...args: any[]) => void;
80
+ onStructEvent: (...args: any[]) => void;
72
81
  };
73
82
 
74
83
  export interface ExpoWebViewProps extends ViewProps {
@@ -232,6 +241,8 @@ import {
232
241
  TestEnum,
233
242
  IntBackedEnum1,
234
243
  IntBackedEnum2,
244
+ EventNames,
245
+ OuterNamespace,
235
246
  TestRecord,
236
247
  TestRecord2,
237
248
  TestRecordClass,
@@ -338,6 +349,8 @@ export enum IntBackedEnum1 {
338
349
  export enum IntBackedEnum2 {
339
350
  simpleCase
340
351
  }
352
+ export enum EventNames {}
353
+ export enum OuterNamespace {}
341
354
 
342
355
  export declare class TestClassWithConstructor {
343
356
  constructor(a: number);
@@ -359,6 +372,13 @@ export type TestModuleEvents = {
359
372
  event1: (...args: any[]) => void;
360
373
  event2: (...args: any[]) => void;
361
374
  event3: (...args: any[]) => void;
375
+ onClassEvent: (...args: any[]) => void;
376
+ onGlobalEvent: (...args: any[]) => void;
377
+ onNestedEvent: (...args: any[]) => void;
378
+ onPrivateGlobalEvent: (...args: any[]) => void;
379
+ onStaticLetEvent: (...args: any[]) => void;
380
+ onStaticVarEvent: (...args: any[]) => void;
381
+ onStructEvent: (...args: any[]) => void;
362
382
  };
363
383
 
364
384
  export interface ExpoWebViewProps extends ViewProps {
@@ -444,6 +464,10 @@ export enum IntBackedEnum1 {
444
464
  export enum IntBackedEnum2 {
445
465
  simpleCase
446
466
  }
467
+ export enum EventNames {
468
+ }
469
+ export enum OuterNamespace {
470
+ }
447
471
 
448
472
 
449
473
  export function SimpleFunction(a: number, b: number): number { return 0; }
@@ -524,6 +548,12 @@ export var IntBackedEnum2;
524
548
  (function (IntBackedEnum2) {
525
549
  IntBackedEnum2[IntBackedEnum2["simpleCase"] = 0] = "simpleCase";
526
550
  })(IntBackedEnum2 || (IntBackedEnum2 = {}));
551
+ export var EventNames;
552
+ (function (EventNames) {
553
+ })(EventNames || (EventNames = {}));
554
+ export var OuterNamespace;
555
+ (function (OuterNamespace) {
556
+ })(OuterNamespace || (OuterNamespace = {}));
527
557
  export function SimpleFunction(a, b) { return 0; }
528
558
  export function TestUntypedFunction() { return ""; }
529
559
  export function TestUnicodeCharacters() { return; }
@@ -598,6 +628,8 @@ export enum IntBackedEnum1 {
598
628
  export enum IntBackedEnum2 {
599
629
  simpleCase
600
630
  }
631
+ export enum EventNames {}
632
+ export enum OuterNamespace {}
601
633
 
602
634
  export declare class TestClassWithConstructor {
603
635
  constructor(a: number);
@@ -619,6 +651,13 @@ export type TestModuleEvents = {
619
651
  event1: (...args: any[]) => void;
620
652
  event2: (...args: any[]) => void;
621
653
  event3: (...args: any[]) => void;
654
+ onClassEvent: (...args: any[]) => void;
655
+ onGlobalEvent: (...args: any[]) => void;
656
+ onNestedEvent: (...args: any[]) => void;
657
+ onPrivateGlobalEvent: (...args: any[]) => void;
658
+ onStaticLetEvent: (...args: any[]) => void;
659
+ onStaticVarEvent: (...args: any[]) => void;
660
+ onStructEvent: (...args: any[]) => void;
622
661
  };
623
662
 
624
663
  export declare class TestModuleNativeModuleType extends NativeModule<TestModuleEvents> {
@@ -696,8 +735,10 @@ export default _default;
696
735
  exports[`Same type information 1`] = `
697
736
  {
698
737
  "declaredTypeIdentifiersList": [
738
+ "EventNames",
699
739
  "IntBackedEnum1",
700
740
  "IntBackedEnum2",
741
+ "OuterNamespace",
701
742
  "TestBasicClass",
702
743
  "TestClassWithConstructor",
703
744
  "TestEmptyClass",
@@ -734,6 +775,16 @@ exports[`Same type information 1`] = `
734
775
  "name": "IntBackedEnum2",
735
776
  "stringBacked": false,
736
777
  },
778
+ {
779
+ "cases": [],
780
+ "name": "EventNames",
781
+ "stringBacked": true,
782
+ },
783
+ {
784
+ "cases": [],
785
+ "name": "OuterNamespace",
786
+ "stringBacked": true,
787
+ },
737
788
  ],
738
789
  "inferredTypeParametersCountList": [
739
790
  [
@@ -769,7 +820,7 @@ exports[`Same type information 1`] = `
769
820
  },
770
821
  },
771
822
  ],
772
- "definitionOffset": 2637,
823
+ "definitionOffset": 2915,
773
824
  "isStatic": false,
774
825
  "name": "TestSimpleAsyncFunction",
775
826
  "parameters": [],
@@ -798,7 +849,7 @@ exports[`Same type information 1`] = `
798
849
  },
799
850
  },
800
851
  ],
801
- "definitionOffset": 2840,
852
+ "definitionOffset": 3118,
802
853
  "isStatic": false,
803
854
  "name": "TestUnderscore",
804
855
  "parameters": [],
@@ -821,9 +872,9 @@ exports[`Same type information 1`] = `
821
872
  },
822
873
  },
823
874
  ],
824
- "definitionOffset": 2966,
875
+ "definitionOffset": 3244,
825
876
  },
826
- "definitionOffset": 2920,
877
+ "definitionOffset": 3198,
827
878
  "methods": [],
828
879
  "name": "TestClassWithConstructor",
829
880
  "properties": [],
@@ -840,7 +891,7 @@ exports[`Same type information 1`] = `
840
891
  },
841
892
  },
842
893
  ],
843
- "definitionOffset": 3508,
894
+ "definitionOffset": 3786,
844
895
  "isStatic": false,
845
896
  "name": "TestAsyncFunction",
846
897
  "parameters": [],
@@ -859,7 +910,7 @@ exports[`Same type information 1`] = `
859
910
  },
860
911
  },
861
912
  ],
862
- "definitionOffset": 3606,
913
+ "definitionOffset": 3884,
863
914
  "isStatic": true,
864
915
  "name": "TestStaticAsyncFunction",
865
916
  "parameters": [],
@@ -905,13 +956,13 @@ exports[`Same type information 1`] = `
905
956
  },
906
957
  },
907
958
  ],
908
- "definitionOffset": 3068,
959
+ "definitionOffset": 3346,
909
960
  },
910
- "definitionOffset": 3032,
961
+ "definitionOffset": 3310,
911
962
  "methods": [
912
963
  {
913
964
  "arguments": [],
914
- "definitionOffset": 3693,
965
+ "definitionOffset": 3971,
915
966
  "isStatic": true,
916
967
  "name": "TestStaticFunction",
917
968
  "parameters": [],
@@ -924,7 +975,7 @@ exports[`Same type information 1`] = `
924
975
  "name": "TestBasicClass",
925
976
  "properties": [
926
977
  {
927
- "definitionOffset": 3172,
978
+ "definitionOffset": 3450,
928
979
  "name": "TestIntProperty",
929
980
  "type": {
930
981
  "kind": 0,
@@ -932,7 +983,7 @@ exports[`Same type information 1`] = `
932
983
  },
933
984
  },
934
985
  {
935
- "definitionOffset": 3240,
986
+ "definitionOffset": 3518,
936
987
  "name": "TestEitherProperty",
937
988
  "type": {
938
989
  "kind": 2,
@@ -952,7 +1003,7 @@ exports[`Same type information 1`] = `
952
1003
  },
953
1004
  },
954
1005
  {
955
- "definitionOffset": 3327,
1006
+ "definitionOffset": 3605,
956
1007
  "name": "TestEnumProperty",
957
1008
  "type": {
958
1009
  "kind": 1,
@@ -960,7 +1011,7 @@ exports[`Same type information 1`] = `
960
1011
  },
961
1012
  },
962
1013
  {
963
- "definitionOffset": 3411,
1014
+ "definitionOffset": 3689,
964
1015
  "name": "TestRecordProperty",
965
1016
  "type": {
966
1017
  "kind": 1,
@@ -972,7 +1023,7 @@ exports[`Same type information 1`] = `
972
1023
  {
973
1024
  "asyncMethods": [],
974
1025
  "constructor": null,
975
- "definitionOffset": 3791,
1026
+ "definitionOffset": 4069,
976
1027
  "methods": [],
977
1028
  "name": "TestEmptyClass",
978
1029
  "properties": [],
@@ -980,7 +1031,7 @@ exports[`Same type information 1`] = `
980
1031
  ],
981
1032
  "constants": [
982
1033
  {
983
- "definitionOffset": 167,
1034
+ "definitionOffset": 437,
984
1035
  "name": "StringConstant",
985
1036
  "type": {
986
1037
  "kind": 0,
@@ -988,7 +1039,7 @@ exports[`Same type information 1`] = `
988
1039
  },
989
1040
  },
990
1041
  {
991
- "definitionOffset": 338,
1042
+ "definitionOffset": 608,
992
1043
  "name": "IntConstant",
993
1044
  "type": {
994
1045
  "kind": 0,
@@ -996,7 +1047,7 @@ exports[`Same type information 1`] = `
996
1047
  },
997
1048
  },
998
1049
  {
999
- "definitionOffset": 488,
1050
+ "definitionOffset": 758,
1000
1051
  "name": "UntypedConstant",
1001
1052
  "type": {
1002
1053
  "kind": 0,
@@ -1010,6 +1061,13 @@ exports[`Same type information 1`] = `
1010
1061
  "event1",
1011
1062
  "event2",
1012
1063
  "event3",
1064
+ "onClassEvent",
1065
+ "onGlobalEvent",
1066
+ "onNestedEvent",
1067
+ "onPrivateGlobalEvent",
1068
+ "onStaticLetEvent",
1069
+ "onStaticVarEvent",
1070
+ "onStructEvent",
1013
1071
  ],
1014
1072
  "functions": [
1015
1073
  {
@@ -1029,7 +1087,7 @@ exports[`Same type information 1`] = `
1029
1087
  },
1030
1088
  },
1031
1089
  ],
1032
- "definitionOffset": 534,
1090
+ "definitionOffset": 804,
1033
1091
  "isStatic": false,
1034
1092
  "name": "SimpleFunction",
1035
1093
  "parameters": [],
@@ -1040,7 +1098,7 @@ exports[`Same type information 1`] = `
1040
1098
  },
1041
1099
  {
1042
1100
  "arguments": [],
1043
- "definitionOffset": 710,
1101
+ "definitionOffset": 980,
1044
1102
  "isStatic": false,
1045
1103
  "name": "TestUntypedFunction",
1046
1104
  "parameters": [],
@@ -1051,7 +1109,7 @@ exports[`Same type information 1`] = `
1051
1109
  },
1052
1110
  {
1053
1111
  "arguments": [],
1054
- "definitionOffset": 866,
1112
+ "definitionOffset": 1136,
1055
1113
  "isStatic": false,
1056
1114
  "name": "TestUnicodeCharacters",
1057
1115
  "parameters": [],
@@ -1062,7 +1120,7 @@ exports[`Same type information 1`] = `
1062
1120
  },
1063
1121
  {
1064
1122
  "arguments": [],
1065
- "definitionOffset": 1068,
1123
+ "definitionOffset": 1338,
1066
1124
  "isStatic": false,
1067
1125
  "name": "TestUntypedFunction2",
1068
1126
  "parameters": [],
@@ -1073,7 +1131,7 @@ exports[`Same type information 1`] = `
1073
1131
  },
1074
1132
  {
1075
1133
  "arguments": [],
1076
- "definitionOffset": 1244,
1134
+ "definitionOffset": 1514,
1077
1135
  "isStatic": false,
1078
1136
  "name": "TestUntypedFunction3",
1079
1137
  "parameters": [],
@@ -1095,7 +1153,7 @@ exports[`Same type information 1`] = `
1095
1153
  },
1096
1154
  },
1097
1155
  ],
1098
- "definitionOffset": 1422,
1156
+ "definitionOffset": 1696,
1099
1157
  "isStatic": false,
1100
1158
  "name": "TestArrays",
1101
1159
  "parameters": [],
@@ -1154,7 +1212,7 @@ exports[`Same type information 1`] = `
1154
1212
  },
1155
1213
  },
1156
1214
  ],
1157
- "definitionOffset": 1593,
1215
+ "definitionOffset": 1871,
1158
1216
  "isStatic": false,
1159
1217
  "name": "TestDictionaries",
1160
1218
  "parameters": [],
@@ -1245,7 +1303,7 @@ exports[`Same type information 1`] = `
1245
1303
  },
1246
1304
  },
1247
1305
  ],
1248
- "definitionOffset": 1802,
1306
+ "definitionOffset": 2080,
1249
1307
  "isStatic": false,
1250
1308
  "name": "TestParametrizedTypes",
1251
1309
  "parameters": [],
@@ -1273,7 +1331,7 @@ exports[`Same type information 1`] = `
1273
1331
  },
1274
1332
  },
1275
1333
  ],
1276
- "definitionOffset": 2058,
1334
+ "definitionOffset": 2336,
1277
1335
  "isStatic": false,
1278
1336
  "name": "TestTypeCombinations",
1279
1337
  "parameters": [],
@@ -1311,7 +1369,7 @@ exports[`Same type information 1`] = `
1311
1369
  },
1312
1370
  {
1313
1371
  "arguments": [],
1314
- "definitionOffset": 2271,
1372
+ "definitionOffset": 2549,
1315
1373
  "isStatic": false,
1316
1374
  "name": "TestFunctionReturningRecord",
1317
1375
  "parameters": [],
@@ -1322,7 +1380,7 @@ exports[`Same type information 1`] = `
1322
1380
  },
1323
1381
  {
1324
1382
  "arguments": [],
1325
- "definitionOffset": 2448,
1383
+ "definitionOffset": 2726,
1326
1384
  "isStatic": false,
1327
1385
  "name": "TestFunctionReturningEnum",
1328
1386
  "parameters": [],
@@ -1341,7 +1399,7 @@ exports[`Same type information 1`] = `
1341
1399
  "classes": [],
1342
1400
  "constants": [],
1343
1401
  "constructor": null,
1344
- "definitionOffset": 3854,
1402
+ "definitionOffset": 4132,
1345
1403
  "events": [
1346
1404
  "onEvent1",
1347
1405
  "onEvent2",
@@ -1367,7 +1425,7 @@ exports[`Same type information 1`] = `
1367
1425
  },
1368
1426
  },
1369
1427
  ],
1370
- "definitionOffset": 3900,
1428
+ "definitionOffset": 4178,
1371
1429
  "name": "url",
1372
1430
  },
1373
1431
  {
@@ -1387,7 +1445,7 @@ exports[`Same type information 1`] = `
1387
1445
  },
1388
1446
  },
1389
1447
  ],
1390
- "definitionOffset": 4084,
1448
+ "definitionOffset": 4362,
1391
1449
  "name": "testRecord",
1392
1450
  },
1393
1451
  {
@@ -1407,7 +1465,7 @@ exports[`Same type information 1`] = `
1407
1465
  },
1408
1466
  },
1409
1467
  ],
1410
- "definitionOffset": 4155,
1468
+ "definitionOffset": 4433,
1411
1469
  "name": "testRecord2",
1412
1470
  },
1413
1471
  {
@@ -1427,7 +1485,7 @@ exports[`Same type information 1`] = `
1427
1485
  },
1428
1486
  },
1429
1487
  ],
1430
- "definitionOffset": 4229,
1488
+ "definitionOffset": 4507,
1431
1489
  "name": "testRecordClass",
1432
1490
  },
1433
1491
  {
@@ -1447,7 +1505,7 @@ exports[`Same type information 1`] = `
1447
1505
  },
1448
1506
  },
1449
1507
  ],
1450
- "definitionOffset": 4315,
1508
+ "definitionOffset": 4593,
1451
1509
  "name": "testEnum",
1452
1510
  },
1453
1511
  ],
@@ -1575,6 +1633,17 @@ exports[`Same type information 1`] = `
1575
1633
  },
1576
1634
  ],
1577
1635
  "typeIdentifierDefinitionList": [
1636
+ [
1637
+ "EventNames",
1638
+ {
1639
+ "definition": {
1640
+ "cases": [],
1641
+ "name": "EventNames",
1642
+ "stringBacked": true,
1643
+ },
1644
+ "kind": 1,
1645
+ },
1646
+ ],
1578
1647
  [
1579
1648
  "IntBackedEnum1",
1580
1649
  {
@@ -1603,6 +1672,17 @@ exports[`Same type information 1`] = `
1603
1672
  "kind": 1,
1604
1673
  },
1605
1674
  ],
1675
+ [
1676
+ "OuterNamespace",
1677
+ {
1678
+ "definition": {
1679
+ "cases": [],
1680
+ "name": "OuterNamespace",
1681
+ "stringBacked": true,
1682
+ },
1683
+ "kind": 1,
1684
+ },
1685
+ ],
1606
1686
  [
1607
1687
  "TestEnum",
1608
1688
  {