UNPKG

@gravity-ui/data-source

Version:
60 lines (59 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.composeOptions = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _reactQuery = require("@tanstack/react-query"); var _core = require("../../../core"); var _utils = require("../utils"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } var composeOptions = exports.composeOptions = function composeOptions(context, dataSource, params, options) { var transformParams = dataSource.transformParams, transformResponse = dataSource.transformResponse, transformError = dataSource.transformError; var queryFn = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(fetchContext) { var response; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return dataSource.fetch(context, fetchContext, transformParams ? transformParams(params) : params); case 3: response = _context.sent; return _context.abrupt("return", (0, _utils.formatNullableValue)(response)); case 7: _context.prev = 7; _context.t0 = _context["catch"](0); if (transformError) { _context.next = 11; break; } throw _context.t0; case 11: return _context.abrupt("return", (0, _utils.formatNullableValue)(transformError(_context.t0))); case 12: case "end": return _context.stop(); } }, _callee, null, [[0, 7]]); })); return function queryFn(_x) { return _ref.apply(this, arguments); }; }(); var select = function select(response) { var actualResponse = (0, _utils.parseNullableValue)(response); return transformResponse ? transformResponse(actualResponse) : actualResponse; }; return (0, _objectSpread2.default)((0, _objectSpread2.default)({ queryKey: (0, _core.composeFullKey)(dataSource, params), queryFn: params === _core.idle ? _reactQuery.skipToken : queryFn, select: select }, dataSource.options), options); }; // #sourceMappingURL=utils.js.map