Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/api.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ export interface API_Recipes_Entry {
type: 'Item' | 'GuildUpgrade' | 'Currency'
id: number
count: number
achievement_id?: number
achievement_bit?: number
}>
id: number
chat_link: string
Expand Down
38 changes: 34 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
import { omit, compact, toMap } from '@devoxa/flocky'
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 }
export type BasicGuildUpgradeComponent = { id: number; type: 'GuildUpgrade'; quantity: number }
export type BasicItemComponent = {
id: number
type: 'Item'
quantity: number
achievement_id?: number
achievement_bit?: number
}
export type BasicCurrencyComponent = {
id: number
type: 'Currency'
quantity: number
achievement_id?: number
achievement_bit?: number
}
export type BasicGuildUpgradeComponent = {
id: number
type: 'GuildUpgrade'
quantity: number
achievement_id?: number
achievement_bit?: number
}
export type Prerequisites = Array<{ type: 'Recipe'; id: number }>

export interface NestedRecipe extends TransformedRecipe {
Expand All @@ -20,6 +38,7 @@ interface TransformedRecipe {
upgrade_id?: number
output_range?: string
achievement_id?: number
achievement_bit?: number
merchant?: { name: string; locations: Array<string> }
prerequisites: Prerequisites
multipleRecipeCount: number
Expand Down Expand Up @@ -67,6 +86,8 @@ function transformRecipe(recipe: API_Recipes_Entry_Next): TransformedRecipeInter
id: ingredient.id,
type: ingredient.type,
quantity: ingredient.count,
achievement_id: ingredient.achievement_id,
achievement_bit: ingredient.achievement_bit,
}))

return {
Expand Down Expand Up @@ -148,7 +169,16 @@ function nestRecipe(
}

// Make sure we use a copy of the object, and insert it into the components
return { ...omit(componentRecipe, ['nested']), quantity: component.quantity }
return {
...omit(componentRecipe, ['nested']),
quantity: component.quantity,
...(typeof component.achievement_id === 'number' && {
achievement_id: component.achievement_id,
}),
...(typeof component.achievement_bit === 'number' && {
achievement_bit: component.achievement_bit,
}),
}
})

// Filter guild components that we don't have in our recipes :(
Expand Down
Loading