Merge pull request 'feat: return undefined if not found' (#3) from Waradu/wirekvs-js:main into main

Reviewed-on: #3
This commit is contained in:
obvtiger 2025-05-10 17:36:47 +02:00
commit 59eb9f2fad
3 changed files with 19 additions and 8 deletions

View file

@ -1,6 +1,6 @@
{
"name": "wirekvs-js",
"version": "2.0.0",
"version": "3.0.0",
"description": "A Node.js client for the WireKVS database service",
"main": "src/index.js",
"types": "src/index.d.ts",

2
src/index.d.ts vendored
View file

@ -49,7 +49,7 @@ export class WireKVSDatabase extends EventEmitter {
disconnect(): void;
getAllEntries(): Promise<DatabaseEntry[]>;
get<T extends object>(key: string): Promise<T>;
get<T extends object>(key: string): Promise<T | undefined>;
set(key: string, value: any): Promise<void>;
update(key: string, value: any): Promise<void>;
delete(key: string): Promise<void>;

View file

@ -121,13 +121,24 @@ class WireKVSDatabase extends EventEmitter {
}
async get(key) {
const response = await axios.get(
`${API_BASE_URL}/database/${this.id}/${key}`,
{
headers: { Authorization: this.accessKey },
try {
const response = await axios.get(
`${API_BASE_URL}/database/${this.id}/${key}`,
{
headers: { Authorization: this.accessKey },
}
);
return response.data;
} catch (error) {
if (
axios.isAxiosError(error) &&
(error.response?.status === 404 ||
error.response?.data?.message === "Key not found")
) {
return;
}
);
return response.data;
throw error;
}
}
async json(key) {