Skip to content
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

Merged
merged 4 commits into from
Apr 10, 2024

Conversation

adanWattad
Copy link
Contributor

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.

@adanWattad adanWattad requested a review from a team as a code owner March 13, 2024 15:15
@adanWattad adanWattad force-pushed the node/zrange branch 2 times, most recently from 47e00a5 to 71af8de Compare March 13, 2024 15:21
Copy link
Collaborator

@barshaul barshaul left a 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 🙏

*/
type Range<T> = {
/**
* The start score boundary.
Copy link
Collaborator

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

};
};

export type RangeByScore = Range<number> & { type: "byScore" };
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice solution

Copy link
Collaborator

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'

Copy link
Collaborator

@barshaul barshaul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

round

@adanWattad
Copy link
Contributor Author

@barshaul ready

@acarbonetto acarbonetto added the node Node.js wrapper label Mar 21, 2024
* 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 \});
Copy link
Collaborator

@barshaul barshaul Apr 2, 2024

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"
 * ```
 */

* @example
* await client.zadd("mySortedSet", \{ member1: 1.0, member2: 2.0, member3: 3.0 \});
*
* await client.zrange("mySortedSet", \{ start: 0, stop: -1 \});
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are the \ needed?

export type RangeByScore = SortedSetRange<number> & { type: "byScore" };
export type RangeByLex = SortedSetRange<string> & { type: "byLex" };

function getScoreLimitArg(
Copy link
Collaborator

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,
Copy link
Collaborator

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

Copy link
Collaborator

@barshaul barshaul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix& mrege

@shohamazon shohamazon merged commit 4e7acdc into valkey-io:main Apr 10, 2024
12 checks passed
cyip10 pushed a commit to Bit-Quill/valkey-glide that referenced this pull request Jun 24, 2024
---------

Co-authored-by: Adan <[email protected]>
Co-authored-by: Shoham Elias <[email protected]>
Co-authored-by: Shoham Elias <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
node Node.js wrapper
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants