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
This rule disallows injecting specified services under specified paths.
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;
}
- 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
- string[] --
- The no-restricted-imports or import/no-restricted-paths rules are the JavaScript import statement equivalent of this rule.
- ember-template-lint has a no-restricted-invocations rule for disallowing component usages.