@siren-js/client
Version:
Siren API client library
23 lines (22 loc) • 604 B
JavaScript
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;
}