From ca3ea3dcc41b13bb42ed0d4b088d9f2fa8a6bd6b Mon Sep 17 00:00:00 2001 From: Jesper Date: Wed, 13 Apr 2022 17:02:14 +0200 Subject: [PATCH] Start lifting side effects --- TypeScript/app/gilded-rose.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index 3169f1eb..ab7e29a0 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -19,7 +19,7 @@ export class GildedRose { updateQuality() { this.items.forEach((item, i) => { - this.updateItemQuality(item) + item.quality = this.updateItemQuality(item) if (item.name != 'Sulfuras, Hand of Ragnaros') { item.sellIn = item.sellIn - 1; @@ -31,18 +31,27 @@ export class GildedRose { return this.items; } - private updateItemQuality(item: Item) { - if (item.name === 'Sulfuras, Hand of Ragnaros') { - return - } else if (item.name == 'Aged Brie') { + private updateItemQuality(item: Item): number { + if (item.name === 'Sulfuras, Hand of Ragnaros') return item.quality + + if (item.name == 'Aged Brie') { this.incrementQuality(item); - } else if (item.name == 'Backstage passes to a TAFKAL80ETC concert') { + return item.quality + } + + if (item.name == 'Backstage passes to a TAFKAL80ETC concert') { this.incrementQuality(item); if (item.sellIn < 11) this.incrementQuality(item) if (item.sellIn < 6) this.incrementQuality(item) - } else if (item.quality > 0) { - item.quality = item.quality - 1 + return item.quality } + + if (item.quality > 0) { + item.quality = item.quality - 1 + return item.quality + } + + return item.quality }