You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-07 13:22:56 +03:00
V5 bringing RESP3, Sentinel and TypeMapping to node-redis
RESP3 Support - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion. Sentinel TypeMapping Correctly types Multi commands Note: some API changes to be further documented in v4-to-v5.md
This commit is contained in:
@@ -1,29 +1,38 @@
|
||||
import { pushAggregatehOptions, AggregateOptions, transformReply as transformAggregateReply, AggregateRawReply } from './AGGREGATE';
|
||||
import { ProfileOptions, ProfileRawReply, ProfileReply, transformProfile } from '.';
|
||||
// import { pushAggregatehOptions, AggregateOptions, transformReply as transformAggregateReply, AggregateRawReply } from './AGGREGATE';
|
||||
// import { ProfileOptions, ProfileRawReply, ProfileReply, transformProfile } from '.';
|
||||
|
||||
export const IS_READ_ONLY = true;
|
||||
import { Command, ReplyUnion } from "@redis/client/dist/lib/RESP/types";
|
||||
import AGGREGATE, { AggregateRawReply, FtAggregateOptions, pushAggregateOptions } from "./AGGREGATE";
|
||||
import { ProfileOptions, ProfileRawReply, ProfileReply, transformProfile } from "./PROFILE_SEARCH";
|
||||
|
||||
export function transformArguments(
|
||||
index: string,
|
||||
query: string,
|
||||
options?: ProfileOptions & AggregateOptions
|
||||
): Array<string> {
|
||||
const args = ['FT.PROFILE', index, 'AGGREGATE'];
|
||||
|
||||
if (options?.LIMITED) {
|
||||
export default {
|
||||
FIRST_KEY_INDEX: undefined,
|
||||
IS_READ_ONLY: true,
|
||||
transformArguments(
|
||||
index: string,
|
||||
query: string,
|
||||
options?: ProfileOptions & FtAggregateOptions
|
||||
) {
|
||||
const args = ['FT.PROFILE', index, 'AGGREGATE'];
|
||||
|
||||
if (options?.LIMITED) {
|
||||
args.push('LIMITED');
|
||||
}
|
||||
}
|
||||
|
||||
args.push('QUERY', query);
|
||||
|
||||
args.push('QUERY', query);
|
||||
pushAggregatehOptions(args, options)
|
||||
return args;
|
||||
}
|
||||
return pushAggregateOptions(args, options)
|
||||
},
|
||||
transformReply: {
|
||||
2: (reply: ProfileAggeregateRawReply): ProfileReply => {
|
||||
return {
|
||||
results: AGGREGATE.transformReply[2](reply[0]),
|
||||
profile: transformProfile(reply[1])
|
||||
}
|
||||
},
|
||||
3: undefined as unknown as () => ReplyUnion
|
||||
},
|
||||
unstableResp3: true
|
||||
} as const satisfies Command;
|
||||
|
||||
type ProfileAggeregateRawReply = ProfileRawReply<AggregateRawReply>;
|
||||
|
||||
export function transformReply(reply: ProfileAggeregateRawReply): ProfileReply {
|
||||
return {
|
||||
results: transformAggregateReply(reply[0]),
|
||||
profile: transformProfile(reply[1])
|
||||
};
|
||||
}
|
||||
type ProfileAggeregateRawReply = ProfileRawReply<AggregateRawReply>;
|
Reference in New Issue
Block a user