For an authentication service used across the application, make it a tree-shakable root singleton: ```ts // auth.service.ts import { Injectable, inject } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class AuthService { private readonly http = inject(HttpClient); isAuthenticated(): boolean { return Boolean(localStorage.getItem('access_token')); } refreshSession() { return this.http.get('/api/auth/session'); } logout(): void...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill angular-dependency-injection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Angular Dependency Injection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-angular-dependency-injection-38fc12c9)More formats (shields.io, HTML) on the badges page.
For an authentication service used across the application, make it a tree-shakable root singleton:
```ts
// auth.service.ts
import { Injectable, inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({ providedIn: 'root' })
export class AuthService {
private readonly http = inject(HttpClient);
isAuthenticated(): boolean {
return Boolean(localStorage.getItem('access_token'));
}
refreshSession() {
return this.http.get('/api/auth/session');
}
logout(): void {
localStorage.removeItem('access_token');
}
}
```
With `providedIn: 'root'`, Angular registers the service with the application root injector and tree-shakes it when unused. You normally do not need to add `AuthService` manually to a component or `app.config.ts` providers array. In a standalone application, provide its dependencies functionally, for example:
```ts
import { ApplicationConfig } from '@angular/core';
import { provideHttpClient } from '@angular/common/http';
export const appConfig: ApplicationConfig = {
providers: [provideHttpClient()],
};
```
Avoid listing `AuthService` in a component’s `providers`; that would create a second instance and can split authentication state. Use route providers only if the service is deliberately route-scoped. Prefer root scope over `providedIn: 'platform'` for ordinary application authentication, and refactor dependency cycles instead of introducing `forwardRef`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!