fetch.js 1.6 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  3. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  4. return new (P || (P = Promise))(function (resolve, reject) {
  5. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  6. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  7. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  8. step((generator = generator.apply(thisArg, _arguments || [])).next());
  9. });
  10. };
  11. Object.defineProperty(exports, "__esModule", { value: true });
  12. exports.Fetch = void 0;
  13. const d3_dsv_1 = require("d3-dsv");
  14. const helper_1 = require("../utils/helper");
  15. const Fetch = (options) => {
  16. const { value, format = value.split('.').pop(), delimiter = ',', autoType = true, } = options;
  17. return () => __awaiter(void 0, void 0, void 0, function* () {
  18. const response = yield fetch(value);
  19. if (format === 'csv') {
  20. // @see: https://github.com/d3/d3-dsv#dsv_parse
  21. const str = yield response.text();
  22. return (0, d3_dsv_1.dsvFormat)(delimiter).parse(str, autoType ? d3_dsv_1.autoType : helper_1.identity);
  23. }
  24. else if (format === 'json') {
  25. return yield response.json();
  26. }
  27. throw new Error(`Unknown format: ${format}.`);
  28. });
  29. };
  30. exports.Fetch = Fetch;
  31. exports.Fetch.props = {};
  32. //# sourceMappingURL=fetch.js.map