@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.
@@ -3715,11 +3715,24 @@ class TypeExtractor {
3715
3715
  const stateType = stateFilePath ? this.extractStateType(stateFilePath) : this.findStateType();
3716
3716
  const messageTypes = this.findMessageTypes();
3717
3717
  const fields = stateType ? this.analyzeFields(stateType) : [];
3718
+ const handlerAnalysis = this.extractHandlerAnalysis();
3719
+ const validMessageTypes = this.filterAndLogMessageTypes(messageTypes, handlerAnalysis.messageTypes);
3720
+ const validHandlers = this.filterAndLogHandlers(handlerAnalysis.handlers);
3721
+ return {
3722
+ stateType,
3723
+ messageTypes: validMessageTypes,
3724
+ fields,
3725
+ handlers: validHandlers
3726
+ };
3727
+ }
3728
+ extractHandlerAnalysis() {
3718
3729
  const configFilePath = this.project.getCompilerOptions()["configFilePath"];
3719
3730
  const tsConfigPath = typeof configFilePath === "string" ? configFilePath : "tsconfig.json";
3720
3731
  const handlerExtractor = new HandlerExtractor(tsConfigPath);
3721
- const handlerAnalysis = handlerExtractor.extractHandlers();
3722
- const allMessageTypes = Array.from(new Set([...messageTypes, ...handlerAnalysis.messageTypes]));
3732
+ return handlerExtractor.extractHandlers();
3733
+ }
3734
+ filterAndLogMessageTypes(messageTypes, handlerMessageTypes) {
3735
+ const allMessageTypes = Array.from(new Set([...messageTypes, ...handlerMessageTypes]));
3723
3736
  const validMessageTypes = [];
3724
3737
  const invalidMessageTypes = [];
3725
3738
  for (const msgType of allMessageTypes) {
@@ -3729,18 +3742,32 @@ class TypeExtractor {
3729
3742
  invalidMessageTypes.push(msgType);
3730
3743
  }
3731
3744
  }
3732
- if (invalidMessageTypes.length > 0 && process.env["POLLY_DEBUG"]) {
3733
- console.log(`[WARN] Filtered out ${invalidMessageTypes.length} invalid message type(s):`);
3734
- for (const invalid of invalidMessageTypes) {
3735
- console.log(`[WARN] - "${invalid}" (not a valid TLA+ identifier)`);
3745
+ this.logInvalidMessageTypes(invalidMessageTypes);
3746
+ return validMessageTypes;
3747
+ }
3748
+ logInvalidMessageTypes(invalidMessageTypes) {
3749
+ if (invalidMessageTypes.length === 0 || !process.env["POLLY_DEBUG"])
3750
+ return;
3751
+ console.log(`[WARN] Filtered out ${invalidMessageTypes.length} invalid message type(s):`);
3752
+ for (const invalid of invalidMessageTypes) {
3753
+ console.log(`[WARN] - "${invalid}" (not a valid TLA+ identifier)`);
3754
+ }
3755
+ }
3756
+ filterAndLogHandlers(handlers) {
3757
+ const validHandlers = handlers.filter((h) => this.isValidTLAIdentifier(h.messageType));
3758
+ this.logInvalidHandlers(handlers, validHandlers);
3759
+ return validHandlers;
3760
+ }
3761
+ logInvalidHandlers(allHandlers, validHandlers) {
3762
+ const filteredHandlerCount = allHandlers.length - validHandlers.length;
3763
+ if (filteredHandlerCount === 0 || !process.env["POLLY_DEBUG"])
3764
+ return;
3765
+ console.log(`[WARN] Filtered out ${filteredHandlerCount} handler(s) with invalid message types:`);
3766
+ for (const handler of allHandlers) {
3767
+ if (!this.isValidTLAIdentifier(handler.messageType)) {
3768
+ console.log(`[WARN] - Handler for "${handler.messageType}" at ${handler.location.file}:${handler.location.line}`);
3736
3769
  }
3737
3770
  }
3738
- return {
3739
- stateType,
3740
- messageTypes: validMessageTypes,
3741
- fields,
3742
- handlers: handlerAnalysis.handlers
3743
- };
3744
3771
  }
3745
3772
  isValidTLAIdentifier(s) {
3746
3773
  if (!s || s.length === 0) {
@@ -4499,4 +4526,4 @@ main().catch((error) => {
4499
4526
  process.exit(1);
4500
4527
  });
4501
4528
 
4502
- //# debugId=0953A65126AAFD2664756E2164756E21
4529
+ //# debugId=3B4BC06E615961E764756E2164756E21