generic-transformers.d.ts 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import { RedisCommandArgument, RedisCommandArguments } from '.';
  2. export declare function transformBooleanReply(reply: number): boolean;
  3. export declare function transformBooleanArrayReply(reply: Array<number>): Array<boolean>;
  4. export type BitValue = 0 | 1;
  5. export interface ScanOptions {
  6. MATCH?: string;
  7. COUNT?: number;
  8. }
  9. export declare function pushScanArguments(args: RedisCommandArguments, cursor: number, options?: ScanOptions): RedisCommandArguments;
  10. export declare function transformNumberInfinityReply(reply: RedisCommandArgument): number;
  11. export declare function transformNumberInfinityNullReply(reply: RedisCommandArgument | null): number | null;
  12. export declare function transformNumberInfinityNullArrayReply(reply: Array<RedisCommandArgument | null>): Array<number | null>;
  13. export declare function transformNumberInfinityArgument(num: number): string;
  14. export declare function transformStringNumberInfinityArgument(num: RedisCommandArgument | number): RedisCommandArgument;
  15. export declare function transformTuplesReply(reply: Array<RedisCommandArgument>): Record<string, RedisCommandArgument>;
  16. export interface StreamMessageReply {
  17. id: RedisCommandArgument;
  18. message: Record<string, RedisCommandArgument>;
  19. }
  20. export declare function transformStreamMessageReply([id, message]: Array<any>): StreamMessageReply;
  21. export declare function transformStreamMessageNullReply(reply: Array<any>): StreamMessageReply | null;
  22. export type StreamMessagesReply = Array<StreamMessageReply>;
  23. export declare function transformStreamMessagesReply(reply: Array<any>): StreamMessagesReply;
  24. export type StreamMessagesNullReply = Array<StreamMessageReply | null>;
  25. export declare function transformStreamMessagesNullReply(reply: Array<any>): StreamMessagesNullReply;
  26. export type StreamsMessagesReply = Array<{
  27. name: RedisCommandArgument;
  28. messages: StreamMessagesReply;
  29. }> | null;
  30. export declare function transformStreamsMessagesReply(reply: Array<any> | null): StreamsMessagesReply | null;
  31. export interface ZMember {
  32. score: number;
  33. value: RedisCommandArgument;
  34. }
  35. export declare function transformSortedSetMemberNullReply(reply: [RedisCommandArgument, RedisCommandArgument] | []): ZMember | null;
  36. export declare function transformSortedSetMemberReply(reply: [RedisCommandArgument, RedisCommandArgument]): ZMember;
  37. export declare function transformSortedSetWithScoresReply(reply: Array<RedisCommandArgument>): Array<ZMember>;
  38. export type SortedSetSide = 'MIN' | 'MAX';
  39. export interface ZMPopOptions {
  40. COUNT?: number;
  41. }
  42. export declare function transformZMPopArguments(args: RedisCommandArguments, keys: RedisCommandArgument | Array<RedisCommandArgument>, side: SortedSetSide, options?: ZMPopOptions): RedisCommandArguments;
  43. export type ListSide = 'LEFT' | 'RIGHT';
  44. export interface LMPopOptions {
  45. COUNT?: number;
  46. }
  47. export declare function transformLMPopArguments(args: RedisCommandArguments, keys: RedisCommandArgument | Array<RedisCommandArgument>, side: ListSide, options?: LMPopOptions): RedisCommandArguments;
  48. type GeoCountArgument = number | {
  49. value: number;
  50. ANY?: true;
  51. };
  52. export declare function pushGeoCountArgument(args: RedisCommandArguments, count: GeoCountArgument | undefined): RedisCommandArguments;
  53. export type GeoUnits = 'm' | 'km' | 'mi' | 'ft';
  54. export interface GeoCoordinates {
  55. longitude: string | number;
  56. latitude: string | number;
  57. }
  58. type GeoSearchFromMember = string;
  59. export type GeoSearchFrom = GeoSearchFromMember | GeoCoordinates;
  60. interface GeoSearchByRadius {
  61. radius: number;
  62. unit: GeoUnits;
  63. }
  64. interface GeoSearchByBox {
  65. width: number;
  66. height: number;
  67. unit: GeoUnits;
  68. }
  69. export type GeoSearchBy = GeoSearchByRadius | GeoSearchByBox;
  70. export interface GeoSearchOptions {
  71. SORT?: 'ASC' | 'DESC';
  72. COUNT?: GeoCountArgument;
  73. }
  74. export declare function pushGeoSearchArguments(args: RedisCommandArguments, key: RedisCommandArgument, from: GeoSearchFrom, by: GeoSearchBy, options?: GeoSearchOptions): RedisCommandArguments;
  75. export declare function pushGeoRadiusArguments(args: RedisCommandArguments, key: RedisCommandArgument, from: GeoSearchFrom, radius: number, unit: GeoUnits, options?: GeoSearchOptions): RedisCommandArguments;
  76. export interface GeoRadiusStoreOptions extends GeoSearchOptions {
  77. STOREDIST?: boolean;
  78. }
  79. export declare function pushGeoRadiusStoreArguments(args: RedisCommandArguments, key: RedisCommandArgument, from: GeoSearchFrom, radius: number, unit: GeoUnits, destination: RedisCommandArgument, options?: GeoRadiusStoreOptions): RedisCommandArguments;
  80. export declare enum GeoReplyWith {
  81. DISTANCE = "WITHDIST",
  82. HASH = "WITHHASH",
  83. COORDINATES = "WITHCOORD"
  84. }
  85. export interface GeoReplyWithMember {
  86. member: string;
  87. distance?: number;
  88. hash?: string;
  89. coordinates?: {
  90. longitude: string;
  91. latitude: string;
  92. };
  93. }
  94. export declare function transformGeoMembersWithReply(reply: Array<Array<any>>, replyWith: Array<GeoReplyWith>): Array<GeoReplyWithMember>;
  95. export declare function transformEXAT(EXAT: number | Date): string;
  96. export declare function transformPXAT(PXAT: number | Date): string;
  97. export interface EvalOptions {
  98. keys?: Array<string>;
  99. arguments?: Array<string>;
  100. }
  101. export declare function evalFirstKeyIndex(options?: EvalOptions): string | undefined;
  102. export declare function pushEvalArguments(args: Array<string>, options?: EvalOptions): Array<string>;
  103. export declare function pushVerdictArguments(args: RedisCommandArguments, value: RedisCommandArgument | Array<RedisCommandArgument>): RedisCommandArguments;
  104. export declare function pushVerdictNumberArguments(args: RedisCommandArguments, value: number | Array<number>): RedisCommandArguments;
  105. export declare function pushVerdictArgument(args: RedisCommandArguments, value: RedisCommandArgument | Array<RedisCommandArgument>): RedisCommandArguments;
  106. export declare function pushOptionalVerdictArgument(args: RedisCommandArguments, name: RedisCommandArgument, value: undefined | RedisCommandArgument | Array<RedisCommandArgument>): RedisCommandArguments;
  107. export declare enum CommandFlags {
  108. WRITE = "write",
  109. READONLY = "readonly",
  110. DENYOOM = "denyoom",
  111. ADMIN = "admin",
  112. PUBSUB = "pubsub",
  113. NOSCRIPT = "noscript",
  114. RANDOM = "random",
  115. SORT_FOR_SCRIPT = "sort_for_script",
  116. LOADING = "loading",
  117. STALE = "stale",
  118. SKIP_MONITOR = "skip_monitor",
  119. ASKING = "asking",
  120. FAST = "fast",
  121. MOVABLEKEYS = "movablekeys"
  122. }
  123. export declare enum CommandCategories {
  124. KEYSPACE = "@keyspace",
  125. READ = "@read",
  126. WRITE = "@write",
  127. SET = "@set",
  128. SORTEDSET = "@sortedset",
  129. LIST = "@list",
  130. HASH = "@hash",
  131. STRING = "@string",
  132. BITMAP = "@bitmap",
  133. HYPERLOGLOG = "@hyperloglog",
  134. GEO = "@geo",
  135. STREAM = "@stream",
  136. PUBSUB = "@pubsub",
  137. ADMIN = "@admin",
  138. FAST = "@fast",
  139. SLOW = "@slow",
  140. BLOCKING = "@blocking",
  141. DANGEROUS = "@dangerous",
  142. CONNECTION = "@connection",
  143. TRANSACTION = "@transaction",
  144. SCRIPTING = "@scripting"
  145. }
  146. export type CommandRawReply = [
  147. name: string,
  148. arity: number,
  149. flags: Array<CommandFlags>,
  150. firstKeyIndex: number,
  151. lastKeyIndex: number,
  152. step: number,
  153. categories: Array<CommandCategories>
  154. ];
  155. export type CommandReply = {
  156. name: string;
  157. arity: number;
  158. flags: Set<CommandFlags>;
  159. firstKeyIndex: number;
  160. lastKeyIndex: number;
  161. step: number;
  162. categories: Set<CommandCategories>;
  163. };
  164. export declare function transformCommandReply(this: void, [name, arity, flags, firstKeyIndex, lastKeyIndex, step, categories]: CommandRawReply): CommandReply;
  165. export declare enum RedisFunctionFlags {
  166. NO_WRITES = "no-writes",
  167. ALLOW_OOM = "allow-oom",
  168. ALLOW_STALE = "allow-stale",
  169. NO_CLUSTER = "no-cluster"
  170. }
  171. export type FunctionListRawItemReply = [
  172. 'library_name',
  173. string,
  174. 'engine',
  175. string,
  176. 'functions',
  177. Array<[
  178. 'name',
  179. string,
  180. 'description',
  181. string | null,
  182. 'flags',
  183. Array<RedisFunctionFlags>
  184. ]>
  185. ];
  186. export interface FunctionListItemReply {
  187. libraryName: string;
  188. engine: string;
  189. functions: Array<{
  190. name: string;
  191. description: string | null;
  192. flags: Array<RedisFunctionFlags>;
  193. }>;
  194. }
  195. export declare function transformFunctionListItemReply(reply: FunctionListRawItemReply): FunctionListItemReply;
  196. export interface SortOptions {
  197. BY?: string;
  198. LIMIT?: {
  199. offset: number;
  200. count: number;
  201. };
  202. GET?: string | Array<string>;
  203. DIRECTION?: 'ASC' | 'DESC';
  204. ALPHA?: true;
  205. }
  206. export declare function pushSortArguments(args: RedisCommandArguments, options?: SortOptions): RedisCommandArguments;
  207. export interface SlotRange {
  208. start: number;
  209. end: number;
  210. }
  211. export declare function pushSlotRangesArguments(args: RedisCommandArguments, ranges: SlotRange | Array<SlotRange>): RedisCommandArguments;
  212. export type RawRangeReply = [
  213. start: number,
  214. end: number
  215. ];
  216. export interface RangeReply {
  217. start: number;
  218. end: number;
  219. }
  220. export declare function transformRangeReply([start, end]: RawRangeReply): RangeReply;
  221. export {};