An Ember CLI addon for integrating Apollo Client and GraphQL into Ember.js applications.
ember-apollo-client is an Ember CLI addon that integrates Apollo Client v3+ and GraphQL into Ember.js applications. It provides a robust solution for managing GraphQL queries, mutations, and subscriptions, with built-in support for real-world challenges like reliable testing and preventing resource leaks. The addon is designed to bring the full power of Apollo Client to Ember.js while maintaining idiomatic Ember patterns.
Ember.js developers building applications that consume GraphQL APIs and require state management, caching, and real-time data via subscriptions. It is particularly suited for teams already using Apollo Client who want to integrate it seamlessly into an Ember.js codebase.
Developers choose ember-apollo-client because it offers a battle-tested, idiomatic Ember integration of Apollo Client with automatic cleanup of watch queries to prevent memory leaks. It provides deterministic testing utilities, FastBoot compatibility for server-side rendering, and TypeScript support, making it a production-ready solution for GraphQL in Ember apps.
🚀 An ember-cli addon for Apollo Client and GraphQL
Prevents memory leaks by automatically unsubscribing from watch queries when Ember routes or components are destroyed, using the queryManager computed macro, as highlighted in the README's section on unsubscribing.
Includes deterministic testing utilities with tracked promises and mock data setup, ensuring reliable test suites for GraphQL operations, as noted in the Testing section.
Leverages Apollo Client v3+ for comprehensive GraphQL support including queries, mutations, subscriptions, caching, and FastBoot compatibility, making it a battle-tested solution for large apps.
Maintains Ember patterns with services and computed macros, such as the queryManager decorator, making it feel native and easier for Ember developers to adopt.
Setting up GraphQL subscriptions requires overriding the Apollo service, manually configuring WebSocket links with packages like @absinthe/socket, and managing split logic, which adds significant setup complexity.
The README explicitly warns that inline queries using graphql-tag are compiled at runtime, making them slower than precompiled external files and adding extra dependencies to the vendor bundle.
Tightly coupled to specific Ember and Apollo Client versions; supporting older environments requires downgrading to legacy addon versions (e.g., 1.x for Apollo v1/v2), which may lack features or updates.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.