agentsclimarketplace

Angular directives pipes

Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/angular-directives-pipes

Composition patterns using HostDirectives and Pure Pipes. Use when creating attribute directives with HostDirectives or writing pure pipes in Angular. (triggers: **/*.directive.ts, **/*.pipe.ts, hostDirectives, PipeTransform, pure)From its SKILL.md

Install
npx -y skills add ComeOnOliver/skillshub --skill angular-directives-pipes

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

1.9 KB, 413 tokens by cl100k_base, as published. Nobody here has run it

Directives & Pipes

Priority: P2 (MEDIUM)

Principles

  • Composition: Use hostDirectives: [TooltipDirective] on @Component or @Directive decorators to compose behaviors without inheritance. Expose inputs/outputs via hostDirectives: [{ directive: TooltipDirective, inputs: ['text'] }].
  • Pure Pipes: Decorate with @Pipe({ name: 'truncate', standalone: true, pure: true }). Implement PipeTransform with transform(value: string, limit = 50) method. Pipes must be pure: true (default) to cache results by input reference — Angular only re-runs them when the reference changes. Do not set pure: false unless handling Observables/Arrays that mutate.
  • Directive Logic: Encapsulate reusable DOM manipulation or behavioral logic in standalone: true Directives (e.g., selector: '[appHighlight]'). Inject ElementRef/Renderer2 for DOM access.

Guidelines

  • Signal Inputs: Directives and Pipes support signal inputs.
  • Standalone: All Pipes and Directives must be standalone. Do not declare in NgModule; import directly in component imports array. Use ng generate directive to scaffold.

Anti-Patterns

  • No @HostBinding/@HostListener: Use the host: {} object in the @Directive decorator — not with @HostBinding or @HostListener (e.g., '(mouseenter)': 'show()', '[attr.aria-label]': 'text()') — these decorators are deprecated patterns.
  • No impure pipes for static transforms: Keep pure: true (default); use async pipe for Observables.
  • No structural directives for conditionals: Use native @if/@for/@switch block syntax.

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.