@fairfox/polly 0.7.0 → 0.7.1

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.
@@ -1794,11 +1794,24 @@ class TypeExtractor {
1794
1794
  const stateType = stateFilePath ? this.extractStateType(stateFilePath) : this.findStateType();
1795
1795
  const messageTypes = this.findMessageTypes();
1796
1796
  const fields = stateType ? this.analyzeFields(stateType) : [];
1797
+ const handlerAnalysis = this.extractHandlerAnalysis();
1798
+ const validMessageTypes = this.filterAndLogMessageTypes(messageTypes, handlerAnalysis.messageTypes);
1799
+ const validHandlers = this.filterAndLogHandlers(handlerAnalysis.handlers);
1800
+ return {
1801
+ stateType,
1802
+ messageTypes: validMessageTypes,
1803
+ fields,
1804
+ handlers: validHandlers
1805
+ };
1806
+ }
1807
+ extractHandlerAnalysis() {
1797
1808
  const configFilePath = this.project.getCompilerOptions()["configFilePath"];
1798
1809
  const tsConfigPath = typeof configFilePath === "string" ? configFilePath : "tsconfig.json";
1799
1810
  const handlerExtractor = new HandlerExtractor(tsConfigPath);
1800
- const handlerAnalysis = handlerExtractor.extractHandlers();
1801
- const allMessageTypes = Array.from(new Set([...messageTypes, ...handlerAnalysis.messageTypes]));
1811
+ return handlerExtractor.extractHandlers();
1812
+ }
1813
+ filterAndLogMessageTypes(messageTypes, handlerMessageTypes) {
1814
+ const allMessageTypes = Array.from(new Set([...messageTypes, ...handlerMessageTypes]));
1802
1815
  const validMessageTypes = [];
1803
1816
  const invalidMessageTypes = [];
1804
1817
  for (const msgType of allMessageTypes) {
@@ -1808,18 +1821,32 @@ class TypeExtractor {
1808
1821
  invalidMessageTypes.push(msgType);
1809
1822
  }
1810
1823
  }
1811
- if (invalidMessageTypes.length > 0 && process.env["POLLY_DEBUG"]) {
1812
- console.log(`[WARN] Filtered out ${invalidMessageTypes.length} invalid message type(s):`);
1813
- for (const invalid of invalidMessageTypes) {
1814
- console.log(`[WARN] - "${invalid}" (not a valid TLA+ identifier)`);
1824
+ this.logInvalidMessageTypes(invalidMessageTypes);
1825
+ return validMessageTypes;
1826
+ }
1827
+ logInvalidMessageTypes(invalidMessageTypes) {
1828
+ if (invalidMessageTypes.length === 0 || !process.env["POLLY_DEBUG"])
1829
+ return;
1830
+ console.log(`[WARN] Filtered out ${invalidMessageTypes.length} invalid message type(s):`);
1831
+ for (const invalid of invalidMessageTypes) {
1832
+ console.log(`[WARN] - "${invalid}" (not a valid TLA+ identifier)`);
1833
+ }
1834
+ }
1835
+ filterAndLogHandlers(handlers) {
1836
+ const validHandlers = handlers.filter((h) => this.isValidTLAIdentifier(h.messageType));
1837
+ this.logInvalidHandlers(handlers, validHandlers);
1838
+ return validHandlers;
1839
+ }
1840
+ logInvalidHandlers(allHandlers, validHandlers) {
1841
+ const filteredHandlerCount = allHandlers.length - validHandlers.length;
1842
+ if (filteredHandlerCount === 0 || !process.env["POLLY_DEBUG"])
1843
+ return;
1844
+ console.log(`[WARN] Filtered out ${filteredHandlerCount} handler(s) with invalid message types:`);
1845
+ for (const handler of allHandlers) {
1846
+ if (!this.isValidTLAIdentifier(handler.messageType)) {
1847
+ console.log(`[WARN] - Handler for "${handler.messageType}" at ${handler.location.file}:${handler.location.line}`);
1815
1848
  }
1816
1849
  }
1817
- return {
1818
- stateType,
1819
- messageTypes: validMessageTypes,
1820
- fields,
1821
- handlers: handlerAnalysis.handlers
1822
- };
1823
1850
  }
1824
1851
  isValidTLAIdentifier(s) {
1825
1852
  if (!s || s.length === 0) {
@@ -4717,4 +4744,4 @@ Prompt: `);
4717
4744
  }
4718
4745
  main();
4719
4746
 
4720
- //# debugId=3A1C86108765A41864756E2164756E21
4747
+ //# debugId=0F12F69FA7B798A364756E2164756E21