Comments (2)
Should we start thinking about pagination? I think this is something I also missed in #1961, I will give it some thought and maybe create another issue.
type UserConnection {
edges: [UserEdge!]!
pageInfo: PageInfo!
}
type UserEdge {
node: User!
cursor: String!
}
type User {
id: ID!
name: String!
}
type Query {
users(first: Int, after: String): UserConnection!
user(datoId: String!): User
}
type Mutation {
addUser(id: String!, name: String!): User
}
We'd need to "unwrap" the UserConnection
to be able to determine whether it is a collection or not. I don't really think it's a big issue though because we can just do cache.invalidateCollection('User'); cache.invalidate('UserConnection')
, (correct me if I'm wrong), but at some point we should maybe consider dedicating a section for common pitfalls in the documentation.
from envelop.
I see what you mean. Yes this kind of pattern doesn't work well for now if our approach. I'm not sure how we could de better without making it very complex and potentially misleading for users not aware of this kind of advanced usage.
We should probably think more broadly about how cache invalidation works, perhaps take a look how other well established caching solutions handle this kind of things.
from envelop.
Related Issues (20)
- [@envelop/sentry] - Spans are not added to resolvers
- [ResponseCache] Should response be cached only if all types have opt-in
- Make @envelop/graphql-jit and @envelop/parser-cache work with async caches HOT 2
- Allow latest version of New Relic to be used
- useResponseCache with Subscriptions top level field error HOT 1
- Semantic conventions for GraphQL Server
- [generic-auth] skipped/not included fields are still passed to validate user HOT 2
- Support @sentry/nextjs in useSentry
- Using UnauthenticatedError with Bun causes Segmentation Fault HOT 2
- @envelop/response-cache clarify handling of null or empty values HOT 2
- @envelop/response-cache - More options like `inheritMaxAge` HOT 2
- `@envelop/response-cache` not respecting `enabled` being `false` HOT 2
- `@envelop/response-cache` is leaking `__responseCacheTypeName` to response payload HOT 7
- [response-cache] automatically add id field to the query document
- Incompatibility issues with `@apollo/subgraph` HOT 3
- useOnResolve allow for introspection types HOT 1
- Response Cache: Regression updating from 5.3.0 to 5.4.0 HOT 13
- `@envelop/apollo-tracing` is throwing `TypeError: Cannot read properties of undefined (reading 'hrtime')`
- `@envelop/graphql-jit` is making all subscriptions inputs `undefined` or well `{}` HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from envelop.