@devvit/shared-types 0.11.0-next-2024-09-09-3550880d3.0 → 0.11.0-next-2024-09-10-d9ea57fa3.0

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devvit/shared-types",
3
- "version": "0.11.0-next-2024-09-09-3550880d3.0",
3
+ "version": "0.11.0-next-2024-09-10-d9ea57fa3.0",
4
4
  "license": "BSD-3-Clause",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,14 +24,14 @@
24
24
  },
25
25
  "types": "./index.d.ts",
26
26
  "dependencies": {
27
- "@devvit/protos": "0.11.0-next-2024-09-09-3550880d3.0",
27
+ "@devvit/protos": "0.11.0-next-2024-09-10-d9ea57fa3.0",
28
28
  "jsonschema": "1.4.1",
29
29
  "uuid": "9.0.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@devvit/eslint-config": "0.11.0-next-2024-09-09-3550880d3.0",
33
- "@devvit/repo-tools": "0.11.0-next-2024-09-09-3550880d3.0",
34
- "@devvit/tsconfig": "0.11.0-next-2024-09-09-3550880d3.0",
32
+ "@devvit/eslint-config": "0.11.0-next-2024-09-10-d9ea57fa3.0",
33
+ "@devvit/repo-tools": "0.11.0-next-2024-09-10-d9ea57fa3.0",
34
+ "@devvit/tsconfig": "0.11.0-next-2024-09-10-d9ea57fa3.0",
35
35
  "@types/redis-mock": "0.17.1",
36
36
  "@types/uuid": "9.0.0",
37
37
  "eslint": "8.9.0",
@@ -45,5 +45,5 @@
45
45
  "directory": "dist"
46
46
  },
47
47
  "source": "./src/index.ts",
48
- "gitHead": "0f363d71d0131726f9d8aecf93c0c15d49ef6aa9"
48
+ "gitHead": "a24aa5b7530fb0670fa9cc2835a92cebff58a94b"
49
49
  }
@@ -1,51 +0,0 @@
1
- import type { ExpireRequest, HIncrByRequest, IncrByRequest, KeyValuesRequest, KeysRequest, Metadata, RedisAPI, SetRangeRequest, TransactionId, TransactionResponses, WatchRequest, ZIncrByRequest, ZRankRequest, ZScanRequest, ZScanResponse } from '@devvit/protos';
2
- import { RedisFieldValues, RedisValues } from '@devvit/protos';
3
- import { Empty } from '@devvit/protos/types/google/protobuf/empty.js';
4
- import { DoubleValue, Int64Value, StringValue } from '@devvit/protos/types/google/protobuf/wrappers.js';
5
- import type { RedisClientType, RedisDefaultModules } from 'redis';
6
- import type { HDelRequest, HGetRequest, HScanRequest, HScanResponse, HSetRequest, KeyRangeRequest, KeyRequest, KeysResponse, SetRequest, ZAddRequest, ZRangeRequest, ZRemRangeByLexRequest, ZRemRangeByRankRequest, ZRemRangeByScoreRequest, ZRemRequest, ZScoreRequest } from '@devvit/protos';
7
- import { ZMembers } from '@devvit/protos';
8
- type RedisClient = RedisClientType<RedisDefaultModules>;
9
- export declare class LocalRedis implements RedisAPI {
10
- #private;
11
- static create(url?: string): Promise<LocalRedis>;
12
- constructor(redis: RedisClient);
13
- Del(request: KeysRequest, metadata: Metadata | undefined): Promise<Int64Value>;
14
- Type(request: KeyRequest, metadata: Metadata | undefined): Promise<StringValue>;
15
- Multi(request: TransactionId, _metadata: Metadata | undefined): Promise<Empty>;
16
- Exec(request: TransactionId, _metadata: Metadata | undefined): Promise<TransactionResponses>;
17
- Discard(request: TransactionId, _metadata: Metadata | undefined): Promise<Empty>;
18
- Unwatch(request: TransactionId, _metadata: Metadata | undefined): Promise<Empty>;
19
- Watch(request: WatchRequest, metadata: Metadata | undefined): Promise<TransactionId>;
20
- GetRange(request: KeyRangeRequest, metadata: Metadata | undefined): Promise<StringValue>;
21
- IncrBy(request: IncrByRequest, metadata: Metadata | undefined): Promise<Int64Value>;
22
- SetRange(request: SetRangeRequest, metadata: Metadata | undefined): Promise<Int64Value>;
23
- Strlen(request: KeyRequest, metadata: Metadata | undefined): Promise<Int64Value>;
24
- MGet(request: KeysRequest, metadata: Metadata | undefined): Promise<RedisValues>;
25
- MSet(request: KeyValuesRequest, metadata: Metadata | undefined): Promise<Empty>;
26
- Get(request: KeyRequest, metadata: Metadata | undefined): Promise<StringValue>;
27
- Set(request: SetRequest, metadata: Metadata | undefined): Promise<StringValue>;
28
- Expire(request: ExpireRequest, metadata: Metadata | undefined): Promise<Empty>;
29
- ExpireTime(request: KeyRequest, metadata: Metadata | undefined): Promise<Int64Value>;
30
- ZCard(request: KeyRequest, metadata: Metadata | undefined): Promise<Int64Value>;
31
- ZAdd(request: ZAddRequest, metadata: Metadata | undefined): Promise<Int64Value>;
32
- ZRem(request: ZRemRequest, metadata: Metadata | undefined): Promise<Int64Value>;
33
- ZRange(request: ZRangeRequest, metadata: Metadata | undefined): Promise<ZMembers>;
34
- ZRemRangeByLex(request: ZRemRangeByLexRequest, metadata: Metadata | undefined): Promise<Int64Value>;
35
- ZRemRangeByRank(request: ZRemRangeByRankRequest, metadata: Metadata | undefined): Promise<Int64Value>;
36
- ZRemRangeByScore(request: ZRemRangeByScoreRequest, metadata: Metadata | undefined): Promise<Int64Value>;
37
- HGet(_request: HGetRequest, _metadata: Metadata | undefined): Promise<StringValue>;
38
- HSet(_request: HSetRequest, _metadata: Metadata | undefined): Promise<Int64Value>;
39
- HGetAll(_request: KeyRequest, _metadata: Metadata | undefined): Promise<RedisFieldValues>;
40
- HDel(_request: HDelRequest, _metadata: Metadata | undefined): Promise<Int64Value>;
41
- ZScore(_request: ZScoreRequest, _metadata: Metadata | undefined): Promise<DoubleValue>;
42
- ZRank(_request: ZRankRequest, _metadata: Metadata | undefined): Promise<Int64Value>;
43
- ZScan(_request: ZScanRequest, _metadata: Metadata | undefined): Promise<ZScanResponse>;
44
- ZIncrBy(_request: ZIncrByRequest, _metadata: Metadata | undefined): Promise<DoubleValue>;
45
- HKeys(_request: KeyRequest, _metadata?: Metadata): Promise<KeysResponse>;
46
- HScan(_request: HScanRequest, _metadata?: Metadata): Promise<HScanResponse>;
47
- HIncrBy(_request: HIncrByRequest, _metadata?: Metadata): Promise<Int64Value>;
48
- HLen(_request: KeyRequest, _metadata?: Metadata): Promise<Int64Value>;
49
- }
50
- export {};
51
- //# sourceMappingURL=LocalRedis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalRedis.d.ts","sourceRoot":"","sources":["../../src/test/LocalRedis.ts"],"names":[],"mappings":"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"}
@@ -1,445 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _LocalRedis_instances, _LocalRedis_redis, _LocalRedis_transactions, _LocalRedis_tx, _LocalRedis_newtx;
13
- import { RedisFieldValues, RedisValues } from '@devvit/protos';
14
- import { Empty } from '@devvit/protos/types/google/protobuf/empty.js';
15
- import { DoubleValue, Int64Value, StringValue, } from '@devvit/protos/types/google/protobuf/wrappers.js';
16
- import { createClient } from 'redis';
17
- import { ZMembers } from '@devvit/protos';
18
- import { Header } from '../Header.js';
19
- const MaxResults = 1000;
20
- const localRuntimeError = 'Please use devvit playtest to verify your app in a test subreddit.';
21
- function namespacedKey(metadata, key) {
22
- const installation = metadata?.[Header.Installation]?.values[0] || '';
23
- const app = metadata?.[Header.App]?.values[0] || '';
24
- return `${installation}:${app}:${key}`;
25
- }
26
- export class LocalRedis {
27
- static async create(url) {
28
- if (!url) {
29
- if (process.env.CI === 'true') {
30
- url = 'redis://redis:6379';
31
- }
32
- else {
33
- url = 'redis://localhost:6379';
34
- }
35
- }
36
- const redis = createClient({ url });
37
- console.log(`connecting to ${url} ...`);
38
- await redis.connect();
39
- await redis.flushAll();
40
- return new LocalRedis(redis);
41
- }
42
- constructor(redis) {
43
- _LocalRedis_instances.add(this);
44
- _LocalRedis_redis.set(this, void 0);
45
- _LocalRedis_transactions.set(this, {});
46
- __classPrivateFieldSet(this, _LocalRedis_redis, redis, "f");
47
- }
48
- async Del(request, metadata) {
49
- const keys = request.keys.map((key) => namespacedKey(metadata, key));
50
- if (request.transactionId) {
51
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).del(keys);
52
- return { value: 0 };
53
- }
54
- else {
55
- const count = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").del(keys);
56
- return { value: count };
57
- }
58
- }
59
- async Type(request, metadata) {
60
- const type = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").type(namespacedKey(metadata, request.key));
61
- return { value: type };
62
- }
63
- async Multi(request, _metadata) {
64
- const transaction = __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[request.id];
65
- if (!transaction) {
66
- throw new Error('Transaction not found');
67
- }
68
- if (transaction.multi) {
69
- throw new Error('Transaction already multi');
70
- }
71
- transaction.multi = transaction.isoClient.multi();
72
- return {};
73
- }
74
- async Exec(request, _metadata) {
75
- const transaction = __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[request.id];
76
- if (!transaction) {
77
- throw new Error('Transaction not found');
78
- }
79
- if (!transaction.multi) {
80
- await transaction.close();
81
- throw new Error('Transaction not multi');
82
- }
83
- const responses = await transaction.multi.exec();
84
- console.log(responses);
85
- delete __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[request.id];
86
- const values = (responses || []).map((value) => {
87
- if (typeof value === 'string') {
88
- return { str: value };
89
- }
90
- else if (value === null) {
91
- return { nil: {} };
92
- }
93
- else if (typeof value === 'number') {
94
- return { num: value };
95
- }
96
- else if (Array.isArray(value)) {
97
- const strings = value.map((v) => v + '');
98
- return { values: { values: strings } };
99
- }
100
- else {
101
- throw new Error('Unsupported value type');
102
- }
103
- });
104
- await transaction.close();
105
- return { response: values };
106
- }
107
- async Discard(request, _metadata) {
108
- const transaction = __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[request.id];
109
- if (!transaction) {
110
- throw new Error('Transaction not found');
111
- }
112
- if (!transaction.multi) {
113
- await transaction.close();
114
- throw new Error('Multi not found');
115
- }
116
- transaction.multi.discard();
117
- await transaction.close();
118
- delete __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[request.id];
119
- return Empty.fromPartial({});
120
- }
121
- async Unwatch(request, _metadata) {
122
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request).unwatch();
123
- return Empty.fromPartial({});
124
- }
125
- async Watch(request, metadata) {
126
- let id = request.transactionId;
127
- if (!id) {
128
- const tx = await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_newtx).call(this);
129
- id = { id: tx.id };
130
- }
131
- if (request.keys.length > 0) {
132
- const keys = request.keys.map((key) => namespacedKey(metadata, key));
133
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, id).watch(keys);
134
- }
135
- return id;
136
- }
137
- async GetRange(request, metadata) {
138
- const key = namespacedKey(metadata, request.key);
139
- if (request.transactionId) {
140
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).getRange(key, request.start, request.end);
141
- return StringValue.fromPartial({});
142
- }
143
- else {
144
- const value = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").getRange(key, request.start, request.end);
145
- return value ? { value: value } : StringValue.fromPartial({});
146
- }
147
- }
148
- async IncrBy(request, metadata) {
149
- const key = namespacedKey(metadata, request.key);
150
- if (request.transactionId) {
151
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).incrBy(key, request.value);
152
- return Int64Value.fromPartial({});
153
- }
154
- else {
155
- const value = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").incrBy(key, request.value);
156
- return { value };
157
- }
158
- }
159
- async SetRange(request, metadata) {
160
- const key = namespacedKey(metadata, request.key);
161
- if (request.transactionId) {
162
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).setRange(key, request.offset, request.value);
163
- return Int64Value.fromPartial({});
164
- }
165
- else {
166
- const length = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").setRange(key, request.offset, request.value);
167
- return { value: length };
168
- }
169
- }
170
- async Strlen(request, metadata) {
171
- const key = namespacedKey(metadata, request.key);
172
- if (request.transactionId) {
173
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).strLen(key);
174
- return Int64Value.fromPartial({});
175
- }
176
- else {
177
- const length = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").strLen(key);
178
- return { value: length };
179
- }
180
- }
181
- async MGet(request, metadata) {
182
- const keys = request.keys.map((key) => namespacedKey(metadata, key));
183
- if (request.transactionId) {
184
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).mGet(keys);
185
- return RedisValues.fromPartial({});
186
- }
187
- else {
188
- const values = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").mGet(keys);
189
- return RedisValues.fromPartial({ values: values.map((value) => (value ? value : '')) });
190
- }
191
- }
192
- async MSet(request, metadata) {
193
- const keyValues = request.kv.reduce((obj, item) => {
194
- obj[namespacedKey(metadata, item.key)] = item.value;
195
- return obj;
196
- }, {});
197
- if (request.transactionId) {
198
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).mSet(keyValues);
199
- }
200
- else {
201
- await __classPrivateFieldGet(this, _LocalRedis_redis, "f").mSet(keyValues);
202
- }
203
- return Empty.fromPartial({});
204
- }
205
- async Get(request, metadata) {
206
- const key = namespacedKey(metadata, request.key);
207
- if (request.transactionId) {
208
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).get(key);
209
- return StringValue.fromPartial({});
210
- }
211
- else {
212
- const value = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").get(key);
213
- return { value: value ?? '' };
214
- }
215
- }
216
- async Set(request, metadata) {
217
- const key = namespacedKey(metadata, request.key);
218
- if (request.transactionId) {
219
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).set(key, request.value);
220
- return StringValue.fromPartial({});
221
- }
222
- else {
223
- if (request.nx) {
224
- const value = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").setNX(key, request.value);
225
- return { value: value ? 'OK' : '' };
226
- }
227
- else {
228
- const value = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").set(key, request.value);
229
- return { value: value ?? '' };
230
- }
231
- }
232
- }
233
- async Expire(request, metadata) {
234
- const key = namespacedKey(metadata, request.key);
235
- if (request.transactionId) {
236
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).expire(key, request.seconds);
237
- }
238
- else {
239
- await __classPrivateFieldGet(this, _LocalRedis_redis, "f").expire(key, request.seconds);
240
- }
241
- return Empty.fromPartial({});
242
- }
243
- async ExpireTime(request, metadata) {
244
- const key = namespacedKey(metadata, request.key);
245
- if (request.transactionId) {
246
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).ttl(key);
247
- return Int64Value.fromPartial({});
248
- }
249
- else {
250
- const ttl = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").ttl(key);
251
- return { value: ttl };
252
- }
253
- }
254
- async ZCard(request, metadata) {
255
- const key = namespacedKey(metadata, request.key);
256
- if (request.transactionId) {
257
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).zCard(key);
258
- return Int64Value.fromPartial({});
259
- }
260
- else {
261
- const length = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zCard(key);
262
- return { value: length };
263
- }
264
- }
265
- async ZAdd(request, metadata) {
266
- const key = namespacedKey(metadata, request.key);
267
- const zaddArgs = request.members.flatMap((member) => ({
268
- score: member.score,
269
- value: member.member,
270
- }));
271
- if (request.transactionId) {
272
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.transactionId).zAdd(key, zaddArgs);
273
- return Int64Value.fromPartial({});
274
- }
275
- else {
276
- const changed = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zAdd(key, zaddArgs);
277
- return { value: changed };
278
- }
279
- }
280
- async ZRem(request, metadata) {
281
- const key = namespacedKey(metadata, request.key.key);
282
- if (request.key?.transactionId) {
283
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.key?.transactionId).zRem(key, request.members);
284
- return Int64Value.fromPartial({});
285
- }
286
- else {
287
- const count = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zRem(key, request.members);
288
- return { value: count };
289
- }
290
- }
291
- async ZRange(request, metadata) {
292
- const key = namespacedKey(metadata, request.key.key);
293
- const count = Math.min(request.count, MaxResults); // Define MaxResults constant somewhere in your code
294
- // eslint-disable-next-line
295
- let opts = {};
296
- if (!request.byLex && !request.byScore) {
297
- let stop = parseInt(request.stop);
298
- const start = parseInt(request.start);
299
- stop = Math.min(stop, start + MaxResults);
300
- if (stop < 0)
301
- stop = start + MaxResults;
302
- request.stop = stop.toString();
303
- }
304
- else {
305
- opts.LIMIT = {
306
- offset: request.offset,
307
- count: count,
308
- };
309
- }
310
- if (request.rev) {
311
- throw new Error('unsupported');
312
- }
313
- if (request.byLex)
314
- opts.BY = 'LEX';
315
- if (request.byScore)
316
- opts.BY = 'SCORE';
317
- if (request.rev)
318
- opts.REV = true;
319
- if (request.key?.transactionId) {
320
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.key?.transactionId).zRangeWithScores(key, request.start, request.stop, opts);
321
- return ZMembers.fromPartial({});
322
- }
323
- else {
324
- const rsp = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zRangeWithScores(key, request.start, request.stop, opts);
325
- return { members: rsp.map(({ score, value }) => ({ score, member: value })) };
326
- }
327
- }
328
- async ZRemRangeByLex(request, metadata) {
329
- const key = namespacedKey(metadata, request.key.key);
330
- if (request.key?.transactionId) {
331
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.key?.transactionId).zRemRangeByLex(key, request.min, request.max);
332
- return Int64Value.fromPartial({});
333
- }
334
- else {
335
- const count = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zRemRangeByLex(key, request.min, request.max);
336
- return { value: count };
337
- }
338
- }
339
- async ZRemRangeByRank(request, metadata) {
340
- const key = namespacedKey(metadata, request.key.key);
341
- if (request.key?.transactionId) {
342
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.key?.transactionId).zRemRangeByRank(key, request.start, request.stop);
343
- return Int64Value.fromPartial({});
344
- }
345
- else {
346
- const count = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zRemRangeByRank(key, request.start, request.stop);
347
- return { value: count };
348
- }
349
- }
350
- async ZRemRangeByScore(request, metadata) {
351
- const key = namespacedKey(metadata, request.key.key);
352
- if (request.key?.transactionId) {
353
- await __classPrivateFieldGet(this, _LocalRedis_instances, "m", _LocalRedis_tx).call(this, request.key?.transactionId).zRemRangeByScore(key, request.min.toString(), request.max.toString());
354
- return Int64Value.fromPartial({});
355
- }
356
- else {
357
- const count = await __classPrivateFieldGet(this, _LocalRedis_redis, "f").zRemRangeByScore(key, request.min.toString(), request.max.toString());
358
- return { value: count };
359
- }
360
- }
361
- async HGet(_request, _metadata) {
362
- console.error('HGET is not supported in Node Runtime. ' + localRuntimeError);
363
- return StringValue.fromPartial({});
364
- }
365
- async HSet(_request, _metadata) {
366
- console.error('HSET is not supported in Node Runtime. ' + localRuntimeError);
367
- return Int64Value.fromPartial({});
368
- }
369
- async HGetAll(_request, _metadata) {
370
- console.error('HGETAll is not supported in Node Runtime. ' + localRuntimeError);
371
- return RedisFieldValues.fromPartial({});
372
- }
373
- async HDel(_request, _metadata) {
374
- console.error('HDel is not supported in Node Runtime. ' + localRuntimeError);
375
- return Int64Value.fromPartial({});
376
- }
377
- async ZScore(_request, _metadata) {
378
- console.error('ZScore is not supported in Node Runtime. ' + localRuntimeError);
379
- return DoubleValue.fromPartial({});
380
- }
381
- async ZRank(_request, _metadata) {
382
- console.error('ZRank is not supported in Node Runtime. ' + localRuntimeError);
383
- return Int64Value.fromPartial({});
384
- }
385
- async ZScan(_request, _metadata) {
386
- console.error('ZScan is not supported in Node Runtime. ' + localRuntimeError);
387
- return { cursor: 0, members: [] };
388
- }
389
- async ZIncrBy(_request, _metadata) {
390
- console.error('ZIncrBy is not supported in Node Runtime. ' + localRuntimeError);
391
- return DoubleValue.fromPartial({});
392
- }
393
- async HKeys(_request, _metadata) {
394
- console.error('HKeys is not supported in Node Runtime. ' + localRuntimeError);
395
- return { keys: [] };
396
- }
397
- async HScan(_request, _metadata) {
398
- console.error('HScan is not supported in Node Runtime. ' + localRuntimeError);
399
- return { cursor: 0, fieldValues: [] };
400
- }
401
- async HIncrBy(_request, _metadata) {
402
- console.error('HIncrBy is not supported in Node Runtime. ' + localRuntimeError);
403
- return Int64Value.fromPartial({});
404
- }
405
- async HLen(_request, _metadata) {
406
- console.error('HLen is not supported in Node Runtime. ' + localRuntimeError);
407
- return Int64Value.fromPartial({});
408
- }
409
- }
410
- _LocalRedis_redis = new WeakMap(), _LocalRedis_transactions = new WeakMap(), _LocalRedis_instances = new WeakSet(), _LocalRedis_tx = function _LocalRedis_tx(txId) {
411
- const tx = __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[txId.id];
412
- if (!tx) {
413
- throw new Error('Transaction not found');
414
- }
415
- if (tx.multi) {
416
- return tx.multi;
417
- }
418
- return tx.isoClient;
419
- }, _LocalRedis_newtx = async function _LocalRedis_newtx() {
420
- const id = Math.random().toString(36).substring(7);
421
- let close;
422
- let ready;
423
- const closePromise = new Promise((resolve) => {
424
- close = resolve;
425
- });
426
- const readyPromise = new Promise((resolve) => {
427
- ready = resolve;
428
- });
429
- __classPrivateFieldGet(this, _LocalRedis_redis, "f")
430
- .executeIsolated(async (isoClient) => {
431
- __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[id] = {
432
- isoClient,
433
- close,
434
- multi: undefined,
435
- id,
436
- };
437
- ready();
438
- await closePromise;
439
- })
440
- .catch((err) => {
441
- console.error(err);
442
- });
443
- await readyPromise;
444
- return __classPrivateFieldGet(this, _LocalRedis_transactions, "f")[id];
445
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalRedis.test.d.ts","sourceRoot":"","sources":["../../src/test/LocalRedis.test.ts"],"names":[],"mappings":""}