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: Convert classes to types #2005

Merged
merged 3 commits into from
Jul 25, 2024

Conversation

GumpacG
Copy link
Collaborator

@GumpacG GumpacG commented Jul 24, 2024

Description

Converted classes to types and added them to Command.ts to follow good TypeScript practice.

Converted:

  • BitOffsetOptions
  • ConditionalChange
  • GeospatialData
  • GeoAddOptions
  • FlushMode
  • LPosOptions

These changes affects the commands:

  • bitcount
  • zadd
  • geopos
  • flushall
  • flushdb
  • functionFlush

@GumpacG GumpacG requested a review from avifenesh July 24, 2024 00:08
@GumpacG GumpacG requested a review from a team as a code owner July 24, 2024 00:08
@GumpacG GumpacG force-pushed the node/integ_guiang_classes_to_types branch from 350bc30 to 73a709f Compare July 24, 2024 00:13

if (options) {
args = args.concat(options.toArgs());
if (options.rank !== undefined) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can't you just use if (options.rank) without checking explicitly for undefined? Same for the other usages here.

Copy link
Collaborator

Choose a reason for hiding this comment

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

+1

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We can do that with non-number types however, we can't do that with number types because it can be 0 which would be treated as false and behaves differently.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Be careful. The string value "" is also considered falsey - not relevant here, but could be relevant in certain circumstances.
https://www.freecodecamp.org/news/falsy-values-in-javascript/

node/src/Commands.ts Outdated Show resolved Hide resolved
node/src/Commands.ts Show resolved Hide resolved
node/tests/SharedTests.ts Outdated Show resolved Hide resolved
node/tests/SharedTests.ts Show resolved Hide resolved
node/tests/SharedTests.ts Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
node/src/Commands.ts Show resolved Hide resolved

if (options) {
args = args.concat(options.toArgs());
if (options.rank !== undefined) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Be careful. The string value "" is also considered falsey - not relevant here, but could be relevant in certain circumstances.
https://www.freecodecamp.org/news/falsy-values-in-javascript/

}

if (options.changed) {
args.push("CH");
Copy link
Collaborator

Choose a reason for hiding this comment

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

do we have a place to put string constants?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Not currently, I think if we want to do this, it should be a part of a different PR as we may want to convert other types with string constants to enums. Would potentially be big enough on it's own.

@Yury-Fridlyand Yury-Fridlyand added the node Node.js wrapper label Jul 24, 2024
@Yury-Fridlyand Yury-Fridlyand added the breaking breaking changes label Jul 24, 2024
@GumpacG GumpacG force-pushed the node/integ_guiang_classes_to_types branch 2 times, most recently from 0bc249b to 8b623af Compare July 25, 2024 23:01
@GumpacG GumpacG force-pushed the node/integ_guiang_classes_to_types branch from 8b623af to a881ab2 Compare July 25, 2024 23:26
Signed-off-by: Guian Gumpac <[email protected]>
@GumpacG GumpacG merged commit 596ebea into valkey-io:main Jul 25, 2024
8 checks passed
@GumpacG GumpacG deleted the node/integ_guiang_classes_to_types branch July 26, 2024 00:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking breaking changes node Node.js wrapper
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants