-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Node: added zrange and zrangeWithScores commands. #1115
Conversation
47e00a5
to
71af8de
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why RangeByScoreOrLex isn't separated to two types as we do in python, RangeByScore and RangeByLex? we shouldn't accept ScoreLimit as strings when is lex is false, and we should except number when is lex is true. We also cannot use it later on with the specific zrange functions (e.g. ZRANGEBYLEX). Please follow python's design, and ping me when it's ready for review 🙏
node/src/Commands.ts
Outdated
*/ | ||
type Range<T> = { | ||
/** | ||
* The start score boundary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same - it should be used both for lex and score, so the doc might be confusing
node/src/Commands.ts
Outdated
}; | ||
}; | ||
|
||
export type RangeByScore = Range<number> & { type: "byScore" }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice solution
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think "Lex" and "Score" is sufficient for 'type'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
round
@barshaul ready |
node/src/BaseClient.ts
Outdated
* If `key` does not exist, it is treated as an empty sorted set, and the command returns an empty array. | ||
* | ||
* @example | ||
* await client.zadd("mySortedSet", \{ member1: 1.0, member2: 2.0, member3: 3.0 \}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please follow format for examples:
* @example
* ```typescript
* // Example usage of the echo method
* const echoedMessage = await client.echo("Glide-for-Redis");
* console.log(echoedMessage); // Output: "Glide-for-Redis"
* ```
*/
node/src/BaseClient.ts
Outdated
* @example | ||
* await client.zadd("mySortedSet", \{ member1: 1.0, member2: 2.0, member3: 3.0 \}); | ||
* | ||
* await client.zrange("mySortedSet", \{ start: 0, stop: -1 \}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are the \
needed?
node/src/Commands.ts
Outdated
export type RangeByScore = SortedSetRange<number> & { type: "byScore" }; | ||
export type RangeByLex = SortedSetRange<string> & { type: "byLex" }; | ||
|
||
function getScoreLimitArg( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getScoreBoundaryArg
|
||
function getScoreLimitArg( | ||
score: ScoreBoundary<number> | ScoreBoundary<string>, | ||
isLex: boolean = false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please add documentation, this function isn't trivial
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fix& mrege
--------- Co-authored-by: Adan <[email protected]> Co-authored-by: Shoham Elias <[email protected]> Co-authored-by: Shoham Elias <[email protected]>
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.