mirror of
https://github.com/CamHenlin/MessagesForMacintosh.git
synced 2024-11-29 08:49:40 +00:00
132 lines
5.4 KiB
JavaScript
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
|