From 4003ee14f2b886948dd835f85f3c958b8f47978b Mon Sep 17 00:00:00 2001 From: Kelvin Oghenerhoro Omereshone Date: Sat, 10 Feb 2024 09:52:57 +0100 Subject: [PATCH] feat: change config to follow datastores conventions (#2) --- index.js | 35 +++++++++++++++++------------------ lib/stores/cache-store.js | 3 ++- lib/stores/redis-store.js | 1 - 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/index.js b/index.js index f975b09..35af85f 100644 --- a/index.js +++ b/index.js @@ -4,32 +4,31 @@ module.exports = function defineSailsCacheHook(sails) { return { defaults: { stash: { - store: process.env.CACHE_STORE || 'redis', - stores: { - redis: { - store: 'redis', - datastore: 'cache', - }, - memcached: { - store: 'memcached', - datastore: 'cache', - }, + cachestore: 'default', + }, + cachestores: { + default: { + store: 'redis', + datastore: 'cache', }, }, }, initialize: async function () { - function getCacheStore(store) { - switch (sails.config.stash.stores[store].store) { + function getCacheStore(cachestore) { + if (!sails.config.cachestores[cachestore]) { + throw new Error('The provided cachestore coult not be found.') + } + switch (sails.config.cachestores[cachestore].store) { case 'redis': return new RedisStore(sails) default: - throw new Error('Invalid cache store provided') + throw new Error( + 'Invalid store provided, supported stores are redis or memcached.', + ) } } - let cacheStore = getCacheStore( - sails.config.stash.stores[sails.config.stash.store].store, - ) + let cacheStore = getCacheStore(sails.config.stash.cachestore) sails.cache = { get: cacheStore.get.bind(cacheStore), @@ -41,8 +40,8 @@ module.exports = function defineSailsCacheHook(sails) { pull: cacheStore.pull.bind(cacheStore), forever: cacheStore.forever.bind(cacheStore), destroy: cacheStore.destroy.bind(cacheStore), - store: function (store) { - return getCacheStore(store) + store: function (cachestore) { + return getCacheStore(cachestore) }, } }, diff --git a/lib/stores/cache-store.js b/lib/stores/cache-store.js index 04719c8..67f35af 100644 --- a/lib/stores/cache-store.js +++ b/lib/stores/cache-store.js @@ -6,7 +6,8 @@ function CacheStore(sails) { } this.sails = sails - this.datastore = sails.config.stash.stores[sails.config.stash.store].datastore + this.datastore = + sails.config.cachestores[sails.config.stash.cachestore].datastore this.store = null } /** diff --git a/lib/stores/redis-store.js b/lib/stores/redis-store.js index c20c63e..8f601e5 100644 --- a/lib/stores/redis-store.js +++ b/lib/stores/redis-store.js @@ -7,7 +7,6 @@ function RedisStore(sails) { RedisStore.prototype = Object.create(CacheStore.prototype) RedisStore.prototype.constructor = RedisStore -RedisStore.prototype.getStore = CacheStore.prototype.getStore /** * Retrieves the value associated with the specified key from the cache store.