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

/ngx-auto-unsubscribe-decorator/

    Package Sidebar

    Install

    npm i ngx-auto-unsubscribe-decorator

    Weekly Downloads

    1,502

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    24.5 kB

    Total Files

    12

    Last publish

    Collaborators

    • nillcon