prisma-extension-query-caching
TypeScript icon, indicating that this package has built-in type declarations

0.3.9 • Public • Published

prisma-extension-query-caching

A caching extension for Prisma, compatible with cache-manager.

Features

  • cache-manager compatibility
  • Only model queries can be cacheable (no $query or $queryRaw)
  • Uses object-code as default key generator, but you can pass a custom one
  • In-memory cache is recommended, since types like Date or Prisma.Decimal would be lost if using JSON serialization (maybe will try to use some binary serialization in the future)

Installation

Install:

npm i prisma-extension-query-caching

Usage

import { PrismaClient } from '@prisma/client'
import * as cm from 'cache-manager'
import cacheExtension from 'prisma-extension-query-caching'

async function main() {
  const cache = await cm.caching('memory', {
    ttl: 10000,
    max: 200,
  })
  const prisma = new PrismaClient().$extends(cacheExtension({ cache }))
  await prisma.user.findUniqueOrThrow({
    where: {
      email: user.email,
    },
    cache: true, // using cache default settings
  })
  await prisma.user.findMany({
    cache: 5000, // setting ttl in milliseconds
  })
  await prisma.user.count({
    cache: {
      ttl: 2000,
      key: 'user_count', // custom cache key
    },
  })
}

main().catch(console.error)

Learn more

Package Sidebar

Install

npm i prisma-extension-query-caching

Weekly Downloads

0

Version

0.3.9

License

MIT

Unpacked Size

19.2 kB

Total Files

9

Last publish

Collaborators

  • retronew