Skip to content

Latest commit

 

History

History
54 lines (40 loc) · 1.88 KB

no-restricted-service-injections.md

File metadata and controls

54 lines (40 loc) · 1.88 KB

no-restricted-service-injections

In some parts of your application, you may prefer to disallow certain services from being injected. This can be useful for:

  • Deprecating services one folder at a time
  • Creating isolation between different parts of your application

Rule Details

This rule disallows injecting specified services under specified paths.

Examples

With this example configuration:

[
    "error",
    {
        "paths": ["folder1", "folder2", "folder3"],
        "services": ["deprecated-service"],
        "message": "Please stop using this service as it is in the process of being deprecated",
    },
    {
        "paths": ["isolated-folder"],
        "services": ["service-disallowed-for-use-in-isolated-folder"],
    },
    {
        "services": ["service-disallowed-anywhere"],
    },
]

This would be disallowed:

// folder1/my-component.js

class MyComponent extends Component {
  @service deprecatedService;
}

Configuration

  • object[] -- containing the following properties:
    • string[] -- services -- list of (kebab-case) service names that should be disallowed from being injected under the specified paths
    • string[] -- paths -- optional list of regexp file paths that injecting the specified services should be disallowed under (omit this field to match any path)
    • string -- message -- optional custom error message to display for violations

Related Rules