3.0.0 • Published 6 months ago

@egomobile/redis v3.0.0

Weekly downloads
-
License
LGPL-3.0
Repository
github
Last release
6 months ago

npm last build PRs Welcome

@egomobile/redis

Redis classes and utilities for Node.js 12 or later.

Install

Execute the following command from your project folder, where your package.json file is stored:

npm install --save @egomobile/redis

Usage

import RedisCache from "@egomobile/redis";

const cache = new RedisCache();

await cache.flush(); // remove all entries

// non existing values
await cache.get("foo"); // (undefined)
await cache.get("foo", "TM"); // "TM"

await cache.set("foo", "bar"); // set "bar" value to "foo" key
await cache.get("foo", "TM"); // "bar"

await cache.set("foo", null); // remove value
// alternative: await cache.set("foo", undefined)
await cache.get("foo", "TM"); // "TM"

Data fetchers

Data fetchers are higher ordered function, which ensure, that data is cached and loaded at least once successfully.

import axios from "axios";
import RedisCache from "@egomobile/redis";

const cache = new RedisCache();

// loadRandomUsers: (seed: string) => Record<string, any>
const loadRandomUsers = cache.createFetcher(
  // the name of the key where to store in
  // underlying `RedisCache` instance in `cache`
  "randomUsersKey",

  // the function to wrap
  async (seed: string) => {
    const response = await axios.get(
      `https://randomuser.me/api/?seed=${encodeURIComponent(seed)}`
    );

    // Record<string, any>
    return response.data;
  }
);

// first call MUST be successful, otherwise
// exception is re-thrown
const data1 = await loadRandomUsers("foobar1");

// should be same as `data1`, because it is cached
//
// this method does exactly the same as the function itself (and has its same structure), but
// returns an object with extended information and without throwing an error
const { value: data2 } = await loadRandomUsers.fetch("foobar2");

// reset and force reloading data
//
// after reset, the execution MUST be successful at least one time again
await loadRandomUsers.reset();
const data3 = await loadRandomUsers("foobar3");

Documentation

The API documentation can be found here.

3.0.0

6 months ago

2.1.1

7 months ago

2.1.0

7 months ago

2.0.0

7 months ago

1.0.0

2 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago