mirror of
https://github.com/vale981/apollo-server
synced 2025-03-06 10:11:40 -05:00
![]() * add string input to gql tag * remove esModuleInterop, tested locally * change IMPORT_FUNCTION to something real * fix the rest of the tests |
||
---|---|---|
.. | ||
src | ||
.gitignore | ||
.npmignore | ||
package.json | ||
README.md | ||
tsconfig.json |
Implementing your own Cache
Internally, Apollo Server uses the KeyValueCache
interface to provide a caching store for the Data Sources. An in-memory LRU cache is used by default, and we provide connectors for Memcached/Redis backends.
Built with extensibility in mind, you can also implement your own cache to use with Apollo Server, in a way that best suits your application needs. It needs to implement the following interface that can be exported from apollo-server-caching
:
export interface KeyValueCache {
get(key: string): Promise<string | undefined>;
set(key: string, value: string, options?: { ttl?: number }): Promise<void>;
}
Running test suite
You can export and run a jest test suite from apollo-server-caching
to test your implementation:
// ../__tests__/YourKeyValueCache.test.ts
import YourKeyValueCache from '../src/YourKeyValueCache';
import { testKeyValueCache } from 'apollo-server-caching';
testKeyValueCache(new MemcachedCache('localhost'));
Run tests with jest --verbose