apollo-mantra
Version:
Tools for integration of apollo with Mantra
53 lines (52 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var config_1 = require("./config");
function default_1(_a) {
var query = _a.query, variables = _a.variables, optimisticCallback = _a.optimisticCallback, thenCallback = _a.thenCallback, errorCallback = _a.errorCallback, catchCallback = _a.catchCallback, finalCallback = _a.finalCallback, forceFetch = _a.forceFetch, pollInterval = _a.pollInterval, returnPartialData = _a.returnPartialData;
return function (dispatch, state) {
if (optimisticCallback) {
optimisticCallback(dispatch, state);
}
var observer = config_1.default.apolloClient.watchQuery({
query: (_a = ["", ""], _a.raw = ["", ""], gql(_a, query)),
variables: variables,
pollInterval: pollInterval
});
var subscription = observer.subscribe({
next: function (graphQLResult) {
var errors = graphQLResult.errors, data = graphQLResult.data;
if (data && thenCallback) {
thenCallback(data, dispatch, state);
}
if (errors && errorCallback) {
// showMessage('Error', errors);
errorCallback(errors, dispatch, state);
console.error(errors);
}
if (finalCallback) {
finalCallback(dispatch, state);
}
},
error: function (error) {
// showMessage('Error', error);
if (catchCallback) {
catchCallback(error, dispatch, state);
}
if (error.networkError) {
console.error(error.networkError);
console.error(error.networkError.stack);
}
else {
console.error(error);
console.error(error.stack);
}
if (finalCallback) {
finalCallback(dispatch, state);
}
}
});
return subscription;
var _a;
};
}
exports.default = default_1;