fix: add JS-003/JS-004 to full validation + fix Alpine components

The JS-003 and JS-004 rules were only in single-file validation,
not in full project validation. Also fixed regex to match functions
with parameters (like adminMessages(initialId = null)).

Fixed:
- messages.js: Added ...data() and currentPage
- notifications.js: Added ...data() and currentPage
- logs.js: Added noqa (uses baseData pattern with safety check)
- settings.js: Added noqa (uses baseData pattern with safety check)
- login.js: Added noqa (standalone page, no sidebar)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-21 22:02:13 +01:00
parent 4672fc537b
commit ce8e345abd
6 changed files with 21 additions and 4 deletions

View File

@@ -515,10 +515,11 @@ class ArchitectureValidator:
if "noqa: js-003" in content.lower():
return
# Look for Alpine component function pattern: function adminXxx() { return { ... } }
# Look for Alpine component function pattern: function adminXxx(...) { return { ... } }
# These are page-level components that should inherit from data()
# Allow optional parameters in the function signature
component_pattern = re.compile(
r"function\s+(admin\w+|vendor\w+|shop\w+)\s*\(\s*\)\s*\{", re.IGNORECASE
r"function\s+(admin\w+|vendor\w+|shop\w+)\s*\([^)]*\)\s*\{", re.IGNORECASE
)
for match in component_pattern.finditer(content):
@@ -2641,6 +2642,12 @@ class ArchitectureValidator:
suggestion="Replace window.apiClient with apiClient",
)
# JS-003: Check Alpine components spread ...data()
self._check_alpine_data_spread(file_path, content, lines)
# JS-004: Check Alpine components set currentPage
self._check_alpine_current_page(file_path, content, lines)
def _validate_templates(self, target_path: Path):
"""Validate template patterns"""
print("📄 Validating templates...")