angular-eslint-injection-context
raw JSON → 1.3.0 verified Fri May 01 auth: no javascript
Angular ESLint plugin enforcing that inject() and related functions (takeUntilDestroyed, toSignal, resource, form) are called in an injection context. Current version 1.3.0 (2025). Actively maintained with regular releases. Catches NG0203 runtime errors at lint time. Differentiates from standard Angular ESLint rules by focusing specifically on injection context, providing custom rules like inject-async-in-injection-context and custom-function-in-injection-context.
Common errors
error Error: Failed to load plugin 'angular-eslint-injection-context': Cannot find module 'angular-eslint-injection-context' ↓
cause Missing installation of the plugin package.
fix
Run: npm install --save-dev angular-eslint-injection-context
error Error: Invalid rule definition: 'angular-eslint-injection-context/inject-async-in-injection-context' ↓
cause Using a rule name that does not exist or misspelled.
fix
Check correct rule names: 'inject-async-in-injection-context', 'custom-function-in-injection-context'.
error TypeError: Cannot read properties of undefined (reading 'injection-context') ↓
cause Plugin not properly loaded in ESLint config.
fix
Add 'angular-eslint-injection-context' to the plugins array in your ESLint config.
error ESLint couldn't find the plugin "angular-eslint-injection-context". ↓
cause Plugin not installed or ESLint cannot resolve it.
fix
Ensure the package is installed and your ESLint config file is in the project root or resolve-plugins-relative-to is set.
Warnings
breaking Rules previously in v0.x may have different names or presets. Check migration guide when upgrading from v0 to v1. ↓
fix Update to v1.x and follow the changelog for renamed rules.
deprecated The 'inject-context' preset has been renamed to 'recommended' in v1.3.0. ↓
fix Use 'plugin:angular-eslint-injection-context/recommended' instead.
gotcha Requires @typescript-eslint/utils v8 or higher. Older versions will cause lint failures. ↓
fix Ensure @typescript-eslint/utils is at least ^8.0.0.
gotcha Rules only work on TypeScript files; JavaScript Angular files are not supported. ↓
fix Use angular-eslint's built-in rules for .js files or convert to .ts.
Install
npm install angular-eslint-injection-context yarn add angular-eslint-injection-context pnpm add angular-eslint-injection-context Imports
- default (plugin) wrong
const angularInjectionContext = require('angular-eslint-injection-context');correctimport angularInjectionContext from 'angular-eslint-injection-context'; - rules wrong
const rules = require('angular-eslint-injection-context').rules;correctimport { rules } from 'angular-eslint-injection-context'; - configs wrong
import { preset } from 'angular-eslint-injection-context';correctimport { configs } from 'angular-eslint-injection-context';
Quickstart
// .eslintrc.json
{
"plugins": ["angular-eslint-injection-context"],
"rules": {
"angular-eslint-injection-context/inject-async-in-injection-context": "error",
"angular-eslint-injection-context/custom-function-in-injection-context": ["error", { "functions": ["myCustomInject"] }]
},
"overrides": [
{
"files": ["*.ts"],
"parser": "@typescript-eslint/parser",
"extends": [
"plugin:angular-eslint-injection-context/recommended"
]
}
]
}