You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
3.9 KiB
134 lines
3.9 KiB
'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(42); |
|
} |
|
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(43, 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
|
|
|