No documentation subpage (
/doc) found for this module.function resolveArgs(args) {
if (typeof args == "string") return { "0": args };
return args;
}
function isModuleEmpty(mod) {
return !mod || Object.keys(mod).length === 0;
}
async function resolveData(moduleName, test = false) {
const versionsModuleName = test ? `TEST/Versions` : `Versions`;
const Versions = await requireData(versionsModuleName);
const LatestGameVersion = Versions.latest;
const VersionEntries = Versions.versions || [];
const requireName = test ? `TEST/${moduleName}/data/${LatestGameVersion}` : `${moduleName}/data/${LatestGameVersion}`;
let DATA = await requireData(requireName);
let usedVersion = LatestGameVersion;
// Fallback: iterate versions list in order
if (isModuleEmpty(DATA)) {
for (const entry of VersionEntries) {
const v = entry.id;
const candidateName = test ? `TEST/${moduleName}/data/${v}` : `${moduleName}/data/${v}`
const candidate = await requireData(candidateName);
if (!isModuleEmpty(candidate)) {
DATA = candidate;
usedVersion = v;
break;
}
}
}
return { data: DATA, version: usedVersion };
}
function sortObjectByKey(obj) {
return Object.keys(obj).sort().reduce((result, key) => {
result[key] = obj[key];
return result;
}, {});
}
function filterObjectByProperty(obj, key, value) {
return Object.fromEntries(
Object.entries(obj).filter(([_, v]) => v[key] === value)
);
}
function sortObject(obj, compareFunction) {
// Turn the object into an array of objects
const entries = Object.entries(obj);
// Sort the array using the provided compare function
entries.sort((a, b) => compareFunction(a[1], b[1]));
// Convert the sorted array back into an object
return Object.fromEntries(entries);
}
function findByProperty(obj, key, value) {
return Object.values(obj).find(item => item[key] === value);
}
exports = {
resolveArgs,
isModuleEmpty,
resolveData,
sortObjectByKey,
filterObjectByProperty,
sortObject,
findByProperty
}