'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var globals = require('../../utilities/globals'); var utilities = require('../../utilities'); var tslib = require('tslib'); var graphql = require('graphql'); 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) { globalThis.__DEV__ !== false && globals.invariant.warn(43); } 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 globals.newInvariantError(44, key); } } 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; } function filterOperationVariables(variables, query) { var result = tslib.__assign({}, variables); var unusedNames = new Set(Object.keys(variables)); graphql.visit(query, { Variable: function (node, _key, parent) { if (parent && parent.kind !== "VariableDefinition") { unusedNames.delete(node.name.value); } }, }); unusedNames.forEach(function (name) { delete result[name]; }); return result; } exports.createOperation = createOperation; exports.filterOperationVariables = filterOperationVariables; exports.fromError = fromError; exports.fromPromise = fromPromise; exports.throwServerError = throwServerError; exports.toPromise = toPromise; exports.transformOperation = transformOperation; exports.validateOperation = validateOperation; //# sourceMappingURL=utils.cjs.map