1.1.1 • Published 7 months ago

@aengz/payload-redis-cache v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

Payload Redis Cache Plugin

This plugin for Payload CMS adds a cache layer to API endpoints. The cache is based on the combination of the user's collection and the original URL.

Requirements

  • Payload version 1.0.19 or higher is required
  • A Redis instance is required

Installation

To install the plugin, run one of the following commands:

yarn add @aengz/payload-redis-cache

or

npm install @aengz/payload-redis-cache

Redis package

You also need to install the redis package if it is not already installed:

yarn add redis

or

npm install redis

Usage

To use the plugin, add it to the Payload config as follows:

import { buildConfig } from 'payload/config';
import { cachePlugin } from '@aengz/payload-redis-cache'

const config = buildConfig({
  // your config here
  
  plugins: [
    cachePlugin({ 
      excludedCollections: ['users'],
      //  excludedGlobals: ['myglobal']
    })
  ]
})

Add the initializer function in server.ts

import { cachePlugin } from '@aengz/payload-redis-cache'

...

initRedis({
  redisUrl: process.env.REDIS_URI
})

Plugin options

OptionTypeDescription
redisUrl *stringRedis instance's url.
redisNamespacestringChoose the prefix to use for cache redis keys. Defaults to payload.
redisIndexesNamestringChoose the index key for cache redis indexes. Defaults to payload-cache-index.
excludedCollectionsstring[]An array of collection names to be excluded.
excludedGlobalsstring[]An array of globals names to be excluded.
includedPathsstring[]An array of custom routes to be included.

A * denotes that the property is required.

Helpers

This package provides utility functions for managing the cache. Here's an example of how to use the invalidateCache function:

import { invalidateCache }  from '@aengz/payload-redis-cache'

...

invalidateCache()

Development

There is a development environment in the /dev directory of the repository. To use it, create a new .env file in the /dev directory using the example .env.example file as a reference:

cd dev
cp .env.example .env

Before using the plugin in the development environment, the package needs to be built. To build the library, run one of the following commands:

Build the lib

Build the lib using:

yarn dev:build

or

npm run dev:build

Use development environment

To run the development environment, use the following command:

yarn dev

or

npm run dev

Running test

To run the test suite, use one of the following commands:

yarn test

or

npm run test

License

MIT

1.1.1

7 months ago

1.1.0

7 months ago

1.0.4

10 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.3

1 year ago

1.0.0

1 year ago

0.1.11

1 year ago

0.1.10

1 year ago

0.1.10-1

1 year ago

0.1.9-11

1 year ago

0.1.9-10

1 year ago

0.1.9-9

1 year ago

0.1.9-8

1 year ago

0.1.9-6

1 year ago

0.1.9-5

1 year ago

0.1.9-4

1 year ago

0.1.9-3

1 year ago

0.1.9-2

1 year ago

0.1.9-1

1 year ago

0.1.9-0

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago