Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. import { memoize } from '@app/decorators/memoize'
  2.  
  3. export class MyComponent {
  4.  
  5. @memoize()
  6. private static memoizeEyeSrc(clickCount, maxEyeClickCount, botEyesDir) {
  7. return clickCount < maxEyeClickCount ? botEyesDir + '/bot-eye-tiny.png' : botEyesDir + '/bot-eye-black-tiny.png'
  8. }
  9.  
  10. get leftEyeSrc() {
  11. return MyComponent.memoizeEyeSrc(this.eyes.left.clickCount, this.maxEyeClickCount, this.botEyesDir)
  12. }
  13. }
  14.  
  15. // decorated method must be pure
  16. import * as memoizee from 'memoizee'
  17.  
  18. export const memoize = (): MethodDecorator => {
  19. return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
  20. const func = descriptor.value
  21. descriptor.value = memoizee(func)
  22. return descriptor
  23. }
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement