import type { EntityTarget } from 'typeorm'; import { getRepository } from '../../core/database'; export function getDeserializedEntityPromise(serializedProperty: number, entityTarget: EntityTarget): Promise; export function getDeserializedEntityPromise( serializedProperty: undefined, entityTarget: EntityTarget, ): undefined; export function getDeserializedEntityPromise(serializedProperty: null, entityTarget: EntityTarget): null; export function getDeserializedEntityPromise( serializedProperty: number | undefined, entityTarget: EntityTarget, ): Promise | undefined; export function getDeserializedEntityPromise( serializedProperty: number | undefined | null, entityTarget: EntityTarget, ): Promise | undefined | null; export function getDeserializedEntityPromise( serializedProperty: number | undefined | null, entityTarget: EntityTarget, ): Promise | undefined | null { return serializedProperty === null ? null : serializedProperty ? getRepository(entityTarget).then((repo) => repo.findOneOrFail(serializedProperty)) : undefined; } export function getDeserializedEntitiesPromise( serializedProperty: number[], entityTarget: EntityTarget, ): Promise; export function getDeserializedEntitiesPromise( serializedProperty: undefined, entityTarget: EntityTarget, ): undefined; export function getDeserializedEntitiesPromise( serializedProperty: number[] | undefined, entityTarget: EntityTarget, ): Promise | undefined; export function getDeserializedEntitiesPromise( serializedProperty: number[] | undefined, entityTarget: EntityTarget, ): Promise | undefined { return serializedProperty ? Promise.all(serializedProperty.map((id) => getRepository(entityTarget).then((repo) => repo.findOneOrFail(id)))) : undefined; }