@upstash/redis 1.19.1 → 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 CHANGED
@@ -83,8 +83,9 @@ console.log(data)
83
83
 
84
84
  ## Troubleshooting
85
85
 
86
- We have a [dedicated page](https://docs.upstash.com/troubleshooting) for common
87
- problems. If you can't find a solution, please
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";
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.1",
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",
@@ -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",
@@ -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
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "v1.19.1";
4
+ exports.VERSION = "v1.19.2";
@@ -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
  }
@@ -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.
@@ -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
+ };
@@ -1 +1 @@
1
- export declare const VERSION = "v1.19.1";
1
+ export declare const VERSION = "v1.19.2";