UNPKG

@gravity-ui/data-source

Version:
53 lines 2.23 kB
import _objectSpread from "@babel/runtime/helpers/objectSpread2"; import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import { skipToken } from '@tanstack/react-query'; import { composeFullKey, idle } from '../../../core'; import { formatNullableValue, parseNullableValue } from '../utils'; export var composeOptions = function composeOptions(context, dataSource, params, options) { var transformParams = dataSource.transformParams, transformResponse = dataSource.transformResponse, transformError = dataSource.transformError; var queryFn = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fetchContext) { var response; return _regeneratorRuntime.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", 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", 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 = parseNullableValue(response); return transformResponse ? transformResponse(actualResponse) : actualResponse; }; return _objectSpread(_objectSpread({ queryKey: composeFullKey(dataSource, params), queryFn: params === idle ? skipToken : queryFn, select: select }, dataSource.options), options); }; // #sourceMappingURL=utils.js.map