lint: define interface for remote schema response

This commit is contained in:
xenticore
2025-04-29 00:51:16 -04:00
parent 1a973f6b52
commit d93feafbb1

View File

@@ -44,6 +44,44 @@ export class ItemSchema {
};
}
interface SchemaResponseItem {
name: string;
defindex: number;
item_class: string;
item_type_name: string;
item_name: string;
item_description: string;
proper_name: boolean;
item_slot: ItemSlot;
model_player: string;
item_quality: number;
image_inventory: string;
min_ilevel: number;
max_ilevel: number;
image_url: string;
image_url_large: string;
drop_type: string;
craft_class: string;
craft_material_type: string;
capabilities: {
decodable?: boolean,
can_be_restored?: boolean;
can_card_upgrade?: boolean;
can_consume?: boolean;
can_craft_mark?: boolean;
can_gift_wrap?: boolean;
can_killstreakify?: boolean;
can_strangify?: boolean;
paintable?: boolean;
strange_parts?: boolean;
};
attributes: Array<{
name: string;
class: string;
value: number | string; // The value can sometimes be a string, but example uses numbers
}>;
}
export function getItemIndexByName(schema: ItemSchema, name: string, excludeStock: boolean = true, excludeDecorated: boolean = true) {
for (const [defindex, value] of Object.entries(schema)) {
if (value['name'] == name) {
@@ -152,21 +190,20 @@ export async function prepareSchema(): Promise<ItemSchema> {
const cacheItems = {}
const responseItems: any[] = await response.json()
const responseItems: SchemaResponseItem[] = await response.json()
// We want to keep the keys `defindex`, `item_name`, and `attributes`
responseItems.forEach((item: any) => {
responseItems.forEach((item: SchemaResponseItem) => {
const defindex: number = item['defindex']
let tradable: boolean = true
try {
if(item['attributes'] != null) {
if(item['attributes'].find((attribute: {}) => (attribute as any)['class'] == "cannot_trade")) {
if(item['attributes'].find((attribute) => attribute['class'] == "cannot_trade")) {
tradable = false
}
}
} catch(error) {
logError(error)
log(item)
}
let canKillstreakify: boolean = false
@@ -178,7 +215,6 @@ export async function prepareSchema(): Promise<ItemSchema> {
}
} catch(error) {
logError(error)
log(item)
}
(cacheItems as any)[defindex.toString()] = {