Used to verify JSON returned with the fetcher
import { Json, isIJsonObject } from '@ef-carbon/fetch'; import { fetcher, Convert } from '@ef-carbon/fetcher'; interface IData { name: string; } function isIData(json: Json): json is IData { return isIJsonObject(json) && typeof json.name === 'string'; } function getName(json: Json): string { if (!isIData(json)) { throw TypeError(`Invalid JSON payload: ${JSON.stringify(json)}`); } return json.name; } const convert: Convert<string> = getName; // expected payload `{ "name": "Rick Sanchez" }` const response = await fetcher('http://endpoint.com/data.json'); const name = response.json(convert); // conversion console.log(name);
Used to verify JSON returned with the fetcher
import { Json, isIJsonObject } from '@ef-carbon/fetch'; import { fetcher, Convert } from '@ef-carbon/fetcher'; interface IData { name: string; } function isIData(json: Json): json is IData { return isIJsonObject(json) && typeof json.name === 'string'; } function getName(json: Json): string { if (!isIData(json)) { throw TypeError(`Invalid JSON payload: ${JSON.stringify(json)}`); } return json.name; } const convert: Convert<string> = getName; // expected payload `{ "name": "Rick Sanchez" }` const response = await fetcher('http://endpoint.com/data.json'); const name = response.json(convert); // conversion console.log(name);