Package Exports
- helpful-decorators
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (helpful-decorators) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Helpful Decorators For Typescript Projects
Installation
npm install helpful-decorators
yarn add helpful-decoratorsUsage
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