@eplata/memory-storage-data
Version:
Modulo que nos permitirá obtener data en memoria
63 lines (59 loc) • 1.84 kB
JavaScript
const init = require('./src/memory-storage');
const Joi = require('joi');
const { HOST, HOST_RO, PORT } = require('./src/environments');
const defaultOptions = {
host: HOST,
host_ro: HOST_RO || HOST,
port: PORT,
db: 0,
prefix: 'PRE:'
};
const schema = Joi.object({
host: Joi.string().required(),
host_ro: Joi.string(),
port: Joi.number().required(),
db: Joi.number().required(),
prefix: Joi.string().required()
});
const generate = (options = defaultOptions) => {
const { error } = schema.validate(options);
if (error) throw new Error(error);
const crud = init(options);
return {
existsKey: crud.existsKey,
getExpireKey: crud.getExpireKey,
deleteKey: crud.delete,
renewKeyTTL: crud.renew,
getKeys: crud.getKeys,
object: {
init: crud.init,
set: crud.setData,
addProperties: crud.addData,
get: crud.getData,
removeProperties: crud.removeData,
logicDelete: crud.logicDeleteData,
},
list: {
init: crud.initList,
set: crud.setList,
get: crud.getList,
removeElement: crud.removeElement,
addElement: crud.addElement,
getElement: crud.getElement
},
counter: {
create: crud.createCount,
get: crud.getCount,
increase: crud.increaseCount,
remove: crud.removeCount
}
};
}
module.exports = (options = { ...defaultOptions }) =>
generate({
host: options.host || defaultOptions.host,
host_ro: options.host_ro || defaultOptions.host_ro,
db: options.db || defaultOptions.db,
port: options.port || defaultOptions.port,
prefix: options.prefix || defaultOptions.prefix
});