@types/cache-manager-ioredis
TypeScript icon, indicating that this package has built-in type declarations

2.0.6 • Public • Published

Installation

npm install --save @types/cache-manager-ioredis

Summary

This package contains type definitions for cache-manager-ioredis (https://github.com/dabroek/node-cache-manager-ioredis).

Details

Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cache-manager-ioredis.

index.d.ts

import { Cache, CacheOptions, CachingConfig, Store } from "cache-manager";
import * as IORedis from "ioredis";

declare const methods: CacheManagerIORedis.RedisStoreConstructor;
export = methods;
export {};

declare module "cache-manager" {
    function caching(IConfig: CacheManagerIORedis.RedisStoreClusterConfig): CacheManagerIORedis.ClusterCache;
    function caching(IConfig: CacheManagerIORedis.RedisStoreSingleNodeConfig): CacheManagerIORedis.SingleNodeCache;
    function caching(IConfig: StoreConfig & CacheOptions): Cache;
}

declare namespace CacheManagerIORedis {
    interface SingleNodeCache extends Cache {
        store: RedisSingleNodeStore;
    }

    interface ClusterCache extends Cache {
        store: RedisClusterStore;
    }

    interface RedisStoreConstructor {
        create:
            | ((...options: RedisStoreSingleNodeConfig[]) => RedisSingleNodeStore)
            | ((...options: RedisStoreClusterConfig[]) => RedisClusterStore);
    }

    type RedisStoreSingleNodeConfig = CachingConfig & IORedis.RedisOptions & {
        store: RedisStoreConstructor;
        max?: number | undefined;
    } & CacheOptions;

    type RedisStoreClusterConfig = CachingConfig & {
        store: RedisStoreConstructor;
        max?: number | undefined;
        clusterConfig: ClusterOptions;
    } & CacheOptions;

    interface RedisStore extends Store {
        getClient(): IORedis.Redis | IORedis.Cluster;
        name: "redis";
        isCacheableValue(value: any): boolean;
        del(...args: any[]): Promise<any>;
        reset(...args: any[]): Promise<any>;
        keys(...args: any[]): Promise<any>;
        ttl(...args: any[]): Promise<any>;
    }

    interface RedisSingleNodeStore extends RedisStore {
        getClient(): IORedis.Redis;
    }

    interface RedisClusterStore extends RedisStore {
        getClient(): IORedis.Cluster;
    }

    interface ClusterOptions {
        nodes: IORedis.ClusterNode[];
        options: IORedis.ClusterOptions;
    }
}

Additional Details

Credits

These definitions were written by Yi Hong.

Readme

Keywords

none

Package Sidebar

Install

npm i @types/cache-manager-ioredis

Weekly Downloads

39,090

Version

2.0.6

License

MIT

Unpacked Size

6.84 kB

Total Files

5

Last publish

Collaborators

  • types