helpful-decorators
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.0 • Public • Published

    npm Build Status Commitizen friendly semantic-release Awesome

    Helpful Decorators For Typescript Projects

    Installation

    npm install helpful-decorators
    yarn add helpful-decorators

    Usage

    delay - Add setTimeout functionality to the method

    import { delay } from 'helpful-decorators';
     
    class Test {
     @delay(1000)
     method() {
       // ...
     }
    }

    debounce - Add debounce functionality to the method (options)

    import { debounce } from 'helpful-decorators';
     
    class Test {
     @debounce(1000, options)
     method() {
       // ...
     }
    }

    throttle - Add throttle functionality to the method (options)

    import { throttle } from 'helpful-decorators';
     
    class Test {
     @throttle(1000, options)
     method() {
       // ...
     }
    }

    once - Add once functionality to the method

    import { once } from 'helpful-decorators';
     
    class Test {
     @once
     method() {
       // This will run only once
     }
    }

    measure - measure time taken by a function to execute

    import { measure } from 'helpful-decorators';
     
    class Test {
     @measure
     doSomething() {
       // Call to doSomething took 0.35 milliseconds.
     }
    }

    Mixin - this pattern is used to achieve multiple inheritance

    import { Mixin } from 'helpful-decorators';
     
    @Mixin([Disposable, Activatable])
    class Test {
    }

    memo - memoizes the result of the function

    import { memo } from 'helpful-decorators';
     
    class Test {
     
      @memo()
      method() {
        ...memoized
      }
    }

    bind - automatically bind methods to class instances

    import { bind } from 'helpful-decorators';
     
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
      constructor() {
        document.body.addEventListener('click', this.onClick);
      }
     
      @bind
      onClick($event) {
        console.log($event);
      }
    }

    SortBy - sort an array by a specific property in individual elements or non-object items (By default, it sorts by type === 'string' and isDescending === true)

    import { SortBy } from 'helpful-decorators';
     
    class Test {
      
      @SortBy('name', {
        isDescending: false,
        type: 'string'
      })
      names = [ { name: 'b' }, { name: 'a' }, { name: 'c' } ];
     
      @SortBy('', {
        isDescending: true,
        type: 'date'
      })
      dates = [ '2020-06-17', '2020-06-16', '2020-06-20', '2020-06-10' ];
     
      @SortBy('', {
        isDescending: false,
        type: 'number'
      })
      numbers = [ 6, 3, 4, 1 ];
    }

    License

    MIT

    Install

    npm i helpful-decorators

    DownloadsWeekly Downloads

    3,688

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    24.7 kB

    Total Files

    25

    Last publish

    Collaborators

    • netbasal