history-provider.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { getErrorMessage, } from './helpers';
  2. var HistoryProvider = /** @class */ (function () {
  3. function HistoryProvider(datafeedUrl, requester) {
  4. this._datafeedUrl = datafeedUrl;
  5. this._requester = requester;
  6. }
  7. HistoryProvider.prototype.getBars = function (symbolInfo, resolution, rangeStartDate, rangeEndDate) {
  8. var _this = this;
  9. var requestParams = {
  10. symbol: symbolInfo.ticker || '',
  11. resolution: resolution,
  12. from: rangeStartDate,
  13. to: rangeEndDate,
  14. };
  15. return new Promise(function (resolve, reject) {
  16. _this._requester.sendRequest(_this._datafeedUrl, 'history', requestParams)
  17. .then(function (response) {
  18. if (response.s !== 'ok' && response.s !== 'no_data') {
  19. reject(response.errmsg);
  20. return;
  21. }
  22. var bars = [];
  23. var meta = {
  24. noData: false,
  25. };
  26. if (response.s === 'no_data') {
  27. meta.noData = true;
  28. meta.nextTime = response.nextTime;
  29. }
  30. else {
  31. var volumePresent = response.v !== undefined;
  32. var ohlPresent = response.o !== undefined;
  33. for (var i = 0; i < response.t.length; ++i) {
  34. var barValue = {
  35. time: response.t[i] * 1000,
  36. close: Number(response.c[i]),
  37. open: Number(response.c[i]),
  38. high: Number(response.c[i]),
  39. low: Number(response.c[i]),
  40. };
  41. if (ohlPresent) {
  42. barValue.open = Number(response.o[i]);
  43. barValue.high = Number(response.h[i]);
  44. barValue.low = Number(response.l[i]);
  45. }
  46. if (volumePresent) {
  47. barValue.volume = Number(response.v[i]);
  48. }
  49. bars.push(barValue);
  50. }
  51. }
  52. resolve({
  53. bars: bars,
  54. meta: meta,
  55. });
  56. })
  57. .catch(function (reason) {
  58. var reasonString = getErrorMessage(reason);
  59. console.warn("HistoryProvider: getBars() failed, error=" + reasonString);
  60. reject(reasonString);
  61. });
  62. });
  63. };
  64. return HistoryProvider;
  65. }());
  66. export { HistoryProvider };