@graphql-mesh/cache-redis
Version:
24 lines (23 loc) • 1.19 kB
text/typescript
import type { Cluster, Redis, RedisOptions, StandaloneConnectionOptions } from 'ioredis';
import type { Logger, YamlConfig } from '@graphql-mesh/types';
export type IamAuthConfig = NonNullable<YamlConfig.RedisIamAuthConfig>;
interface IamTokenConnectorOptions extends StandaloneConnectionOptions {
tokenConnector: {
redisRef: {
current: Redis | null;
};
getToken: () => Promise<string>;
};
}
export interface IamRedisOptions extends RedisOptions {
tokenConnector: IamTokenConnectorOptions['tokenConnector'];
}
export declare function generateIamToken(cfg: IamAuthConfig): Promise<string>;
export declare function buildIamRedisOptions(base: RedisOptions, cfg: IamAuthConfig, redisRef: {
current: Redis | null;
}): IamRedisOptions;
export declare function setupIamAuthRefreshForStandalone(redisRef: {
current: Redis | null;
}, cfg: IamAuthConfig, username: string | undefined, logger?: Logger): ReturnType<typeof setInterval>;
export declare function setupIamAuthForCluster(cluster: Cluster, redisOptions: RedisOptions, cfg: IamAuthConfig, username: string | undefined, logger?: Logger): Promise<ReturnType<typeof setInterval>>;
export {};