30 lines
978 B
TypeScript
30 lines
978 B
TypeScript
import type { LocalizedString } from './shared-types';
|
|
import { dataSets, loadModels } from './loadModels';
|
|
|
|
export interface Group {
|
|
readonly group_id: number;
|
|
readonly category_id: number;
|
|
readonly name: LocalizedString;
|
|
readonly published: boolean;
|
|
readonly icon_id?: number;
|
|
readonly anchorable: boolean;
|
|
readonly anchored: boolean;
|
|
readonly fittable_non_singleton: boolean;
|
|
readonly use_base_price: boolean;
|
|
readonly type_ids?: number[];
|
|
}
|
|
export function getGroup(group_id: number): Group {
|
|
if (!dataSets.loaded) loadModels();
|
|
const data = dataSets.groups[String(group_id)];
|
|
if (!data) throw new Error(`Group ID ${group_id} not found in reference data`);
|
|
return data;
|
|
}
|
|
|
|
export function groupEveRefLink(group_id: number) {
|
|
return `https://everef.net/groups/${group_id}`;
|
|
}
|
|
|
|
export function renderGroupEveRefLink(group: Group, locale: string = 'en') {
|
|
return `[${group.name[locale] ?? group.name.en}](${groupEveRefLink(group.group_id)})`;
|
|
}
|