From 1563d86e903162504c1a4d1541800ac6b744eda7 Mon Sep 17 00:00:00 2001 From: Arno Chauveau Date: Thu, 24 Jul 2025 11:49:33 +0200 Subject: [PATCH] Move logic that maps item names to Update behavior to a new resolver file --- TypeScript/app/gilded-rose.ts | 11 ++--------- TypeScript/app/update-behaviors/behavior-resolver.ts | 10 ++++++++++ TypeScript/app/update-behaviors/index.ts | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 TypeScript/app/update-behaviors/behavior-resolver.ts diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index 2d894720..caee7ef2 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -1,5 +1,5 @@ import { Item } from "@app/item"; -import { IUpdateBehavior, LegacyBehavior } from "@app/update-behaviors"; +import { getUpdateBehaviorFor } from "@app/update-behaviors"; export class GildedRose { // also can't edit this because of the kata rules. @@ -12,14 +12,7 @@ export class GildedRose { updateQuality() { return this.items.map((item) => { - return this.#getUpdateBehaviorFor(item).update(); + return getUpdateBehaviorFor(item).update(); }); } - - #getUpdateBehaviorFor(item: Item): IUpdateBehavior { - switch (item.name) { - default: - return new LegacyBehavior(item); - } - } } diff --git a/TypeScript/app/update-behaviors/behavior-resolver.ts b/TypeScript/app/update-behaviors/behavior-resolver.ts new file mode 100644 index 00000000..5784f007 --- /dev/null +++ b/TypeScript/app/update-behaviors/behavior-resolver.ts @@ -0,0 +1,10 @@ +import { Item } from "@app/item"; +import { IUpdateBehavior } from "./update-behavior.interface"; +import { LegacyBehavior } from "./legacy-behavior"; + +export function getUpdateBehaviorFor(item: Item): IUpdateBehavior { + switch (item.name) { + default: + return new LegacyBehavior(item); + } +} diff --git a/TypeScript/app/update-behaviors/index.ts b/TypeScript/app/update-behaviors/index.ts index ec2e4546..bdaa4d9a 100644 --- a/TypeScript/app/update-behaviors/index.ts +++ b/TypeScript/app/update-behaviors/index.ts @@ -1,2 +1,2 @@ export * from "./update-behavior.interface"; -export * from "./legacy-behavior"; +export * from "./behavior-resolver";