This package has been deprecated

Author message:

use https://www.npmjs.com/package/@zcong/db-cache

@zcong/typeorm-cache
TypeScript icon, indicating that this package has built-in type declarations

0.3.1 • Public • Published

typeorm-cache

NPM version NPM downloads JS Test codecov

like go-zero cache, but for NodeJS

Features

  • singleflight Concurrent requests for the same instance will only call the database once
  • cache nonexist Records that do not exist in the database will also be cached for a period of time
  • memory efficient A record will only cache one complete data, and a unique key will cache one primary key reference
  • sharding Out-of-the-box support for Redis cluster sharding by @zcong/node-redis-cache
  • metrics Out-of-the-box support prometheus metrics by @zcong/node-redis-cache

Install

$ yarn add @zcong/typeorm-cache
# or npm
$ npm i @zcong/typeorm-cache --save

Usage

@Entity()
export class Student {
  @PrimaryGeneratedColumn()
  studentId: number

  @Column({
    unique: true,
  })
  cardId: string

  @Column()
  age: number
}

const redis = new Redis()
const cache = new RedisCache({ redis, prefix: 'typeorm' })

const student = new TypeormCache(StudentRepository, cache, {
  disable: false,
  expire: 60, // cache expire seconds
  uniqueFields: ['cardId'], // cacheFindByUniqueKey method fields allowlist, filed must be unique
})

// findone with cache
console.log(await student.cacheFindByPk(1))
console.log(await student.cacheFindByUniqueKey('cardId', 'card-01'))
// updateone, will clear record cache
console.log(await student.cacheUpdateByPk(record))
// deleteone, will clear record cache
console.log(await student.deleteByPk(1))
// only clear record cache
console.log(await student.deleteCache(real))

License

MIT © zcong1993

Readme

Keywords

none

Package Sidebar

Install

npm i @zcong/typeorm-cache

Weekly Downloads

1

Version

0.3.1

License

MIT

Unpacked Size

25.6 kB

Total Files

15

Last publish

Collaborators

  • zcong