Skip to content

Commit

Permalink
fix JS client
Browse files Browse the repository at this point in the history
  • Loading branch information
PythonFZ committed Nov 6, 2024
1 parent 7fe99c6 commit e5f8ca4
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 28 deletions.
60 changes: 33 additions & 27 deletions js/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,17 @@ export class Client {

lLen(key) {
return new Promise((resolve, reject) => {
this._socket.emit("llen", { name: key }, (data) => {
this._socket.emit("llen", [[key], {}], (data) => {
// Check if there is an error or invalid response and reject if necessary
resolve(data);
resolve(data["data"]);
});
});
}

lIndex(key, index) {
return new Promise((resolve, reject) => {
this._socket.emit("lindex", { name: key, index: index }, (data) => {
resolve(data || null);
this._socket.emit("lindex", [[key, index],{}], (data) => {
resolve(data["data"] || null);
});
});
}
Expand All @@ -62,7 +62,7 @@ export class Client {
return new Promise((resolve, reject) => {
this._socket.emit(
"lset",
{ name: key, index: index, value: value },
[[key, index, value], {}],
(data) => {
resolve("OK"); // TODO
},
Expand All @@ -74,7 +74,7 @@ export class Client {
return new Promise((resolve, reject) => {
this._socket.emit(
"lrem",
{ name: key, count: count, value: value },
[[key, count, value], {}],
(data) => {
resolve("OK"); // TODO
},
Expand All @@ -84,32 +84,38 @@ export class Client {

lRange(key, start, end) {
return new Promise((resolve, reject) => {
this._socket.emit("lrange", { name: key, start: start, end: end -1 }, (data) => {
resolve(data);
this._socket.emit(
"lrange",
[[key, start, end - 1], {}],
(data) => {
resolve(data["data"]);
});
});
}

rPush(key, value) {
return new Promise((resolve, reject) => {
this._socket.emit("rpush", { name: key, value: value }, (data) => {
this._socket.emit(
"rpush",
[[key, value], {}],
(data) => {
resolve("OK"); // TODO
});
});
}

lPush(key, value) {
return new Promise((resolve, reject) => {
this._socket.emit("lpush", { name: key, value: value }, (data) => {
this._socket.emit("lpush", [[key, value], {}], (data) => {
resolve("OK"); // TODO
});
});
}

hGet(key, field) {
return new Promise((resolve, reject) => {
this._socket.emit("hget", { name: key, key: field }, (data) => {
resolve(data || null);
this._socket.emit("hget", [[key, field], {}], (data) => {
resolve(data["data"] || null);
});
});
}
Expand All @@ -118,7 +124,7 @@ export class Client {
return new Promise((resolve, reject) => {
this._socket.emit(
"hset",
{ name: key, mapping: { [field]: value } },
[[], { name: key, mapping: { [field]: value } }],
(data) => {
resolve("OK"); // TODO
},
Expand All @@ -128,32 +134,32 @@ export class Client {

hMSet(key, mapping) {
return new Promise((resolve, reject) => {
this._socket.emit("hset", { name: key, mapping: mapping }, (data) => {
this._socket.emit("hset", [[key], {mapping: mapping}], (data) => {
resolve("OK"); // TODO
});
});
}

hDel(key, field) {
return new Promise((resolve, reject) => {
this._socket.emit("hdel", { name: key, key: field }, (data) => {
this._socket.emit("hdel", [[key, field], {}], (data) => {
resolve("OK"); // TODO
});
});
}

del(key) {
return new Promise((resolve, reject) => {
this._socket.emit("delete", { name: key }, (data) => {
this._socket.emit("delete", [[key],{}], (data) => {
resolve("OK"); // TODO
});
});
}

hExists(key, field) {
return new Promise((resolve, reject) => {
this._socket.emit("hexists", { name: key, key: field }, (data) => {
if (data === 1) {
this._socket.emit("hexists", [[key, field], {}], (data) => {
if (data["data"] === 1) {
resolve(true);
} else {
resolve(false);
Expand All @@ -164,39 +170,39 @@ export class Client {

hLen(key) {
return new Promise((resolve, reject) => {
this._socket.emit("hlen", { name: key }, (data) => {
resolve(data);
this._socket.emit("hlen", [[key],{}], (data) => {
resolve(data["data"]);
});
});
}

hKeys(key) {
return new Promise((resolve, reject) => {
this._socket.emit("hkeys", { name: key }, (data) => {
resolve(data);
this._socket.emit("hkeys", [[key],{}], (data) => {
resolve(data["data"]);
});
});
}

hVals(key) {
return new Promise((resolve, reject) => {
this._socket.emit("hvals", { name: key }, (data) => {
resolve(data);
this._socket.emit("hvals", [[key], {}], (data) => {
resolve(data["data"]);
});
});
}

hGetAll(key) {
return new Promise((resolve, reject) => {
this._socket.emit("hgetall", { name: key }, (data) => {
resolve(data);
this._socket.emit("hgetall", [[key], {}], (data) => {
resolve(data["data"]);
});
});
}

flushAll() {
return new Promise((resolve, reject) => {
this._socket.emit("flushall", {}, (data) => {
this._socket.emit("flushall", [[], {}], (data) => {
resolve("OK"); // TODO
});
});
Expand Down
2 changes: 2 additions & 0 deletions js_tests/native.list.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,8 @@ test("native_list_slice", async () => {
await lst.push("item1");
await lst.push("item2");
await lst.push("item3");
// expect the full list
expect(await lst.slice(0, 3)).toEqual(["item1", "item2", "item3"]);

// Slice the list
let sliced = await lst.slice(0, 2);
Expand Down
5 changes: 4 additions & 1 deletion znsocket/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,10 @@ def handle_all_events(event, sid, data):
else:
return {"error": {"msg": f"Unknown event: {event}", "type": "UnknownEventError"}}

# Pipeline event for handling batch commands
@sio.event(namespace=namespace)
def refresh(sid, data: RefreshDataTypeDict) -> None:
sio.emit("refresh", data, namespace=namespace, skip_sid=sid)

@sio.event(namespace=namespace)
def pipeline(sid, data):
commands = data.pop("pipeline")
Expand Down

0 comments on commit e5f8ca4

Please sign in to comment.