anchovycation / metronom

Easy to use Redis ORM based on node-redis with TypeScript support
https://anchovycation.github.io/metronom/
GNU General Public License v3.0
7 stars 3 forks source link

Redis client soyutlanmalı #51

Closed saracalihan closed 1 year ago

saracalihan commented 1 year ago

Şu anda doğrudan redis adaptörünü fonksiyonların içinde kullanıyoruz fakat ileride farklı bir paket kullanmak istersek tüm kodları değiştirmemiz gerekecek bundan dolayı adaptörü interface kullanarak soyutlayabiliriz.

RedisAdaptor adında yeni bir yapı oluşturup kullanılan her Redis komutunun orada karşılığı oluşturulmalı ve Metronom içinde RedisAdaptor fonksiyonları kullanılmalı

import { createClient, RedisClientOptions, RedisClientType } from 'redis';

interface RedisAdaptor {
   hSet: (key: string, values: Array<any>): number
}

class NodeRedisAdapter implements RedisAdaptor{
  hSet(key,values)// ...
}

Metronom içinde:

// ctor
this.redisClient: RedisAdaptor = new NodeRedisAdaptor();
// this.redisClient: RedisAdaptor = new OtherPackageAdaptor();

// some function
this.redisClient.hSet('asda', ['name', 'alihan']);