feat: add eslint rule for enforcing WorkspaceService naming convention #6308
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a custom ESLint rule named
inject-workspace-repository
. The purpose of this rule is to enforce naming conventions for files and classes that use the@InjectWorkspaceRepository
decorator or include services ending withWorkspaceService
in their constructors.Rule Overview
The new ESLint rule checks for the following conditions:
File Naming:
.service.ts
or.workspace-service.ts
are checked.@InjectWorkspaceRepository
decorator or a service ending withWorkspaceService
in the constructor, the file name must end with.workspace-service.ts
.Class Naming:
@InjectWorkspaceRepository
decorator or include services ending withWorkspaceService
in their constructors must have names that end withWorkspaceService
.How It Works
The rule inspects each TypeScript file to ensure that the naming conventions are adhered to. It specifically looks for:
@InjectWorkspaceRepository
decorator.WorkspaceService
.When such parameters are found, it checks the class name and the file name to ensure they conform to the expected patterns.
Example Code
Valid Cases
Correct File and Class Name with Decorator:
Service Dependency:
Invalid Cases
Incorrect Class Name:
Incorrect File Name:
Incorrect File and Class Name:
Incorrect File Type:
Incorrect Class Name with Dependency:
First step
This rule is only a warning for now, and then we'll migrate all the code that need to be migrated and move from
warn
toerror
.Fix #6309