dokumentation 12 seiten
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import { Database } from "arangojs";
|
||||
import { effects, types, weapons, armors, shields, talismans, items, regions, enemies } from "../../data";
|
||||
const db = new Database({ url: "http://localhost:48529" });
|
||||
|
||||
console.log("Populating database with ~100 static Ringstats entries...");
|
||||
|
||||
async function waitForArango() {
|
||||
for (let i = 0; i < 30; i++) {
|
||||
try {
|
||||
await db.version();
|
||||
return;
|
||||
} catch {
|
||||
console.log("Waiting for ArangoDB to be ready...");
|
||||
await Bun.sleep(2000);
|
||||
}
|
||||
}
|
||||
throw new Error("ArangoDB not reachable on localhost:48529");
|
||||
}
|
||||
|
||||
await waitForArango();
|
||||
|
||||
const kv = db.collection("kv");
|
||||
if (!(await kv.exists())) {
|
||||
await kv.create();
|
||||
}
|
||||
|
||||
const docs: { _key: string; value: any }[] = [];
|
||||
|
||||
const collect = (prefix: string, list: any[]) => {
|
||||
for (const obj of list) {
|
||||
const { items, enemies, ...data } = obj;
|
||||
docs.push({ _key: `${prefix}:${obj.id}`, value: data });
|
||||
if (items && items.length > 0) {
|
||||
docs.push({ _key: `${prefix}:${obj.id}:items`, value: items });
|
||||
}
|
||||
if (enemies && enemies.length > 0) {
|
||||
docs.push({ _key: `${prefix}:${obj.id}:enemies`, value: enemies });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
collect("item_effect", effects);
|
||||
collect("item_type", types);
|
||||
collect("weapon", weapons);
|
||||
collect("armor", armors);
|
||||
collect("shield", shields);
|
||||
collect("talisman", talismans);
|
||||
collect("item", items);
|
||||
collect("region", regions);
|
||||
collect("enemy", enemies);
|
||||
|
||||
await kv.import(docs, { overwrite: true, onDuplicate: "replace" });
|
||||
|
||||
console.log(`Inserted ${effects.length + types.length + weapons.length + armors.length + shields.length + talismans.length + items.length + regions.length + enemies.length} primary entities into ArangoDB.`);
|
||||
console.log("Database successfully seeded.");
|
||||
process.exit(0);
|
||||
Reference in New Issue
Block a user