feat(cmd): shop

This commit is contained in:
Saahil 2024-10-30 22:02:47 -04:00
parent e8c98129ce
commit df07eabc2f
No known key found for this signature in database
GPG key ID: 8A8B64515254CFC6
3 changed files with 795 additions and 0 deletions

718
src/assets/shop.json Normal file
View file

@ -0,0 +1,718 @@
[
{
"id": "item_pile_of_stickers_10",
"name": "Pile of Stickers",
"subtitle": "3, and random...",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/pile_of_stickers.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 200,
"priceGlobal": 200,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_hack_club_microsd_card_28",
"name": "Hack Club MicroSD card",
"subtitle": "might hold 64gb worth of data!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/microsd.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 200,
"priceGlobal": 320,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_logic_analyzer_17",
"name": "Logic Analyzer",
"subtitle": "omgwtfbbq! fx2lafw ftw!!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/logic_analyzer.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 275,
"priceGlobal": 400,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_digitalocean_credits_2",
"name": "DigitalOcean credits",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/card_grant_digitalocean.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 300,
"priceGlobal": 300,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_openai_credits_14",
"name": "OpenAI credits",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/card_grant_openai.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 300,
"priceGlobal": 300,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_hetzner_credits_29",
"name": "Hetzner credits",
"subtitle": "buy more than one!<br/>get hosting for a while!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/card_grant_hetzner.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 300,
"priceGlobal": 300,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_bite_size_linux_6",
"name": "Bite Size Linux",
"subtitle": " by Julia Evans",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/bite_size_linux.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 400,
"priceGlobal": 500,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_bite_size_bash_7",
"name": "Bite Size Bash",
"subtitle": " by Julia Evans",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/bite_size_bash.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 400,
"priceGlobal": 500,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_how_dns_works_8",
"name": "How DNS Works",
"subtitle": " by Julia Evans",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/how_dns_works.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 400,
"priceGlobal": 500,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_domain__1_year__11",
"name": "Domain (1 year)",
"subtitle": "(anything under $10!)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/domain.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 420,
"priceGlobal": 420,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_raspberry_pi_13",
"name": "Raspberry Pi",
"subtitle": "kit with Zero 2 W!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/raspberry_pi.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 486,
"priceGlobal": 490,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_digital_calipers_50",
"name": "Digital Calipers",
"subtitle": "plastic, but fantastic!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/cheap_digital_calipers.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 500,
"priceGlobal": 618,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_github_invertocat_pin__39",
"name": "GitHub Invertocat Pin!",
"subtitle": "stylish!!!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/gh_invertocat_pin.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 546,
"priceGlobal": 819,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_pcb_56",
"name": "PCB manufacturing credit!",
"subtitle": "works <a href=\"https://github.com/hackclub/OnBoard/blob/main/docs/VENDORS.md\" target=\"_blank\"><u>anywhere OnBoard does</u></a>!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/card_grant_pcb.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 600,
"priceGlobal": 600,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_hot_glue_gun",
"name": "Hot Glue Gun",
"subtitle": "affix some things to some stuff!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/glue_gun.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": false,
"enabledCa": true,
"priceUs": 600,
"priceGlobal": 600,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_parts_credit",
"name": "DigiKey/LCSC Credit",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/card_grant_parts.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 600,
"priceGlobal": 600,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_signed_photo_of_malted_19",
"name": "Signed photo of Malted",
"subtitle": "(may incur customs charges)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/signed_photo_of_malted.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": true,
"enabledCa": true,
"priceUs": 623,
"priceGlobal": 724,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_pinecil_20",
"name": "Pinecil",
"subtitle": "64 whole pines!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/pinecil.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 876,
"priceGlobal": 876,
"fulfilledAtEnd": true,
"comingSoon": true,
"outOfStock": true
},
{
"id": "item_github_notebook_37",
"name": "GitHub Notebook",
"subtitle": "Denik Layflat!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/gh_denik_layflat_notebook.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 924,
"priceGlobal": 1738,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_github_keycaps_38",
"name": "GitHub Keycaps",
"subtitle": "assorted pack of 8!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/gh_keycaps.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 1134,
"priceGlobal": 1617,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_hack_club_socks__34",
"name": "Hack Club socks!",
"subtitle": "(genuinely really comfy!)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/hc_socks.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 1300,
"priceGlobal": 1413,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_blah_j_5",
"name": "Blahåj",
"subtitle": "⚠warning: smolhaj!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/blahaj.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": true,
"enabledCa": true,
"priceUs": 1312,
"priceGlobal": 1312,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_ham_radio",
"name": "Baofeng UV-5R",
"subtitle": "ham! but no cheese...",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/baofeng.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": false,
"enabledCa": false,
"priceUs": 1317,
"priceGlobal": 1317,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_signed_photo_of_graham_darcey_16",
"name": "Signed photo of Graham Darcey",
"subtitle": "(rare!!!)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/signed_photo_of_graham.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": true,
"enabledCa": true,
"priceUs": 1324,
"priceGlobal": 1324,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_fudge",
"name": "1 lb fudge from place next to HQ",
"subtitle": "even the dinosaur likes it!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/fudge.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": false,
"enabledCa": true,
"priceUs": 1366,
"priceGlobal": 2600,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_yubikey_9",
"name": "YubiKey",
"subtitle": "5C NFC, GitHub-branded",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/yubikey.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 1512,
"priceGlobal": 1512,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_leatherman_skeletool_kbx_18",
"name": "Leatherman Skeletool KBX",
"subtitle": "thanks @cwalker!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/skeletool.png",
"enabledUs": true,
"enabledEu": false,
"enabledIn": false,
"enabledXx": false,
"enabledCa": false,
"priceUs": 1530,
"priceGlobal": 1420,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_lockpick_set_31",
"name": "Lockpick set",
"subtitle": "<a href=\"https://toool.us\" target=\"_blank\"><u>TOOOL</u></a>'s Necessary Nine!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/lockpicks.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": false,
"enabledCa": true,
"priceUs": 1544,
"priceGlobal": 1653,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_badger",
"name": "GitHub Universe Badge",
"subtitle": "<a href=\"https://gh.io/badger\" target=\"_blank\"><u>wait</u></a>, this is just an RP2350 and an e-ink display...",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/gh_badger.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 1890,
"priceGlobal": 1890,
"fulfilledAtEnd": true,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_raspberry_pi_5_45",
"name": "Raspberry Pi 5",
"subtitle": "4GB RAM & 64GB µSD!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/raspberry_pi_5.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 2570,
"priceGlobal": 2710,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_dremel_4300_kit_33",
"name": "Dremel 4300 kit",
"subtitle": "5 attachments and 40 accessories!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/dremel.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": false,
"enabledCa": true,
"priceUs": 2810,
"priceGlobal": 3060,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_github_miir_backpack_35",
"name": "GitHub MiiR® Backpack",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/gh_miir_backpack.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 6653,
"priceGlobal": 7302,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_flipper_32",
"name": "Flipper",
"subtitle": "(zero!)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/flipper.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": false,
"enabledCa": true,
"priceUs": 9000,
"priceGlobal": 9000,
"fulfilledAtEnd": true,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_system76_launch_keyboard_48",
"name": "System76 Launch Keyboard",
"subtitle": "<a href=\"https://github.com/system76/launch\" target=\"_blank\"><u>open-source!!!</u></a>",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/s76_launch.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 9450,
"priceGlobal": 9920,
"fulfilledAtEnd": false,
"comingSoon": true,
"outOfStock": false
},
{
"id": "item_mitutoyo_12_precision_calipers_51",
"name": "Mitutoyo 12\" Precision Calipers",
"subtitle": "<a target=\"_blank\" href=\"https://shop.mitutoyo.eu/web/mitutoyo/en/mitutoyo/PR/500-193-30/datasheet.xhtml\"><u>digimatic</u>! i'm a fanatic!!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/really_nice_calipers.png",
"enabledUs": true,
"enabledEu": false,
"enabledIn": false,
"enabledXx": false,
"enabledCa": false,
"priceUs": 10164,
"priceGlobal": 10570.56,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_thermal_camera",
"name": "Thermal imaging camera",
"subtitle": "hot stuff!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/thermal_cam.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": false,
"enabledCa": true,
"priceUs": 10700,
"priceGlobal": 10700,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_hot_air",
"name": "Hot-air rework station",
"subtitle": "(Quick 861DW)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/quick.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": false,
"enabledCa": false,
"priceUs": 11800,
"priceGlobal": 11800,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_100mhz_oscilloscope_53",
"name": "100MHZ Oscilloscope",
"subtitle": "Siglent <a href=\"https://siglentna.com/wp-content/uploads/dlm_uploads/2021/04/SDS1000CMLplus_DataSheet_DS0101A-E03A.pdf\" target=\"_blank\"><u>SDS1102CML+</u></a>",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/1152cml.png",
"enabledUs": true,
"enabledEu": false,
"enabledIn": false,
"enabledXx": false,
"enabledCa": false,
"priceUs": 12663,
"priceGlobal": 12663,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_bambu_lab_a1_mini_49",
"name": "Bambu Lab A1 Mini",
"subtitle": "print print print print print!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/bambu_a1_mini.png",
"enabledUs": true,
"enabledEu": false,
"enabledIn": true,
"enabledXx": false,
"enabledCa": true,
"priceUs": 14081,
"priceGlobal": 14196,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_ipad_46",
"name": "iPad",
"subtitle": "10th gen (w/ Apple Pencil!)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/ipad.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 26003,
"priceGlobal": 28003,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_round_trip_2_hq",
"name": "Round-trip flight to Hack Club HQ",
"subtitle": "visit scenic vermont!<br/><del>come bug me about shop prices in-person!!</del>",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/flight_to_hq.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 35280,
"priceGlobal": 94500,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_framework_laptop_13_factory_seconds_53",
"name": "Framework Laptop 13\"",
"subtitle": "(factory seconds)",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/fw_13.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": false,
"enabledCa": true,
"priceUs": 46000,
"priceGlobal": 46000,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_framework_laptop_16__52",
"name": "Framework Laptop 16\"",
"subtitle": "we only have one of these, grab it if you can!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/fw_16_inch.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": false,
"enabledXx": false,
"enabledCa": true,
"priceUs": 54000,
"priceGlobal": 54000,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_macbook_air_54",
"name": "MacBook Air M2 13\"",
"subtitle": "refurbished, 8GB RAM",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/macbook_air_m2.png",
"enabledUs": true,
"enabledEu": false,
"enabledIn": false,
"enabledXx": false,
"enabledCa": false,
"priceUs": 58800,
"priceGlobal": 58800,
"fulfilledAtEnd": true,
"comingSoon": false,
"outOfStock": false
},
{
"id": "item_defcon_ticket_55",
"name": "ticket to DEF CON",
"subtitle": "flight and hotel included!",
"imageUrl": "https://noras-secret-cdn.hackclub.dev/shop/defcon.png",
"enabledUs": true,
"enabledEu": true,
"enabledIn": true,
"enabledXx": true,
"enabledCa": true,
"priceUs": 110000,
"priceGlobal": 111000,
"fulfilledAtEnd": false,
"comingSoon": false,
"outOfStock": false
}
]

45
src/commands/shop.ts Normal file
View file

@ -0,0 +1,45 @@
import { App } from "@slack/bolt";
import { Command, onlyForMe } from "../modules/BaseCommand";
import { getShopItem, searchShop } from "../modules/Songs";
export default class Shop implements Command {
name: string;
description: string;
constructor() {
this.name = `/shop`;
this.description = `Get high seas shop info`;
}
run(app: App) {
// app.command()
app.command(this.name, async ({ command, ack, respond }) => {
await ack();
const args = command.text.split(" ")
const subcmd = args.shift().toLowerCase()
switch(subcmd) {
case "search":
const query = args.join(" ")
const results = await searchShop(query)
// responsd
if (results.length === 0) {
respond(`No results found for \`${query}\``)
return
}
respond(`Search results for \`${query}\`:\n${results.map(e => `> ${e.name}\`${e.id}\` - ${e.subtitle}`).join("\n")}`)
break;
case "item":
const item = args.join(" ")
const result = await getShopItem(item)
if (!result) {
respond(`No results found for \`${item}\``)
return
}
respond(Object.entries(result).map(e=> `> ${e[0]}: ${e[1].toString()}`).join("\n"))
default:
respond(`Unknown subcmd \`${subcmd}\``)
break;
}
});
}
}

32
src/modules/Songs.ts Normal file
View file

@ -0,0 +1,32 @@
import Shop from "../assets/shop.json"
// js typings & data retrival
export type Shop = ShopItem[]
export interface ShopItem {
id: string
name: string
subtitle?: string
imageUrl: string
enabledUs: boolean
enabledEu: boolean
enabledIn: boolean
enabledXx: boolean
enabledCa: boolean
priceUs: number
priceGlobal: number
fulfilledAtEnd: boolean
comingSoon: boolean
outOfStock: boolean
}
export function getShop(): Shop {
return Shop;
}
export function getShopItem(id: string): ShopItem {
return Shop.find(e => e.id === id);
}
export function searchShop(query: string): ShopItem[] {
return Shop.filter(e => e.name.toLowerCase().includes(query.toLowerCase()));
// return Shop.filter(e => e.name.toLowerCase().includes(query.toLowerCase()));
}