'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var globals = require('../../utilities/globals'); var utilities = require('../../utilities'); var tslib = require('tslib'); function fromError(errorValue) { return new utilities.Observable(function (observer) { observer.error(errorValue); }); } function toPromise(observable) { var completed = false; return new Promise(function (resolve, reject) { observable.subscribe({ next: function (data) { if (completed) { __DEV__ && globals.invariant.warn("Promise Wrapper does not support multiple results from Observable"); } else { completed = true; resolve(data); } }, error: reject, }); }); } function fromPromise(promise) { return new utilities.Observable(function (observer) { promise .then(function (value) { observer.next(value); observer.complete(); }) .catch(observer.error.bind(observer)); }); } var throwServerError = function (response, result, message) { var error = new Error(message); error.name = 'ServerError'; error.response = response; error.statusCode = response.status; error.result = result; throw error; }; function validateOperation(operation) { var OPERATION_FIELDS = [ 'query', 'operationName', 'variables', 'extensions', 'context', ]; for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) { var key = _a[_i]; if (OPERATION_FIELDS.indexOf(key) < 0) { throw __DEV__ ? new globals.InvariantError("illegal argument: ".concat(key)) : new globals.InvariantError(27); } } return operation; } function createOperation(starting, operation) { var context = tslib.__assign({}, starting); var setContext = function (next) { if (typeof next === 'function') { context = tslib.__assign(tslib.__assign({}, context), next(context)); } else { context = tslib.__assign(tslib.__assign({}, context), next); } }; var getContext = function () { return (tslib.__assign({}, context)); }; Object.defineProperty(operation, 'setContext', { enumerable: false, value: setContext, }); Object.defineProperty(operation, 'getContext', { enumerable: false, value: getContext, }); return operation; } function transformOperation(operation) { var transformedOperation = { variables: operation.variables || {}, extensions: operation.extensions || {}, operationName: operation.operationName, query: operation.query, }; if (!transformedOperation.operationName) { transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? utilities.getOperationName(transformedOperation.query) || undefined : ''; } return transformedOperation; } exports.createOperation = createOperation; exports.fromError = fromError; exports.fromPromise = fromPromise; exports.throwServerError = throwServerError; exports.toPromise = toPromise; exports.transformOperation = transformOperation; exports.validateOperation = validateOperation; //# sourceMappingURL=utils.cjs.map