Implement `PipeTransform` and explicitly mark the pipe as standalone and pure. A pure pipe is evaluated again only when one of its input values changes, which lets Angular cache the result for unchanged inputs. ```ts import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'truncate', standalone: true, pure: true, }) export class TruncatePipe implements PipeTransform { transform(value: string, limit = 50): string { if (value.length <= limit) { return value; } if (limit <= 1) { retur...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill angular-directives-pipes --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Angular Directives Pipes?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-angular-directives-pipes-56ef53cc)More formats (shields.io, HTML) on the badges page.
# Writing a pure pipe
Implement `PipeTransform` and explicitly mark the pipe as standalone and pure. A pure pipe is evaluated again only when one of its input values changes, which lets Angular cache the result for unchanged inputs.
```ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'truncate',
standalone: true,
pure: true,
})
export class TruncatePipe implements PipeTransform {
transform(value: string, limit = 50): string {
if (value.length <= limit) {
return value;
}
if (limit <= 1) {
return '…'.slice(0, Math.max(limit, 0));
}
return `${value.slice(0, limit - 1)}…`;
}
}
```
Import the standalone pipe where it is used:
```ts
@Component({
standalone: true,
imports: [TruncatePipe],
template: `{{ description | truncate: 80 }}`,
})
export class DescriptionComponent {
readonly description = 'A long description that may need to be shortened in the view.';
}
```
Keep the transform deterministic and free of side effects. Do not set `pure: false` for a static string transform; use a pipe such as `async` for observable subscription behavior. If the pipe receives an array or object, remember that mutating that value in place does not change its reference, so a pure pipe will not rerun.
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!