You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-09 00:22:08 +03:00
* update workflows & README
* add .deepsource.toml
* fix client.quit, add error events on cluster, fix some "deepsource.io" warnings
* Release 4.0.0-rc.1
* add cluster.duplicate, add some tests
* fix #1650 - add support for Buffer in some commands, add GET_BUFFER command
* fix GET and GET_BUFFER return type
* update FAQ
* Update invalid code example in README.md (#1654)
* Update invalid code example in README.md
* Update README.md
Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
* fix #1652
* ref #1653 - better types
* better types
* fix 54124793ad
* Update GEOSEARCHSTORE.spec.ts
* fix #1660 - add support for client.HSET('key', 'field', 'value')
* upgrade dependencies, update README
* fix #1659 - add support for db-number in client options url
* fix README, remove unused import, downgrade typedoc & typedoc-plugin-markdown
* update client-configurations.md
* fix README
* add CLUSTER_SLOTS, add some tests
* fix "createClient with url" test with redis 5
* remove unused imports
* Release 4.0.0-rc.2
* add missing semicolon
* replace empty "transformReply" functions with typescript "declare"
* fix EVAL & EVALSHA, add some tests, npm update
* fix #1665 - add ZRANGEBYLEX, ZRANGEBYSCORE, ZRANGEBYSCORE_WITHSCORES
* new issue templates
* add all COMMAND commands
* run COMMAND & COMMAND INFO tests only on redis >6
* Create SECURITY.md
* fix #1671 - add support for all client configurations in cluster
* ref #1671 - add support for defaults
* remove some commands from cluster, npm update, clean code,
* lock benny version
* fix #1674 - remove `isolationPoolOptions` when creating isolated connection
* increase test coverage
* update .npmignore
* Release 4.0.0-rc.3
Co-authored-by: Richard Samuelsson <noobtoothfairy@gmail.com>
65 lines
1.2 KiB
TypeScript
65 lines
1.2 KiB
TypeScript
import { AuthOptions } from './AUTH';
|
|
|
|
interface HelloOptions {
|
|
protover: number;
|
|
auth?: Required<AuthOptions>;
|
|
clientName?: string;
|
|
}
|
|
|
|
export function transformArguments(options?: HelloOptions): Array<string> {
|
|
const args = ['HELLO'];
|
|
|
|
if (options) {
|
|
args.push(options.protover.toString());
|
|
|
|
if (options.auth) {
|
|
args.push('AUTH', options.auth.username, options.auth.password);
|
|
}
|
|
|
|
if (options.clientName) {
|
|
args.push('SETNAME', options.clientName);
|
|
}
|
|
}
|
|
|
|
return args;
|
|
}
|
|
|
|
type HelloRawReply = [
|
|
_: never,
|
|
server: string,
|
|
_: never,
|
|
version: string,
|
|
_: never,
|
|
proto: number,
|
|
_: never,
|
|
id: number,
|
|
_: never,
|
|
mode: string,
|
|
_: never,
|
|
role: string,
|
|
_: never,
|
|
modules: Array<string>
|
|
];
|
|
|
|
interface HelloTransformedReply {
|
|
server: string;
|
|
version: string;
|
|
proto: number;
|
|
id: number;
|
|
mode: string;
|
|
role: string;
|
|
modules: Array<string>;
|
|
}
|
|
|
|
export function transformReply(reply: HelloRawReply): HelloTransformedReply {
|
|
return {
|
|
server: reply[1],
|
|
version: reply[3],
|
|
proto: reply[5],
|
|
id: reply[7],
|
|
mode: reply[9],
|
|
role: reply[11],
|
|
modules: reply[13]
|
|
};
|
|
}
|