bonsaif 1.10.30 → 1.10.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -252,6 +252,36 @@ const smembers=async( options, db, key, toJson )=>{ // SMEMBERS key
252
252
  })
253
253
  }
254
254
 
255
+ const sinter=async(options, db, keys)=>{ // SINTER key [key ...]
256
+ const exec = require("./exec");
257
+ const redisConn = await exec.redisConn(options);
258
+ const start = Date.now();
259
+
260
+ // Asegurarse de que keys sea un array
261
+ if (!Array.isArray(keys)) {
262
+ keys = [keys];
263
+ }
264
+
265
+ return new Promise((resolve, reject)=>{
266
+ try{
267
+ redisConn.select(db,function() { /* ... */ }); //base 1
268
+ redisConn.sinter(keys, function (err, res) {
269
+ const end = Date.now();
270
+ const time = end - start;
271
+
272
+ resolve({"sinter":keys, "err":err, "res":res, "time":utl.milisegundosASegundos(time)});
273
+ try{
274
+ exec.redisClose(redisConn);
275
+ }catch(e){
276
+ utl.log('err.sinter '+e);
277
+ }
278
+ });
279
+ }catch(e){
280
+ utl.log('err sinter'+e);
281
+ }
282
+ })
283
+ }
284
+
255
285
  const scard=async( options, db, key )=>{ // SCARD key
256
286
  const exec = require("./exec");
257
287
  const redisConn = await exec.redisConn(options);
@@ -730,7 +760,7 @@ const api=async(options, dbm, json)=>{
730
760
  let lstop = json.stop!=null?json.stop*1:-1;
731
761
  let {field:id, val:vid} = getFirstField(filter);
732
762
 
733
- let ltdml = ['hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','hmget','del','incrbyfloat','expireat','setnx','hsetnx','hmset','expire','lrange','keys'];
763
+ let ltdml = ['sinter','sunionstore','scard','hmget','hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','del','incrbyfloat','expireat','setnx','hsetnx','hmset','expire','lrange','keys'];
734
764
  for (let x of ltdml){
735
765
  if (utl.ObjectEmpty(json,x)){
736
766
  dml = x; break;
@@ -739,6 +769,10 @@ const api=async(options, dbm, json)=>{
739
769
 
740
770
  try{ eval(` key = json.${dml}; `); } catch(e){}
741
771
 
772
+ let keysArray = json.keys!=null ? json.keys : [];
773
+ let fieldsArray = json.fields!=null ? json.fields : [];
774
+ let destination = json.destination!=null ? json.destination : '';
775
+
742
776
  let r;
743
777
  switch (dml){
744
778
  case 'set': r = await set(options,dbm,key,value,expire); break;
@@ -752,7 +786,6 @@ const api=async(options, dbm, json)=>{
752
786
  case 'smembers': r = await smembers(options,dbm,key,toJson); break;
753
787
  case 'hset': r = await hset(options,dbm,key,value,expire); break;
754
788
  case 'hgetall': r = await hgetall(options,dbm,key); break;
755
- case 'hmget': r = await hmget(options,dbm,key,value); break;
756
789
  case 'del': r = await del(options,dbm,key); break;
757
790
  case 'incrbyfloat': r = await incrbyfloat(options,dbm,key,value,expire,counter); break;
758
791
  case 'expireat': r = await expireat(options,dbm,key,expire); break;
@@ -762,6 +795,10 @@ const api=async(options, dbm, json)=>{
762
795
  case 'expire': r = await expire(options,dbm,key,expire); break;
763
796
  case 'lrange': r = await lrange(options,dbm,key,lstart,lstop); break;
764
797
  case 'keys': r = await keys(options,dbm,key); break;
798
+ case 'sinter': r = await sinter(options,dbm,Array.isArray(key) ? key : [key]); break;
799
+ case 'hmget': r = await hmget(options,dbm,key,fieldsArray); break;
800
+ case 'sunionstore': r = await sunionstore(options,dbm,destination,keysArray); break;
801
+ case 'scard': r = await scard(options,dbm,key); break;
765
802
  default: r = {"dml":"404", "err":"dml not found."};
766
803
  }
767
804
 
@@ -857,6 +894,7 @@ module.exports ={
857
894
  sadd,
858
895
  srem,
859
896
  smembers,
897
+ sinter,
860
898
  scard,
861
899
  sunionstore,
862
900
  hset,
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "name": "bonsaif",
16
16
  "description": "bonsaif is a library to connect to bonsaif apis",
17
- "version": "1.10.30",
17
+ "version": "1.10.31",
18
18
  "main": "index.js",
19
19
  "directories": {
20
20
  "lib": "lib"