apollo-server/packages/apollo-server-caching
renovate[bot] 6f6f1d020f chore(deps): update dependency lru-cache to v5 (#2004)
This PR contains the following updates:

| Package | Type | Update | Change | References |
|---|---|---|---|---|
| lru-cache | dependencies | major | `^4.1.3` -> `^5.0.0` | [source](https://renovatebot.com/gh/isaacs/node-lru-cache) |

---

### Release Notes

<details>
<summary>isaacs/node-lru-cache</summary>

### [`v5.1.1`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.1.0...v5.1.1)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.1.0...v5.1.1)

### [`v5.1.0`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.1...v5.1.0)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.1...v5.1.0)

### [`v5.0.1`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.0...v5.0.1)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v5.0.0...v5.0.1)

### [`v5.0.0`](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v4.1.4...v5.0.0)

[Compare Source](https://renovatebot.com/gh/isaacs/node-lru-cache/compare/v4.1.4...v5.0.0)

</details>

---

### Renovate configuration

📅 **Schedule**: "after 6pm every weekday,before 5am every weekday" in timezone America/Los_Angeles.

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻️ **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`".

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

This PR has been generated by [Renovate Bot](https://renovatebot.com/gh/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#apollographql/apollo-server).
2018-11-22 15:34:59 +02:00
..
src Instantiate lru-cache class using new in InMemoryLRUCache. (#2007) 2018-11-22 12:58:19 +02:00
.gitignore Add support for Redis and Memcached with ttls (#1191) 2018-06-18 19:36:51 -07:00
.npmignore Add support for Redis and Memcached with ttls (#1191) 2018-06-18 19:36:51 -07:00
jest.config.js Replace {} with Object.create(null) in jest.config.js 2018-10-12 13:00:13 +02:00
package.json chore(deps): update dependency lru-cache to v5 (#2004) 2018-11-22 15:34:59 +02:00
README.md Rename apollo-server-redis and apollo-server-memcached 2018-07-18 18:30:09 -07:00
tsconfig.json Add root level tsconfig.json as entry point 2018-10-05 21:48:49 +02:00

apollo-server-caching

npm version Build Status

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