import { RedisClient } from "bun"; import { effects, types, weapons, armors, shields, talismans, items, regions, enemies } from "../../data"; const redis = new RedisClient("redis://localhost:40379"); console.log("Populating database with ~100 static Ringstats entries..."); // Helper for hset const setHash = async (prefix: string, list: any[]) => { for (const obj of list) { // extract items/enemies sets if they exist const { items, enemies, ...hashData } = obj; await redis.hset(`${prefix}:${obj.id}`, hashData); if (items && items.length > 0) { await redis.sadd(`${prefix}:${obj.id}:items`, ...items); } if (enemies && enemies.length > 0) { await redis.sadd(`${prefix}:${obj.id}:enemies`, ...enemies); } } }; await setHash("item_effect", effects); await setHash("item_type", types); await setHash("weapon", weapons); await setHash("armor", armors); await setHash("shield", shields); await setHash("talisman", talismans); await setHash("item", items); await setHash("region", regions); await setHash("enemy", enemies); console.log(`Inserted ${effects.length + types.length + weapons.length + armors.length + shields.length + talismans.length + items.length + regions.length + enemies.length} primary entities into Redis.`); console.log("Database successfully seeded."); process.exit(0);