@upstash/redis 1.19.0 → 1.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/esm/pkg/commands/smismember.js +1 -1
- package/esm/pkg/http.js +17 -0
- package/esm/pkg/redis.js +18 -0
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/script/pkg/commands/smismember.js +1 -1
- package/script/pkg/http.js +17 -0
- package/script/pkg/redis.js +18 -0
- package/script/version.js +1 -1
- package/types/pkg/commands/smismember.d.ts +1 -1
- package/types/pkg/http.d.ts +3 -17
- package/types/pkg/redis.d.ts +4 -0
- package/types/pkg/types.d.ts +17 -0
- package/types/version.d.ts +1 -1
package/README.md
CHANGED
|
@@ -83,8 +83,9 @@ console.log(data)
|
|
|
83
83
|
|
|
84
84
|
## Troubleshooting
|
|
85
85
|
|
|
86
|
-
We have a
|
|
87
|
-
|
|
86
|
+
We have a
|
|
87
|
+
[dedicated page](https://docs.upstash.com/redis/sdks/javascriptsdk/troubleshooting)
|
|
88
|
+
for common problems. If you can't find a solution, please
|
|
88
89
|
[open an issue](https://github.com/upstash/upstash-redis/issues/new).
|
|
89
90
|
|
|
90
91
|
## Docs
|
package/esm/pkg/http.js
CHANGED
|
@@ -61,6 +61,23 @@ export class HttpClient {
|
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
mergeTelemetry(telemetry) {
|
|
65
|
+
function merge(obj, key, value) {
|
|
66
|
+
if (!value) {
|
|
67
|
+
return obj;
|
|
68
|
+
}
|
|
69
|
+
if (obj[key]) {
|
|
70
|
+
obj[key] = [obj[key], value].join(",");
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
obj[key] = value;
|
|
74
|
+
}
|
|
75
|
+
return obj;
|
|
76
|
+
}
|
|
77
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Runtime", telemetry.runtime);
|
|
78
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Platform", telemetry.platform);
|
|
79
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Sdk", telemetry.sdk);
|
|
80
|
+
}
|
|
64
81
|
async request(req) {
|
|
65
82
|
const requestOptions = {
|
|
66
83
|
method: "POST",
|
package/esm/pkg/redis.js
CHANGED
|
@@ -43,6 +43,24 @@ export class Redis {
|
|
|
43
43
|
this.client.request = (req) => middleware(req, makeRequest);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
|
+
/**
|
|
47
|
+
* Technically this is not private, we can hide it from intellisense by doing this
|
|
48
|
+
*/
|
|
49
|
+
Object.defineProperty(this, "addTelemetry", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true,
|
|
52
|
+
writable: true,
|
|
53
|
+
value: (telemetry) => {
|
|
54
|
+
try {
|
|
55
|
+
// @ts-ignore - The `Requester` interface does not know about this method but it will be there
|
|
56
|
+
// as long as the user uses the standard HttpClient
|
|
57
|
+
this.client.mergeTelemetry(telemetry);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// ignore
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
46
64
|
/**
|
|
47
65
|
* Create a new pipeline that allows you to send requests in bulk.
|
|
48
66
|
*
|
package/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "v1.19.
|
|
1
|
+
export const VERSION = "v1.19.2";
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"main": "./script/platforms/nodejs.js",
|
|
4
4
|
"types": "./types/platforms/nodejs.d.ts",
|
|
5
5
|
"name": "@upstash/redis",
|
|
6
|
-
"version": "v1.19.
|
|
6
|
+
"version": "v1.19.2",
|
|
7
7
|
"description": "An HTTP/REST based Redis client built on top of Upstash REST API.",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -7,7 +7,7 @@ const command_js_1 = require("./command.js");
|
|
|
7
7
|
*/
|
|
8
8
|
class SMIsMemberCommand extends command_js_1.Command {
|
|
9
9
|
constructor(cmd, opts) {
|
|
10
|
-
super(["smismember", ...cmd], opts);
|
|
10
|
+
super(["smismember", cmd[0], ...cmd[1]], opts);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
exports.SMIsMemberCommand = SMIsMemberCommand;
|
package/script/pkg/http.js
CHANGED
|
@@ -64,6 +64,23 @@ class HttpClient {
|
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
+
mergeTelemetry(telemetry) {
|
|
68
|
+
function merge(obj, key, value) {
|
|
69
|
+
if (!value) {
|
|
70
|
+
return obj;
|
|
71
|
+
}
|
|
72
|
+
if (obj[key]) {
|
|
73
|
+
obj[key] = [obj[key], value].join(",");
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
obj[key] = value;
|
|
77
|
+
}
|
|
78
|
+
return obj;
|
|
79
|
+
}
|
|
80
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Runtime", telemetry.runtime);
|
|
81
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Platform", telemetry.platform);
|
|
82
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Sdk", telemetry.sdk);
|
|
83
|
+
}
|
|
67
84
|
async request(req) {
|
|
68
85
|
const requestOptions = {
|
|
69
86
|
method: "POST",
|
package/script/pkg/redis.js
CHANGED
|
@@ -46,6 +46,24 @@ class Redis {
|
|
|
46
46
|
this.client.request = (req) => middleware(req, makeRequest);
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
/**
|
|
50
|
+
* Technically this is not private, we can hide it from intellisense by doing this
|
|
51
|
+
*/
|
|
52
|
+
Object.defineProperty(this, "addTelemetry", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: (telemetry) => {
|
|
57
|
+
try {
|
|
58
|
+
// @ts-ignore - The `Requester` interface does not know about this method but it will be there
|
|
59
|
+
// as long as the user uses the standard HttpClient
|
|
60
|
+
this.client.mergeTelemetry(telemetry);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// ignore
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
49
67
|
/**
|
|
50
68
|
* Create a new pipeline that allows you to send requests in bulk.
|
|
51
69
|
*
|
package/script/version.js
CHANGED
|
@@ -3,5 +3,5 @@ import { Command, CommandOptions } from "./command.js";
|
|
|
3
3
|
* @see https://redis.io/commands/smismember
|
|
4
4
|
*/
|
|
5
5
|
export declare class SMIsMemberCommand<TMembers extends unknown[]> extends Command<("0" | "1")[], (0 | 1)[]> {
|
|
6
|
-
constructor(cmd: [key: string,
|
|
6
|
+
constructor(cmd: [key: string, members: TMembers], opts?: CommandOptions<("0" | "1")[], (0 | 1)[]>);
|
|
7
7
|
}
|
package/types/pkg/http.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Telemetry } from "./types.js";
|
|
1
2
|
export declare type UpstashRequest = {
|
|
2
3
|
path?: string[];
|
|
3
4
|
/**
|
|
@@ -67,23 +68,7 @@ export declare type HttpClientConfig = {
|
|
|
67
68
|
options?: Options;
|
|
68
69
|
retry?: RetryConfig;
|
|
69
70
|
agent?: any;
|
|
70
|
-
telemetry?:
|
|
71
|
-
/**
|
|
72
|
-
* Upstash-Telemetry-Sdk
|
|
73
|
-
* @example @upstash/redis@v1.1.1
|
|
74
|
-
*/
|
|
75
|
-
sdk?: string;
|
|
76
|
-
/**
|
|
77
|
-
* Upstash-Telemetry-Platform
|
|
78
|
-
* @example cloudflare
|
|
79
|
-
*/
|
|
80
|
-
platform?: string;
|
|
81
|
-
/**
|
|
82
|
-
* Upstash-Telemetry-Runtime
|
|
83
|
-
* @example node@v18
|
|
84
|
-
*/
|
|
85
|
-
runtime?: string;
|
|
86
|
-
};
|
|
71
|
+
telemetry?: Telemetry;
|
|
87
72
|
} & RequesterConfig;
|
|
88
73
|
export declare class HttpClient implements Requester {
|
|
89
74
|
baseUrl: string;
|
|
@@ -98,5 +83,6 @@ export declare class HttpClient implements Requester {
|
|
|
98
83
|
backoff: (retryCount: number) => number;
|
|
99
84
|
};
|
|
100
85
|
constructor(config: HttpClientConfig);
|
|
86
|
+
mergeTelemetry(telemetry: Telemetry): void;
|
|
101
87
|
request<TResult>(req: UpstashRequest): Promise<UpstashResponse<TResult>>;
|
|
102
88
|
}
|
package/types/pkg/redis.d.ts
CHANGED
|
@@ -33,6 +33,10 @@ export declare class Redis {
|
|
|
33
33
|
* Wrap a new middleware around the HTTP client.
|
|
34
34
|
*/
|
|
35
35
|
use: <TResult = unknown>(middleware: (r: UpstashRequest, next: <TResult_1 = unknown>(req: UpstashRequest) => Promise<UpstashResponse<TResult_1>>) => Promise<UpstashResponse<TResult>>) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Technically this is not private, we can hide it from intellisense by doing this
|
|
38
|
+
*/
|
|
39
|
+
private addTelemetry;
|
|
36
40
|
createScript(script: string): Script;
|
|
37
41
|
/**
|
|
38
42
|
* Create a new pipeline that allows you to send requests in bulk.
|
package/types/pkg/types.d.ts
CHANGED
|
@@ -1 +1,18 @@
|
|
|
1
1
|
export declare type CommandArgs<TCommand extends new (...args: any) => any> = ConstructorParameters<TCommand>[0];
|
|
2
|
+
export declare type Telemetry = {
|
|
3
|
+
/**
|
|
4
|
+
* Upstash-Telemetry-Sdk
|
|
5
|
+
* @example @upstash/redis@v1.1.1
|
|
6
|
+
*/
|
|
7
|
+
sdk?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Upstash-Telemetry-Platform
|
|
10
|
+
* @example cloudflare
|
|
11
|
+
*/
|
|
12
|
+
platform?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Upstash-Telemetry-Runtime
|
|
15
|
+
* @example node@v18
|
|
16
|
+
*/
|
|
17
|
+
runtime?: string;
|
|
18
|
+
};
|
package/types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "v1.19.
|
|
1
|
+
export declare const VERSION = "v1.19.2";
|