MessagesForMacintosh/JS/node_modules/apollo-client/data/store.js

132 lines
5.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var apollo_utilities_1 = require("apollo-utilities");
var DataStore = (function () {
function DataStore(initialCache) {
this.cache = initialCache;
}
DataStore.prototype.getCache = function () {
return this.cache;
};
DataStore.prototype.markQueryResult = function (result, document, variables, fetchMoreForQueryId, ignoreErrors) {
if (ignoreErrors === void 0) { ignoreErrors = false; }
var writeWithErrors = !apollo_utilities_1.graphQLResultHasError(result);
if (ignoreErrors && apollo_utilities_1.graphQLResultHasError(result) && result.data) {
writeWithErrors = true;
}
if (!fetchMoreForQueryId && writeWithErrors) {
this.cache.write({
result: result.data,
dataId: 'ROOT_QUERY',
query: document,
variables: variables,
});
}
};
DataStore.prototype.markSubscriptionResult = function (result, document, variables) {
if (!apollo_utilities_1.graphQLResultHasError(result)) {
this.cache.write({
result: result.data,
dataId: 'ROOT_SUBSCRIPTION',
query: document,
variables: variables,
});
}
};
DataStore.prototype.markMutationInit = function (mutation) {
var _this = this;
if (mutation.optimisticResponse) {
var optimistic_1;
if (typeof mutation.optimisticResponse === 'function') {
optimistic_1 = mutation.optimisticResponse(mutation.variables);
}
else {
optimistic_1 = mutation.optimisticResponse;
}
this.cache.recordOptimisticTransaction(function (c) {
var orig = _this.cache;
_this.cache = c;
try {
_this.markMutationResult({
mutationId: mutation.mutationId,
result: { data: optimistic_1 },
document: mutation.document,
variables: mutation.variables,
updateQueries: mutation.updateQueries,
update: mutation.update,
});
}
finally {
_this.cache = orig;
}
}, mutation.mutationId);
}
};
DataStore.prototype.markMutationResult = function (mutation) {
var _this = this;
if (!apollo_utilities_1.graphQLResultHasError(mutation.result)) {
var cacheWrites_1 = [{
result: mutation.result.data,
dataId: 'ROOT_MUTATION',
query: mutation.document,
variables: mutation.variables,
}];
var updateQueries_1 = mutation.updateQueries;
if (updateQueries_1) {
Object.keys(updateQueries_1).forEach(function (id) {
var _a = updateQueries_1[id], query = _a.query, updater = _a.updater;
var _b = _this.cache.diff({
query: query.document,
variables: query.variables,
returnPartialData: true,
optimistic: false,
}), currentQueryResult = _b.result, complete = _b.complete;
if (complete) {
var nextQueryResult = apollo_utilities_1.tryFunctionOrLogError(function () {
return updater(currentQueryResult, {
mutationResult: mutation.result,
queryName: apollo_utilities_1.getOperationName(query.document) || undefined,
queryVariables: query.variables,
});
});
if (nextQueryResult) {
cacheWrites_1.push({
result: nextQueryResult,
dataId: 'ROOT_QUERY',
query: query.document,
variables: query.variables,
});
}
}
});
}
this.cache.performTransaction(function (c) {
cacheWrites_1.forEach(function (write) { return c.write(write); });
var update = mutation.update;
if (update) {
apollo_utilities_1.tryFunctionOrLogError(function () { return update(c, mutation.result); });
}
});
}
};
DataStore.prototype.markMutationComplete = function (_a) {
var mutationId = _a.mutationId, optimisticResponse = _a.optimisticResponse;
if (optimisticResponse) {
this.cache.removeOptimistic(mutationId);
}
};
DataStore.prototype.markUpdateQueryResult = function (document, variables, newResult) {
this.cache.write({
result: newResult,
dataId: 'ROOT_QUERY',
variables: variables,
query: document,
});
};
DataStore.prototype.reset = function () {
return this.cache.reset();
};
return DataStore;
}());
exports.DataStore = DataStore;
//# sourceMappingURL=store.js.map