Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

appolo-decorators

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

appolo-decorators

useful decorators

  • 7.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
Maintainers
1
Weekly downloads
 
Created
Source

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

Keywords

FAQs

Package last updated on 19 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc