owltide/utils/functions.ts

33 lines
940 B
TypeScript
Raw Permalink Normal View History

/*
SPDX-FileCopyrightText: © 2025 Hornwitser <code@hornwitser.no>
SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { LocationQueryValue } from 'vue-router';
import type { Id } from '~/shared/types/common';
export function queryToString(item?: null | LocationQueryValue | LocationQueryValue[]) {
if (item === null)
return "";
if (item instanceof Array)
return queryToString(item[0])
return item;
}
export function queryToNumber(item?: null | LocationQueryValue | LocationQueryValue[]) {
if (item === null || item === undefined)
return undefined;
if (item instanceof Array)
return queryToNumber(item[0])
return Number.parseInt(item, 10);
}
export function queryToBoolean(item?: null | LocationQueryValue | LocationQueryValue[]) {
if (item === undefined)
return false;
return true;
}
export function idMap<T extends { id: Id }>(entities: T[]) {
return new Map(entities.map(entity => [entity.id, entity]));
}