From 4ec588b2ad8abaad04ade001a71112ec028c05c9 Mon Sep 17 00:00:00 2001 From: Michal Grzegorczyk Date: Tue, 8 Apr 2025 01:35:59 +0200 Subject: [PATCH] feat(35): finished --- .../35-memoization/src/app/calculate.pipe.ts | 12 ++++++++++++ .../35-memoization/src/app/generateList.ts | 1 + .../35-memoization/src/app/person-list.component.ts | 10 ++++------ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 apps/performance/35-memoization/src/app/calculate.pipe.ts diff --git a/apps/performance/35-memoization/src/app/calculate.pipe.ts b/apps/performance/35-memoization/src/app/calculate.pipe.ts new file mode 100644 index 000000000..a1f6ded50 --- /dev/null +++ b/apps/performance/35-memoization/src/app/calculate.pipe.ts @@ -0,0 +1,12 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { fibonacci } from './person-list.component'; + +@Pipe({ + name: 'calculate', +}) +export class CalculatePipe implements PipeTransform { + transform(value: number): number { + console.log('Calculating...'); + return fibonacci(value); + } +} diff --git a/apps/performance/35-memoization/src/app/generateList.ts b/apps/performance/35-memoization/src/app/generateList.ts index 62978ec5e..da8f0155e 100644 --- a/apps/performance/35-memoization/src/app/generateList.ts +++ b/apps/performance/35-memoization/src/app/generateList.ts @@ -11,5 +11,6 @@ export function generateList() { }); } + console.log(arr); return arr; } diff --git a/apps/performance/35-memoization/src/app/person-list.component.ts b/apps/performance/35-memoization/src/app/person-list.component.ts index 28cbac267..9e1fbefa8 100644 --- a/apps/performance/35-memoization/src/app/person-list.component.ts +++ b/apps/performance/35-memoization/src/app/person-list.component.ts @@ -6,9 +6,10 @@ import { MatChipsModule } from '@angular/material/chips'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatListModule } from '@angular/material/list'; +import { CalculatePipe } from './calculate.pipe'; import { Person } from './person.model'; -const fibonacci = (num: number): number => { +export const fibonacci = (num: number): number => { if (num === 1 || num === 2) { return 1; } @@ -24,6 +25,7 @@ const fibonacci = (num: number): number => { MatFormFieldModule, MatInputModule, MatChipsModule, + CalculatePipe, ], template: `

@@ -42,7 +44,7 @@ const fibonacci = (num: number): number => {

{{ person.name }}

- {{ calculate(person.fib) }} + {{ person.fib | calculate }}
@@ -56,8 +58,4 @@ export class PersonListComponent { @Input() title = ''; label = ''; - - calculate(num: number) { - return fibonacci(num); - } }