ngx-auto-unsubscribe-decorator
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

Angular - Auto unsubscribe decorator 🦄

npm npm Build status

Installation

npm i ngx-auto-unsubscribe-decorator

Idea 💡

This library has been created for removing useless code with manually unsubscribes, for this one was created decorator that works with all types of subscriptions, you can wrap observable parameter, a method that returns observable or a method that returns subscription and doesn't think about memory leak.

Examples 🧪

Work with parameters

export class UserComponent implements OnInit {
  @AutoUnsubscribe() // <-- Should be on the target parameter
  private userData$ = new BehaviorSubject(/* Some data */);

  public ngOnInit(): void {
    // After ngOnDestroy this subscription will unsubscribe
    this.userData$.subscribe();

    // You can override parameter, it will unsubscribe too
    this.userData$ = new Subject();
    this.userData$.subscribe();
  }
}

Work with methods

export class UserComponent implements OnInit {

  public ngOnInit(): void {
    this.getUserData$().subscribe();

    this.initUserDataSubscription();
  }

  @AutoUnsubscribe() // <-- Should be on the target method
  public getUserData$(): BehaviorSubject {
    return new BehaviorSubject(/* Some data */);
  }

  @AutoUnsubscribe() // <-- Should be on the target method
  public initUserDataSubscription(): BehaviorSubject {
    return new BehaviorSubject(/* Some data */).subscribe();
  }
}

Demo

See the Example 1 Example 2 on Stackblitz

Package Sidebar

Install

npm i ngx-auto-unsubscribe-decorator

Weekly Downloads

1,278

Version

1.1.0

License

MIT

Unpacked Size

24.5 kB

Total Files

12

Last publish

Collaborators

  • nillcon