npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

nv-redis-fetch

v1.0.6

Published

nv-redis-fetch ============ - fetch redis

Readme

nv-redis-fetch

  • simple fetch redis

install

  • npm install nv-redis-fetch

usage

  const {RD} =require("nv-redis-fetch");
  
    var redis = new RD()
    > redis
    RD {
      family: 4,
      host: '127.0.0.1',
      port: 6379,
      password: 'redis',
      db: 0
    }
    >
    var p = redis.conn()

examples:

###has

     > var p = redis.has('k')
     > p
     Promise { false }

###add

    > var p = redis.add('k',2n**54n)
    > p
    Promise { 18014398509481984n }
    >
    > var p = redis.add('k1',undefined)
    > p
    Promise { undefined }
    > var p = redis.add('k2',null)
    > p
    Promise { null }

    > var p = redis.add('k3',1.1e5)
    > p
    Promise { 110000 }
    >

###get

    > var p = redis.get('k')
    > p
    Promise { 18014398509481984n }
    >

###set

  > var p = redis.set('k1','xyzuvw')
  > p
  Promise { 'xyzuvw' }
  >
  > var p = redis.set('k4','xyzuvw')
  > Uncaught 'not_exist'
  >
  > var p = redis.set_if_exist_else_add('k4','xyzuvw')
  > p
  Promise { 'xyzuvw' }
  >

###del

    > var p = redis.del('k4')
    > p
    Promise { true }
    > var p = redis.has('k4')
    > p
    Promise { false }
    >

###event

    var handler= (data_key)=> {
        console.log("expired:",data_key);
        var promise = redis.add("new",8888888);
        promise.then(
             r=> {
                 console.log(r)
             }
        );
    }

    var __ = redis.regis_expired_noti(handler);

    > redis.event_handlers_
    { '__keyevent@0__:expired': [Function: handler] }
    >



    > var p = redis.has('k3')
    > p
    Promise { true }
    >
    > var p = redis.has('new')
    > p
    Promise { false }
    >
    
    var p = redis.set_expire_ms('k3',8000)
    var p = redis.get_expire_ms('k3')
    > p
    Promise { 6983 }
    
    //after 8 secs
    > expired: k3
    expired: k3
    8888888
    >
    > var p = redis.has('k3')
    > p
    Promise { false }
    > var p = redis.get('new')
    > p
    Promise { 8888888 }
    >

timeout

    const {RD} = require("nv-redis-fetch");




    globalThis.ENV= {
        "@const": {
            redis:{
                password: 'redis',
                db: 0,
                port: 6379,
                host: '127.0.0.1',
                family: 4,
            }
        },
        redis:null
    }

    var rdcfg = ENV["@const"].redis;
    var {password,db,port,host,family} = rdcfg;
    var redis = await new RD(password,db,port,host,family);
    await redis.conn();
    ENV.redis = redis;

    await redis.enable_one_time_task_noti()

    console.log(new Date)
    var tskid = await redis.set_timeout(30000,async(id)=>{console.log("ABCDEF",id,new Date)})
    await redis.has(tskid);

    await redis.has(tskid);


    /*

    > console.log(new Date)
    2022-05-08T12:07:01.114Z
    undefined
    > var tskid = await redis.set_timeout(30000,async(id)=>{console.log("ABCDEF",id,new Date)})
    undefined
    > await redis.has(tskid);
    true
    > ABCDEF _76g85-xtovdaEvsKaGSkCm9MWONt0aq_PZPPzJ4VxWUZ6mrhC6b6NW6Cl6oK-lv 2022-05-08T12:07:31.138Z

    > await redis.has(tskid);
    false
    >

    */

    var tskid = await redis.set_timeout(30000,async(id)=>{console.log("WILL BE CANCELED",id,new Date)})
    await redis.has(tskid);
    await redis.clear_timeout(tskid);
    await redis.has(tskid);
    redis.one_time_task_pool_
    /*
    > var tskid = await redis.set_timeout(30000,async(id)=>{console.log("WILL BE CANCELED",id,new Date)})

    > await redis.has(tskid);
    true
    > await redis.clear_timeout(tskid)
    'Or-euHsN24J6t79TbhTHkY8myZhqpk_958VGDoEHHOQwVct18u-UlxEzGjqz66oD'
    > await redis.has(tskid);
    false
    >
    > redis.one_time_task_pool_
    Map(0) {}
    >

    */




    var tskid0 = await redis.set_timeout(30000,async(id)=>{console.log("TASK0",id,new Date)})
    var tskid1 = await redis.set_timeout(40000,async(id)=>{console.log("TASK1",id,new Date)})

    > redis.one_time_task_pool_
    Map(2) {
      'Y6jXPhJ6J_IBdE3NN8G5rrFaexcfwVuC0TbqmhRLmm_7pb_qeMvgoQbpGDG8xkcm' => [AsyncFunction (anonymous)],
      '1gRX8YC_RkRqCmAG8QtQElkolhEiF-tpYIEfhD4PllxzuA1PsL20iSjpB58wvCA6' => [AsyncFunction (anonymous)]
    }
    >
    > TASK0 Y6jXPhJ6J_IBdE3NN8G5rrFaexcfwVuC0TbqmhRLmm_7pb_qeMvgoQbpGDG8xkcm 2022-05-08T12:16:54.295Z

    >
    > redis.one_time_task_pool_
    Map(1) {
      '1gRX8YC_RkRqCmAG8QtQElkolhEiF-tpYIEfhD4PllxzuA1PsL20iSjpB58wvCA6' => [AsyncFunction (anonymous)]
    }
    >
    >
    > TASK1 1gRX8YC_RkRqCmAG8QtQElkolhEiF-tpYIEfhD4PllxzuA1PsL20iSjpB58wvCA6 2022-05-08T12:17:04.334Z

    > redis.one_time_task_pool_
    Map(0) {}
    >

interval

    var tskid = await redis.set_interval(3000,async(id)=>{console.log("every 3s",id,new Date)})

    /*
    Map(0) {}
    > var tskid = await redis.set_interval(3000,async(id)=>{console.log("every 3s",id,new Date)})
    undefined
    > every 3s c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000 2022-05-08T13:13:33.252Z

    > every 3s c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000 2022-05-08T13:13:36.266Z

    > every 3s c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000 2022-05-08T13:13:39.279Z
    every 3s c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000 2022-05-08T13:13:42.293Z

    > redis.one_time_task_pool_
    Map(1) {
      'c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000' => [AsyncFunction (anonymous)]
    }
    >
    > every 3s c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000 2022-05-08T13:13:45.304Z
    every 3s c_qmydjNhgLUKwJXhfQFDOUA400Bts4L8NoVyXvXuWl5nMgnYHI3_Oh2W7mZh8sJ@interval:3000 2022-05-08T13:13:48.316Z


    */

    await redis.clear_interval(tskid)

    /*
    > redis.one_time_task_pool_
    Map(0) {}
    >

    */

PROPS

###config

redis.db                            redis.family                        redis.host
redis.password                      redis.port

METHODS

###conn

redis.conn                     redis.disconn
redis.reconn                   redis.is_closed

operator

redis.has                      redis.get            redis.typof
redis.add                      redis.set           
redis.set_if_exist_else_add

redis.del          
redis.del_if_exist_else_do_nothing

event

redis.regis_expired_noti(handler)
redis.unregis_expired_noti


redis.get_expire_s      redis.get_expire_ms
redis.set_expire_s      redis.set_expire_ms

redis.unset_expire

 

getter

redis.expired_noti_subkey_
redis.event_handlers_

redis.rd_                       redis.sub_

tmout

async set_timeout(ms,handle=DFLT_ONE_TIME_TASK_HANDLE) {
async set_time_at(date,handle=DFLT_ONE_TIME_TASK_HANDLE) {
async set_interval(ms,handle=DFLT_ONE_TIME_TASK_HANDLE) {

async enable_one_time_task_noti() {
is_one_time_task_noti_enabled() {return(this.#one_time_task_pool!==undefined)}

async disable_one_time_task_noti() {

RESTRICT

  • currently only support undefined|null|boolean|int|float|bigint
  • others all treated-as string, coz performance issue

LICENSE

  • ISC