UNPKG

vitessce

Version:

Vitessce app and React component library

22 lines (19 loc) 694 B
/* eslint-disable no-underscore-dangle */ import DataSourceFetchError from '../errors/DataSourceFetchError'; export default class JsonSource { constructor({ url, requestInit }) { this.url = url; this.requestInit = requestInit; } get data() { if (this._data) return this._data; this._data = fetch(this.url, this.requestInit).then((response) => { if (!response.ok) { return Promise.reject(new DataSourceFetchError('JsonSource', this.url, response.headers)); } return response.json(); // eslint-disable-next-line no-console }).catch(() => Promise.reject(new DataSourceFetchError('JsonSource', this.url, {}))); return this._data; } }