mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 07:51:29 +00:00
Destructure and simplify syntax
This commit is contained in:
parent
ed7bfb312a
commit
626b3cb04f
@ -33,57 +33,39 @@ export class GildedRose {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function updateItemQuality(item: Item): number {
|
function updateItemQuality({name, quality, sellIn, ...rest}: Item): number {
|
||||||
if (item.name === 'Sulfuras, Hand of Ragnaros') {
|
if (name === 'Sulfuras, Hand of Ragnaros') {
|
||||||
return item.quality
|
return quality
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.name == 'Aged Brie') {
|
|
||||||
return incrementQuality(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.name == 'Backstage passes to a TAFKAL80ETC concert') {
|
|
||||||
let itemCopy = { ...item }
|
|
||||||
itemCopy.quality = incrementQuality(itemCopy);
|
|
||||||
if (item.sellIn < 11) itemCopy.quality = incrementQuality(itemCopy)
|
|
||||||
if (item.sellIn < 6) itemCopy.quality = incrementQuality(itemCopy)
|
|
||||||
return itemCopy.quality
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.quality > 0) {
|
|
||||||
return item.quality - 1
|
|
||||||
}
|
|
||||||
|
|
||||||
return item.quality
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function incrementQuality(item: Item): number {
|
|
||||||
if (item.quality < 50) {
|
|
||||||
return item.quality + 1
|
|
||||||
}
|
|
||||||
return item.quality
|
|
||||||
}
|
|
||||||
|
|
||||||
function sellInBelow0({quality, name, sellIn}: Item): number {
|
|
||||||
if (sellIn >= 0) return quality
|
|
||||||
|
|
||||||
if (name == 'Sulfuras, Hand of Ragnaros') return quality;
|
|
||||||
|
|
||||||
if (name == 'Aged Brie') {
|
if (name == 'Aged Brie') {
|
||||||
if (quality < 50) {
|
return incrementQuality({quality});
|
||||||
return quality + 1
|
|
||||||
}
|
|
||||||
return quality
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name == 'Backstage passes to a TAFKAL80ETC concert') {
|
if (name == 'Backstage passes to a TAFKAL80ETC concert') {
|
||||||
return 0
|
let itemCopy = { name, quality, sellIn, ...rest }
|
||||||
}
|
itemCopy.quality = incrementQuality(itemCopy);
|
||||||
|
if (sellIn < 11) itemCopy.quality = incrementQuality(itemCopy)
|
||||||
if (quality > 0) {
|
if (sellIn < 6) itemCopy.quality = incrementQuality(itemCopy)
|
||||||
return quality - 1
|
return itemCopy.quality
|
||||||
}
|
}
|
||||||
|
|
||||||
return quality
|
return quality > 0 ? quality - 1 : quality
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sellInBelow0({ quality, name, sellIn }: Item): number {
|
||||||
|
if (sellIn >= 0) return quality
|
||||||
|
|
||||||
|
if (name == 'Sulfuras, Hand of Ragnaros') return quality
|
||||||
|
|
||||||
|
if (name == 'Aged Brie') return incrementQuality({quality})
|
||||||
|
|
||||||
|
if (name == 'Backstage passes to a TAFKAL80ETC concert') return 0
|
||||||
|
|
||||||
|
return quality > 0 ? quality - 1 : quality
|
||||||
|
}
|
||||||
|
|
||||||
|
function incrementQuality({ quality }: Pick<Item, 'quality'>): number {
|
||||||
|
if (quality < 50) return quality + 1
|
||||||
|
return quality
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user