From 165514590e5de47f4e43941a433688d600b51a23 Mon Sep 17 00:00:00 2001 From: Ecmelt Date: Thu, 31 Oct 2024 22:35:01 +0000 Subject: [PATCH 1/2] update to include new property --- src/api.d.ts | 4 ++++ src/index.ts | 8 ++++--- tests/__snapshots__/index.spec.ts.snap | 32 ++++++++++++++++++++++++++ tests/index.spec.ts | 31 ++++++++++++++++++++++--- 4 files changed, 69 insertions(+), 6 deletions(-) diff --git a/src/api.d.ts b/src/api.d.ts index 6363919..44c0252 100644 --- a/src/api.d.ts +++ b/src/api.d.ts @@ -18,3 +18,7 @@ export interface API_Recipes_Entry { id: number chat_link: string } + +export interface API_Recipes_Entry_Next extends API_Recipes_Entry { + multipleRecipeCount: number +} diff --git a/src/index.ts b/src/index.ts index 42495b9..0e0edf1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ import { omit, compact, toMap } from '@devoxa/flocky' -import { API_Recipes_Entry } from './api' +import { API_Recipes_Entry_Next } from './api' export type BasicItemComponent = { id: number; type: 'Item'; quantity: number } export type BasicCurrencyComponent = { id: number; type: 'Currency'; quantity: number } @@ -22,6 +22,7 @@ interface TransformedRecipe { achievement_id?: number merchant?: { name: string; locations: Array } prerequisites: Prerequisites + multipleRecipeCount: number } interface TransformedRecipeInternal extends TransformedRecipe { @@ -35,7 +36,7 @@ interface TransformedRecipeInternal extends TransformedRecipe { } export function nestRecipes( - apiRecipes: Array, + apiRecipes: Array, decorationMap: Record = {} ): Array { const recipes = apiRecipes.map(transformRecipe) @@ -59,7 +60,7 @@ export function nestRecipes( .filter((recipe) => recipe.components) as Array } -function transformRecipe(recipe: API_Recipes_Entry): TransformedRecipeInternal { +function transformRecipe(recipe: API_Recipes_Entry_Next): TransformedRecipeInternal { const components = recipe.ingredients.map((ingredient) => ({ id: ingredient.id, type: ingredient.type, @@ -80,6 +81,7 @@ function transformRecipe(recipe: API_Recipes_Entry): TransformedRecipeInternal { output_range: recipe.output_item_count_range, achievement_id: recipe.achievement_id, merchant: recipe.merchant, + multipleRecipeCount: recipe.multipleRecipeCount } } diff --git a/tests/__snapshots__/index.spec.ts.snap b/tests/__snapshots__/index.spec.ts.snap index 4b5036d..1cd4b1e 100644 --- a/tests/__snapshots__/index.spec.ts.snap +++ b/tests/__snapshots__/index.spec.ts.snap @@ -19,6 +19,7 @@ Object { "id": 19712, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": "1-10", "prerequisites": Array [ @@ -52,6 +53,7 @@ Object { "id": 19112, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 5, "output_range": undefined, "prerequisites": Array [ @@ -88,6 +90,7 @@ Object { "id": 19712, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": "1-10", "prerequisites": Array [ @@ -120,6 +123,7 @@ Object { "id": 19685, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -152,6 +156,7 @@ Object { "id": 12988, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -188,6 +193,7 @@ Object { "id": 19710, "merchant": undefined, "min_rating": 0, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -224,6 +230,7 @@ Object { "id": 19679, "merchant": undefined, "min_rating": 0, + "multipleRecipeCount": 1, "output": 5, "output_range": undefined, "prerequisites": Array [ @@ -245,6 +252,7 @@ Object { "id": 12990, "merchant": undefined, "min_rating": 50, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -284,6 +292,7 @@ Object { "id": 19679, "merchant": undefined, "min_rating": 0, + "multipleRecipeCount": 1, "output": 5, "output_range": undefined, "prerequisites": Array [ @@ -323,6 +332,7 @@ Array [ "id": 1002, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -342,6 +352,7 @@ Array [ "id": 1001, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -374,6 +385,7 @@ Array [ "id": 1002, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -425,6 +437,7 @@ Object { "id": 19679, "merchant": undefined, "min_rating": 0, + "multipleRecipeCount": 1, "output": 5, "output_range": undefined, "prerequisites": Array [ @@ -444,6 +457,7 @@ Object { "id": 77749, "merchant": undefined, "min_rating": 250, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -465,6 +479,7 @@ Object { "id": 1234, "merchant": undefined, "min_rating": 175, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -517,6 +532,7 @@ Object { "id": 88772, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -539,6 +555,7 @@ Object { "id": 88774, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -577,6 +594,7 @@ Object { "id": 88772, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -601,6 +619,7 @@ Object { "id": 88775, "merchant": undefined, "min_rating": 250, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -623,6 +642,7 @@ Object { "id": 88773, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -645,6 +665,7 @@ Object { "id": 88772, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -683,6 +704,7 @@ Object { "id": 88771, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -724,6 +746,7 @@ Object { "id": 19742, "merchant": undefined, "min_rating": 150, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -755,6 +778,7 @@ Object { "id": 19814, "merchant": undefined, "min_rating": 175, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -791,6 +815,7 @@ Object { "id": 99994, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -824,6 +849,7 @@ Object { "id": 99994, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -846,6 +872,7 @@ Object { "id": 99991, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -879,6 +906,7 @@ Object { "id": 99994, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -901,6 +929,7 @@ Object { "id": 99992, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -934,6 +963,7 @@ Object { "id": 99994, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -956,6 +986,7 @@ Object { "id": 99993, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ @@ -978,6 +1009,7 @@ Object { "id": 99990, "merchant": undefined, "min_rating": 400, + "multipleRecipeCount": 1, "output": 1, "output_range": undefined, "prerequisites": Array [ diff --git a/tests/index.spec.ts b/tests/index.spec.ts index 99c0b3d..143ee43 100644 --- a/tests/index.spec.ts +++ b/tests/index.spec.ts @@ -1,8 +1,8 @@ import { nestRecipes } from '../src/index' -import { API_Recipes_Entry } from '../src/api' +import { API_Recipes_Entry_Next } from '../src/api' describe('recipe-nesting', () => { - const input: Array = [ + const input: Array = [ { type: 'Refinement', output_item_id: 19712, @@ -15,6 +15,7 @@ describe('recipe-nesting', () => { chat_link: '[&CQIAAAA=]', output_item_count_range: '1-10', achievement_id: 12, + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -26,6 +27,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 19725, type: 'Item', count: 3 }], id: 2, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -37,6 +39,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 19701, type: 'Item', count: 2 }], id: 21, chat_link: '[&CRUAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -53,6 +56,7 @@ describe('recipe-nesting', () => { ], id: 39, chat_link: '[&CScAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -64,6 +68,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 19723, type: 'Item', count: 3 }], id: 3, chat_link: '[&CQMAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -78,6 +83,7 @@ describe('recipe-nesting', () => { ], id: 16, chat_link: '[&CRAAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -92,6 +98,7 @@ describe('recipe-nesting', () => { ], id: 30, chat_link: '[&CR4AAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -103,6 +110,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 19741, type: 'Item', count: 2 }], id: 7, chat_link: '[&CQcAAAA=]', + multipleRecipeCount: 1, }, { type: 'Insignia', @@ -119,6 +127,7 @@ describe('recipe-nesting', () => { ], id: 69, chat_link: '[&CUUAAAA=]', + multipleRecipeCount: 1, }, { type: 'Fake', @@ -134,6 +143,7 @@ describe('recipe-nesting', () => { ], id: 69, chat_link: '[&CUUAAAA=]', + multipleRecipeCount: 1, }, { type: 'GuildDecoration', @@ -146,6 +156,7 @@ describe('recipe-nesting', () => { output_upgrade_id: 696, id: 11756, chat_link: '[&CewtAAA=]', + multipleRecipeCount: 1, }, { type: 'Fake too', @@ -159,6 +170,7 @@ describe('recipe-nesting', () => { ], id: 69, chat_link: '[&CUUAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -173,6 +185,7 @@ describe('recipe-nesting', () => { ], id: 2, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -187,6 +200,7 @@ describe('recipe-nesting', () => { ], id: 2, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -201,6 +215,7 @@ describe('recipe-nesting', () => { ], id: 2, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -212,6 +227,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 88772, type: 'Item', count: 2 }], id: 2, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'GuildDecoration', @@ -227,6 +243,7 @@ describe('recipe-nesting', () => { output_upgrade_id: 9001, id: 900011, chat_link: '[&CewtAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -243,6 +260,7 @@ describe('recipe-nesting', () => { ], id: 1293083123, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -254,6 +272,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 99994, type: 'Item', count: 2 }], id: 987654645, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -265,6 +284,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 99994, type: 'Item', count: 2 }], id: 767567, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -276,6 +296,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 99994, type: 'Item', count: 2 }], id: 2344356, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -287,6 +308,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 99995, type: 'Item', count: 2 }], id: 12421412312, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'CraftingMaterial', @@ -297,6 +319,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 12776, type: 'Item', count: 1 }], id: -1626, chat_link: '[&FAAAKE=]', + multipleRecipeCount: 1, }, ] @@ -328,7 +351,7 @@ describe('recipe-nesting', () => { }) it('can include guild item decorations', () => { - const input: Array = [ + const input: Array = [ { type: 'Refinement', output_item_id: 1001, @@ -339,6 +362,7 @@ describe('recipe-nesting', () => { ingredients: [{ id: 1002, type: 'Item', count: 2 }], id: 2, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, { type: 'Refinement', @@ -353,6 +377,7 @@ describe('recipe-nesting', () => { ], id: 1, chat_link: '[&CQIAAAA=]', + multipleRecipeCount: 1, }, ] const decorations = { 42: 1337 } From d446adcaa4f57778147e46ee993a9334a425c808 Mon Sep 17 00:00:00 2001 From: Ecmelt Date: Fri, 1 Nov 2024 05:38:31 +0000 Subject: [PATCH 2/2] format --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 0e0edf1..7f9e44c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -81,7 +81,7 @@ function transformRecipe(recipe: API_Recipes_Entry_Next): TransformedRecipeInter output_range: recipe.output_item_count_range, achievement_id: recipe.achievement_id, merchant: recipe.merchant, - multipleRecipeCount: recipe.multipleRecipeCount + multipleRecipeCount: recipe.multipleRecipeCount, } }