eslint-plugin-hexagonal-architecture

1.0.3 • Public • Published

🎯 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

Dependencies (2)

Dev Dependencies (11)

Package Sidebar

Install

npm i eslint-plugin-hexagonal-architecture

Weekly Downloads

2,016

Version

1.0.3

License

SEE LICENCE IN LICENCE

Unpacked Size

62.3 kB

Total Files

37

Last publish

Collaborators

  • nuria
  • rgomezcasas
  • ismanapa
  • javiercane