Files
blitzkit/src/core/blitz/resolveTankId.ts
T

29 lines
756 B
TypeScript
Raw Normal View History

2023-05-30 17:24:24 +00:00
import { go } from 'fuzzysort';
2023-06-27 17:22:27 +00:00
import throwError from '../node/throwError.js';
2023-05-30 18:42:34 +00:00
import { TANKS, tankopedia } from './tankopedia.js';
2023-05-30 17:24:24 +00:00
export default async function resolveTankId(tank: string) {
2023-06-27 02:13:07 +00:00
const number = parseInt(tank);
2023-05-30 17:24:24 +00:00
if (Number.isNaN(number)) {
const searchResult = go(tank, await TANKS, { keys: ['name'], limit: 1 });
2023-05-30 17:24:24 +00:00
if (searchResult.length === 0) {
2023-06-27 17:22:27 +00:00
throw throwError(
2023-06-06 16:50:33 +00:00
'Tank not found',
`Could not find tank by the name "${tank}".`,
);
2023-05-30 17:24:24 +00:00
} else {
return searchResult[0].obj.tank_id;
}
} else {
if ((await tankopedia)[number]) {
2023-05-30 17:24:24 +00:00
return number;
} else {
2023-06-27 17:22:27 +00:00
throw throwError(
2023-06-06 16:50:33 +00:00
'Tank not found',
`Could not find tank by the ID "${number}".`,
);
2023-05-30 17:24:24 +00:00
}
}
}