ngx-auto-unsubscribe-decorator

Decorator for auto unsubscribtion from observable

Usage no npm install needed!

<script type="module">
  import ngxAutoUnsubscribeDecorator from 'https://cdn.skypack.dev/ngx-auto-unsubscribe-decorator';
</script>

README

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();
  }
}