UNPKG

@siren-js/client

Version:
23 lines (22 loc) 604 B
import { transformAndValidate } from 'class-transformer-validator'; import { isString } from 'class-validator'; import { Response } from 'cross-fetch'; import { Entity } from './models/entity'; /** * Parses `value` as an {@link Entity} * @typeParam T - type of `Entity.properties` */ export async function parse(value) { let obj; if (value instanceof Response) { obj = await value.json(); } else if (isString(value)) { obj = JSON.parse(value); } else { obj = value; } const entity = await transformAndValidate(Entity, obj); return entity; }