UNPKG

@linkedmink/multilevel-aging-cache-mongoose

Version:

Package implements Mongoose for @linkedmink/multilevel-aging-cache

44 lines (39 loc) 1.25 kB
import { Error } from 'mongoose'; export function getDotSeperatedPropertyValue( search: Record<string, unknown>, path: string ): unknown { const pathParts = path.split('.'); let currentProp = search; for (let i = 0; i < pathParts.length; i++) { if (currentProp[pathParts[i]] !== undefined) { currentProp = currentProp[pathParts[i]] as Record<string, unknown>; } else { throw new Error(`${path} does not exist on object`); } } return currentProp; } export function setDotSeperatedPropertyValue( search: Record<string, unknown>, path: string, setValue: unknown ): void { const pathParts = path.split('.'); let currentProp = search; for (let i = 0; i < pathParts.length; i++) { if (i === pathParts.length - 1) { currentProp[pathParts[i]] = setValue; return; } if (currentProp[pathParts[i]] !== undefined) { currentProp = currentProp[pathParts[i]] as Record<string, unknown>; } else { throw new Error(`${path} does not exist on object`); } } } export function isMongooseValidationError(value: unknown): value is Error.ValidationError { const error = value as Error.ValidationError; return error.name === 'ValidationError' && error.errors !== undefined; }