diff --git a/rescript/src/GildedRose.bs.js b/rescript/src/GildedRose.bs.js index f6446add..4c43fdc7 100644 --- a/rescript/src/GildedRose.bs.js +++ b/rescript/src/GildedRose.bs.js @@ -17,70 +17,78 @@ var Item = { function updateQuality(items) { return items.map(function (item) { var newItem = item; - if (item.name !== "Aged Brie" && item.name !== "Backstage passes to a TAFKAL80ETC concert") { - if (item.quality > 0 && item.name !== "Sulfuras, Hand of Ragnaros") { + if (newItem.name !== "Aged Brie" && newItem.name !== "Backstage passes to a TAFKAL80ETC concert") { + if (newItem.quality > 0 && newItem.name !== "Sulfuras, Hand of Ragnaros") { + var init = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: item.quality - 1 | 0 + name: init.name, + sellIn: init.sellIn, + quality: newItem.quality - 1 | 0 }; } - } else if (item.quality < 50) { + } else if (newItem.quality < 50) { + var init$1 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: item.quality + 1 | 0 + name: init$1.name, + sellIn: init$1.sellIn, + quality: newItem.quality + 1 | 0 }; - if (item.name === "Backstage passes to a TAFKAL80ETC concert") { - if (item.sellIn < 11 && item.quality < 50) { + if (newItem.name === "Backstage passes to a TAFKAL80ETC concert") { + if (newItem.sellIn < 11 && newItem.quality < 50) { + var init$2 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: item.quality + 1 | 0 + name: init$2.name, + sellIn: init$2.sellIn, + quality: newItem.quality + 1 | 0 }; } - if (item.sellIn < 6 && item.quality < 50) { + if (newItem.sellIn < 6 && newItem.quality < 50) { + var init$3 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: item.quality + 1 | 0 + name: init$3.name, + sellIn: init$3.sellIn, + quality: newItem.quality + 1 | 0 }; } } } - if (item.name !== "Sulfuras, Hand of Ragnaros") { + if (newItem.name !== "Sulfuras, Hand of Ragnaros") { + var init$4 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn - 1 | 0, - quality: item.quality + name: init$4.name, + sellIn: newItem.sellIn - 1 | 0, + quality: init$4.quality }; } - if (item.sellIn < 0) { - if (item.name !== "Aged Brie") { - if (item.name !== "Backstage passes to a TAFKAL80ETC concert") { - if (item.quality > 0 && item.name !== "Sulfuras, Hand of Ragnaros") { + if (newItem.sellIn < 0) { + if (newItem.name !== "Aged Brie") { + if (newItem.name !== "Backstage passes to a TAFKAL80ETC concert") { + if (newItem.quality > 0 && newItem.name !== "Sulfuras, Hand of Ragnaros") { + var init$5 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: item.quality - 1 | 0 + name: init$5.name, + sellIn: init$5.sellIn, + quality: newItem.quality - 1 | 0 }; } } else { + var init$6 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: 0 + name: init$6.name, + sellIn: init$6.sellIn, + quality: newItem.quality - newItem.quality | 0 }; } - } else if (item.quality < 50) { + } else if (newItem.quality < 50) { + var init$7 = newItem; newItem = { - name: item.name, - sellIn: item.sellIn, - quality: item.quality + 1 | 0 + name: init$7.name, + sellIn: init$7.sellIn, + quality: newItem.quality + 1 | 0 }; } diff --git a/rescript/src/GildedRose.res b/rescript/src/GildedRose.res index 4af4758d..87fe52ba 100644 --- a/rescript/src/GildedRose.res +++ b/rescript/src/GildedRose.res @@ -16,47 +16,53 @@ let updateQuality = (items: array) => { items->Js.Array2.map(item => { let newItem = ref(item) - if item.name != "Aged Brie" && item.name != "Backstage passes to a TAFKAL80ETC concert" { - if item.quality > 0 { - if item.name != "Sulfuras, Hand of Ragnaros" { - newItem := {...item, quality: item.quality - 1} + if ( + newItem.contents.name != "Aged Brie" && + newItem.contents.name != "Backstage passes to a TAFKAL80ETC concert" + ) { + if newItem.contents.quality > 0 { + if newItem.contents.name != "Sulfuras, Hand of Ragnaros" { + newItem := {...newItem.contents, quality: newItem.contents.quality - 1} } } - } else if item.quality < 50 { - newItem := {...item, quality: item.quality + 1} + } else if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} - if item.name == "Backstage passes to a TAFKAL80ETC concert" { - if item.sellIn < 11 { - if item.quality < 50 { - newItem := {...item, quality: item.quality + 1} + if newItem.contents.name == "Backstage passes to a TAFKAL80ETC concert" { + if newItem.contents.sellIn < 11 { + if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} } } - if item.sellIn < 6 { - if item.quality < 50 { - newItem := {...item, quality: item.quality + 1} + if newItem.contents.sellIn < 6 { + if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} } } } } - if item.name != "Sulfuras, Hand of Ragnaros" { - newItem := {...item, sellIn: item.sellIn - 1} + if newItem.contents.name != "Sulfuras, Hand of Ragnaros" { + newItem := {...newItem.contents, sellIn: newItem.contents.sellIn - 1} } - if item.sellIn < 0 { - if item.name != "Aged Brie" { - if item.name != "Backstage passes to a TAFKAL80ETC concert" { - if item.quality > 0 { - if item.name != "Sulfuras, Hand of Ragnaros" { - newItem := {...item, quality: item.quality - 1} + if newItem.contents.sellIn < 0 { + if newItem.contents.name != "Aged Brie" { + if newItem.contents.name != "Backstage passes to a TAFKAL80ETC concert" { + if newItem.contents.quality > 0 { + if newItem.contents.name != "Sulfuras, Hand of Ragnaros" { + newItem := {...newItem.contents, quality: newItem.contents.quality - 1} } } } else { - newItem := {...item, quality: 0} + newItem := { + ...newItem.contents, + quality: newItem.contents.quality - newItem.contents.quality, + } } - } else if item.quality < 50 { - newItem := {...item, quality: item.quality + 1} + } else if newItem.contents.quality < 50 { + newItem := {...newItem.contents, quality: newItem.contents.quality + 1} } }