Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

CodelyTV/eslint-plugin-hexagonal-architecture

Repository files navigation

🎯 Codely's ESLint Hexagonal Architecture plugin

Codely Open Source CodelyTV Courses

A plugin that helps you to enforce hexagonal architecture best practises. Valid for your JavaScript or TypeScript projects 🤟 Stars are welcome 😊

🤔 What it does

  • Enforce conventional folder naming: only domain, application and infrastructure are valid folder names (under the glob pattern you specify)
  • Prevent imports from restricted layers:
    • domain can only import files from the same folder
    • application can only import from application and domain
    • infrastructure can import from application, domain and infrastructure

hexagonal-dependency-rule

👀 How to use

  1. Install the dependency
    npm install --save-dev eslint-plugin-hexagonal-architecture
  2. Add the plugin to your .eslintrc.js file:
    {
      plugins: ["hexagonal-architecture"],
    }
  3. Enable the rule for the specific folders that will contain your logic using ESLint's Glob Patterns overrides:
    {
      overrides: [
        {
          files: ["contexts/{backend,frontend}/*/src/**/*.ts"],
          rules: {
            "hexagonal-architecture/enforce": ["error"],
          },
        },
      ]
    }

👌 Codely Code Quality Standards

Publishing this package we are committing ourselves to the following code quality standards:

  • 🤝 Respect Semantic Versioning: No breaking changes in patch or minor versions
  • 🤏 No surprises in transitive dependencies: Use the bare minimum dependencies needed to meet the purpose
  • 🎯 One specific purpose to meet without having to carry a bunch of unnecessary other utilities
  • ✅ Tests as documentation and usage examples
  • 📖 Well documented ReadMe showing how to install and use
  • ⚖️ License favoring Open Source and collaboration

🔀 Related resources

Opinionated skeletons ready for different purposes:

Morty Proxy This is a proxified and sanitized view of the page, visit original site.