refactor(web): remove typescript
This commit is contained in:
42
packages/web/src/graphql/cache.js
Normal file
42
packages/web/src/graphql/cache.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import { InMemoryCache } from '@apollo/client';
|
||||
const cache = new InMemoryCache({
|
||||
typePolicies: {
|
||||
App: {
|
||||
keyFields: ['key'],
|
||||
},
|
||||
Mutation: {
|
||||
mutationType: true,
|
||||
fields: {
|
||||
verifyConnection: {
|
||||
merge(existing, verifiedConnection, { readField, cache }) {
|
||||
const appKey = readField('key', verifiedConnection);
|
||||
const appCacheId = cache.identify({
|
||||
__typename: 'App',
|
||||
key: appKey,
|
||||
});
|
||||
cache.modify({
|
||||
id: appCacheId,
|
||||
fields: {
|
||||
connections: (existingConnections) => {
|
||||
const existingConnectionIndex = existingConnections.findIndex(
|
||||
(connection) => {
|
||||
return connection.__ref === verifiedConnection.__ref;
|
||||
}
|
||||
);
|
||||
const connectionExists = existingConnectionIndex !== -1;
|
||||
// newly created and verified connection
|
||||
if (!connectionExists) {
|
||||
return [verifiedConnection, ...existingConnections];
|
||||
}
|
||||
return existingConnections;
|
||||
},
|
||||
},
|
||||
});
|
||||
return verifiedConnection;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
export default cache;
|
Reference in New Issue
Block a user