An ESLint plugin that enforces hexagonal architecture best practices in JavaScript and TypeScript projects.
Codely's ESLint Hexagonal Architecture plugin is an ESLint extension that automatically enforces hexagonal architecture patterns in JavaScript and TypeScript projects. It validates folder naming conventions and prevents improper imports between architectural layers (domain, application, infrastructure) to maintain clean separation of concerns.
JavaScript and TypeScript developers building applications with hexagonal architecture patterns, particularly teams needing automated enforcement of architectural boundaries.
It provides automated, configurable validation of architectural rules directly within the development workflow, catching violations early without manual code reviews. The plugin is minimal, focused, and integrates seamlessly with existing ESLint setups.
A plugin that helps you to enforce hexagonal architecture best practises
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Prevents common architectural violations like domain importing from infrastructure by integrating directly into ESLint, catching issues early without manual reviews.
Adheres to a bare-minimum dependencies philosophy, reducing bloat and transitive dependency risks as stated in the code quality standards.
Can be added as a plugin and configured with ESLint's glob patterns and overrides, making it straightforward to apply to specific codebase parts, as shown in the setup examples.
Works with both JavaScript and TypeScript projects, providing flexibility for various codebases without requiring additional configuration.
Enforces only 'domain', 'application', and 'infrastructure' as valid folder names, offering no configuration options for alternative naming conventions, which can clash with custom project structures.
Configuration involves ESLint overrides and glob patterns, which can be complex for teams not familiar with advanced ESLint setup, potentially increasing initial overhead.
Tailored specifically for hexagonal architecture; projects using other patterns or variations may find it too restrictive and not adaptable, as the plugin doesn't support custom rule modifications.