├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ ├── ci.yaml │ └── publish.yaml ├── .gitignore ├── LICENSE ├── README.md ├── jest.config.ts ├── package.json ├── src ├── common │ ├── HexagonalArchitectureDependencyRuleEnforcer.ts │ └── HexagonalArchitectureFolderEnforcer.ts ├── index.ts ├── rules │ └── enforce.ts └── utils │ └── createRule.ts ├── tests └── rules │ ├── enforce.spec.ts │ └── paths │ ├── bad-hexagonal-dependency-rules │ ├── application │ │ ├── RenameUserCommandHandler.ts │ │ └── UserRenamer.ts │ ├── domain │ │ ├── User.ts │ │ └── UserRepository.ts │ └── infrastructure │ │ └── RedisUserRepository.ts │ ├── bad-hexagonal-folder-structure │ └── patatas │ │ └── UseCase.js │ ├── good-hexagonal-dependency-rules │ ├── application │ │ ├── RenameUserCommandHandler.ts │ │ └── UserRenamer.ts │ ├── domain │ │ ├── User.ts │ │ └── UserRepository.ts │ └── infrastructure │ │ └── RedisUserRepository.ts │ ├── good-hexagonal-folder-structure │ ├── application │ │ └── UseCase.js │ ├── domain │ │ └── User.js │ └── infrastructure │ │ └── RedisUserRepository.js │ └── regression │ └── infrastructure │ └── AsyncImport.ts └── tsconfig.json /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | .eslintrc.js 3 | tests/rules/paths 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/publish.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/.github/workflows/publish.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/README.md -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/jest.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/package.json -------------------------------------------------------------------------------- /src/common/HexagonalArchitectureDependencyRuleEnforcer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/src/common/HexagonalArchitectureDependencyRuleEnforcer.ts -------------------------------------------------------------------------------- /src/common/HexagonalArchitectureFolderEnforcer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/src/common/HexagonalArchitectureFolderEnforcer.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/rules/enforce.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/src/rules/enforce.ts -------------------------------------------------------------------------------- /src/utils/createRule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/src/utils/createRule.ts -------------------------------------------------------------------------------- /tests/rules/enforce.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/enforce.spec.ts -------------------------------------------------------------------------------- /tests/rules/paths/bad-hexagonal-dependency-rules/application/RenameUserCommandHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/bad-hexagonal-dependency-rules/application/RenameUserCommandHandler.ts -------------------------------------------------------------------------------- /tests/rules/paths/bad-hexagonal-dependency-rules/application/UserRenamer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/bad-hexagonal-dependency-rules/application/UserRenamer.ts -------------------------------------------------------------------------------- /tests/rules/paths/bad-hexagonal-dependency-rules/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/bad-hexagonal-dependency-rules/domain/User.ts -------------------------------------------------------------------------------- /tests/rules/paths/bad-hexagonal-dependency-rules/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/bad-hexagonal-dependency-rules/domain/UserRepository.ts -------------------------------------------------------------------------------- /tests/rules/paths/bad-hexagonal-dependency-rules/infrastructure/RedisUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/bad-hexagonal-dependency-rules/infrastructure/RedisUserRepository.ts -------------------------------------------------------------------------------- /tests/rules/paths/bad-hexagonal-folder-structure/patatas/UseCase.js: -------------------------------------------------------------------------------- 1 | console.error("Some use case"); 2 | -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-dependency-rules/application/RenameUserCommandHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/good-hexagonal-dependency-rules/application/RenameUserCommandHandler.ts -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-dependency-rules/application/UserRenamer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/good-hexagonal-dependency-rules/application/UserRenamer.ts -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-dependency-rules/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/good-hexagonal-dependency-rules/domain/User.ts -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-dependency-rules/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/good-hexagonal-dependency-rules/domain/UserRepository.ts -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-dependency-rules/infrastructure/RedisUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/good-hexagonal-dependency-rules/infrastructure/RedisUserRepository.ts -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-folder-structure/application/UseCase.js: -------------------------------------------------------------------------------- 1 | console.error("Some use case"); 2 | -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-folder-structure/domain/User.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/rules/paths/good-hexagonal-folder-structure/infrastructure/RedisUserRepository.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/rules/paths/regression/infrastructure/AsyncImport.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tests/rules/paths/regression/infrastructure/AsyncImport.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/eslint-plugin-hexagonal-architecture/HEAD/tsconfig.json --------------------------------------------------------------------------------