包详细信息

@appolo/helpers

shmoop207597MIT8.0.2

useful decorators

decorators, setTimeout decorator, debounce decorator, once decorator

自述文件

Appolo Decorators

Build Status Dependencies status NPM version npm Downloads Known Vulnerabilities

useful decorators The cache will remove the oldest used item when reached max capacity

Installation:

npm install appolo-decorators --save

Delay

delay call method by given time in milliseconds

import { delay } from 'appolo-decorators';

class SomeClass {
    @delay(1000)
    method() {
    // ...
    }
}

Cache

cache method results using appolo-cache

options:

  • maxSize - max cache size default 1000
  • maxAge - optional set maximum age in ms of all cache items default unlimited
  • clone - clone the cache result default false
  • interval - set cache refresh interval
  • resolver - function to get the cache key by default the fist argument will be used as the cache key
  • multi - boolean if no resolver defined use all the arguments as key else use the first argument as key default false

  • peek - boolean use peek method instead of get default false

  • refresh - boolean refresh cache on half maxAge expire default false
import { cache } from 'appolo-decorators';

class SomeClass {
    private counter = 0;

    @cache()
    method() {
       return ++this.counter
    }
}

let someClass = new SomeClass();
someClass.method() // 1
someClass.method()// 1

Bind

bind method to class instance

import { bind } from 'appolo-decorators';

class SomeClass {
    @bind
    method() {
    // ...
    }
}

document.body.addEventListener('click', new SomeClass().method);

Debounce

debounce method using lodash debounce

import { debounce } from 'appolo-decorators';

class SomeClass {
    @debounce(1000,{trailing:true})
    method() {
    // ...
    }
}

Throttle

throttle method using lodash debounce

import { throttle } from 'appolo-decorators';

class SomeClass {
    @throttle(1000,{trailing:true})
    method() {
    // ...
    }
}

Memoize

memoize method using lodash debounce

import { memoize } from 'appolo-decorators';

class SomeClass {
    @memoize()
    method() {
    // ...
    }
}

Once

method will be called max n times and return last call result

import { once } from 'appolo-decorators';

class SomeClass {
    @once(2)
    method() {
    // ...
    }
}

Interval

set interval to method once called

import { interval } from 'appolo-decorators';

class SomeClass {
    @interval(100)
    method() {
    // ...
    }
}
//start the interval
new SomeClass().method()

Mixins

add prototype to class

import { mixins } from 'appolo-decorators';

@mixins(EventDispacher)
class SomeClass {

    method() {
    // ...
    }
}
new SomeClass().on("some event")

License

MIT