If pool slug does not exist, generate one on the fly, avoid crash

This commit is contained in:
nymkappa 2022-03-25 12:31:09 +09:00
parent 8114ffe1c8
commit 810c335759
No known key found for this signature in database
GPG key ID: E155910B16E8BD04

View file

@ -12,6 +12,8 @@ interface Pool {
}
class PoolsParser {
slugWarnFlag = false;
/**
* Parse the pools.json file, consolidate the data and dump it into the database
*/
@ -93,7 +95,22 @@ class PoolsParser {
}
const finalPoolName = poolNames[i].replace(`'`, `''`); // To support single quote in names when doing db queries
const slug = poolsJson['slugs'][poolNames[i]];
let slug: string | undefined;
try {
slug = poolsJson['slugs'][poolNames[i]];
} catch (e) {
if (this.slugWarnFlag === false) {
logger.warn(`pools.json does not seem to contain the 'slugs' object`);
this.slugWarnFlag = true;
}
}
if (slug === undefined) {
// Only keep alphanumerical
slug = poolNames[i].replace(/[^a-z0-9]/gi,'').toLowerCase();
logger.debug(`No slug found for '${poolNames[i]}', generating it => '${slug}'`);
}
if (existingPools.find((pool) => pool.name === poolNames[i]) !== undefined) {
finalPoolDataUpdate.push({