mirror of
https://github.com/CamHenlin/MessagesForMacintosh.git
synced 2025-02-18 05:30:26 +00:00
195 lines
4.2 KiB
JavaScript
195 lines
4.2 KiB
JavaScript
exports.__esModule = true;
|
|
exports.Cache = exports.ApolloCache = void 0;
|
|
|
|
var _apolloUtilities = require("apollo-utilities");
|
|
|
|
function queryFromPojo(obj) {
|
|
var op = {
|
|
kind: 'OperationDefinition',
|
|
operation: 'query',
|
|
name: {
|
|
kind: 'Name',
|
|
value: 'GeneratedClientQuery'
|
|
},
|
|
selectionSet: selectionSetFromObj(obj)
|
|
};
|
|
var out = {
|
|
kind: 'Document',
|
|
definitions: [op]
|
|
};
|
|
return out;
|
|
}
|
|
|
|
function fragmentFromPojo(obj, typename) {
|
|
var frag = {
|
|
kind: 'FragmentDefinition',
|
|
typeCondition: {
|
|
kind: 'NamedType',
|
|
name: {
|
|
kind: 'Name',
|
|
value: typename || '__FakeType'
|
|
}
|
|
},
|
|
name: {
|
|
kind: 'Name',
|
|
value: 'GeneratedClientQuery'
|
|
},
|
|
selectionSet: selectionSetFromObj(obj)
|
|
};
|
|
var out = {
|
|
kind: 'Document',
|
|
definitions: [frag]
|
|
};
|
|
return out;
|
|
}
|
|
|
|
function selectionSetFromObj(obj) {
|
|
if (typeof obj === 'number' || typeof obj === 'boolean' || typeof obj === 'string' || typeof obj === 'undefined' || obj === null) {
|
|
return null;
|
|
}
|
|
|
|
if (Array.isArray(obj)) {
|
|
return selectionSetFromObj(obj[0]);
|
|
}
|
|
|
|
var selections = [];
|
|
Object.keys(obj).forEach(function (key) {
|
|
var nestedSelSet = selectionSetFromObj(obj[key]);
|
|
var field = {
|
|
kind: 'Field',
|
|
name: {
|
|
kind: 'Name',
|
|
value: key
|
|
},
|
|
selectionSet: nestedSelSet || undefined
|
|
};
|
|
selections.push(field);
|
|
});
|
|
var selectionSet = {
|
|
kind: 'SelectionSet',
|
|
selections: selections
|
|
};
|
|
return selectionSet;
|
|
}
|
|
|
|
var justTypenameQuery = {
|
|
kind: 'Document',
|
|
definitions: [{
|
|
kind: 'OperationDefinition',
|
|
operation: 'query',
|
|
name: null,
|
|
variableDefinitions: null,
|
|
directives: [],
|
|
selectionSet: {
|
|
kind: 'SelectionSet',
|
|
selections: [{
|
|
kind: 'Field',
|
|
alias: null,
|
|
name: {
|
|
kind: 'Name',
|
|
value: '__typename'
|
|
},
|
|
arguments: [],
|
|
directives: [],
|
|
selectionSet: null
|
|
}]
|
|
}
|
|
}]
|
|
};
|
|
|
|
var ApolloCache = function () {
|
|
function ApolloCache() {}
|
|
|
|
ApolloCache.prototype.transformDocument = function (document) {
|
|
return document;
|
|
};
|
|
|
|
ApolloCache.prototype.transformForLink = function (document) {
|
|
return document;
|
|
};
|
|
|
|
ApolloCache.prototype.readQuery = function (options, optimistic) {
|
|
if (optimistic === void 0) {
|
|
optimistic = false;
|
|
}
|
|
|
|
return this.read({
|
|
query: options.query,
|
|
variables: options.variables,
|
|
optimistic: optimistic
|
|
});
|
|
};
|
|
|
|
ApolloCache.prototype.readFragment = function (options, optimistic) {
|
|
if (optimistic === void 0) {
|
|
optimistic = false;
|
|
}
|
|
|
|
return this.read({
|
|
query: (0, _apolloUtilities.getFragmentQueryDocument)(options.fragment, options.fragmentName),
|
|
variables: options.variables,
|
|
rootId: options.id,
|
|
optimistic: optimistic
|
|
});
|
|
};
|
|
|
|
ApolloCache.prototype.writeQuery = function (options) {
|
|
this.write({
|
|
dataId: 'ROOT_QUERY',
|
|
result: options.data,
|
|
query: options.query,
|
|
variables: options.variables
|
|
});
|
|
};
|
|
|
|
ApolloCache.prototype.writeFragment = function (options) {
|
|
this.write({
|
|
dataId: options.id,
|
|
result: options.data,
|
|
variables: options.variables,
|
|
query: (0, _apolloUtilities.getFragmentQueryDocument)(options.fragment, options.fragmentName)
|
|
});
|
|
};
|
|
|
|
ApolloCache.prototype.writeData = function (_a) {
|
|
var id = _a.id,
|
|
data = _a.data;
|
|
|
|
if (typeof id !== 'undefined') {
|
|
var typenameResult = null;
|
|
|
|
try {
|
|
typenameResult = this.read({
|
|
rootId: id,
|
|
optimistic: false,
|
|
query: justTypenameQuery
|
|
});
|
|
} catch (e) {}
|
|
|
|
var __typename = typenameResult && typenameResult.__typename || '__ClientData';
|
|
|
|
var dataToWrite = Object.assign({
|
|
__typename: __typename
|
|
}, data);
|
|
this.writeFragment({
|
|
id: id,
|
|
fragment: fragmentFromPojo(dataToWrite, __typename),
|
|
data: dataToWrite
|
|
});
|
|
} else {
|
|
this.writeQuery({
|
|
query: queryFromPojo(data),
|
|
data: data
|
|
});
|
|
}
|
|
};
|
|
|
|
return ApolloCache;
|
|
}();
|
|
|
|
exports.ApolloCache = ApolloCache;
|
|
var Cache;
|
|
exports.Cache = Cache;
|
|
|
|
(function (Cache) {})(Cache || (exports.Cache = Cache = {}));
|