@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 +6 -6
- package/test/LocalRedis.d.ts +0 -51
- package/test/LocalRedis.d.ts.map +0 -1
- package/test/LocalRedis.js +0 -445
- package/test/LocalRedis.test.d.ts.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@devvit/shared-types",
|
3
|
-
"version": "0.11.0-next-2024-09-
|
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-
|
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-
|
33
|
-
"@devvit/repo-tools": "0.11.0-next-2024-09-
|
34
|
-
"@devvit/tsconfig": "0.11.0-next-2024-09-
|
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": "
|
48
|
+
"gitHead": "a24aa5b7530fb0670fa9cc2835a92cebff58a94b"
|
49
49
|
}
|
package/test/LocalRedis.d.ts
DELETED
@@ -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
|
package/test/LocalRedis.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"LocalRedis.d.ts","sourceRoot":"","sources":["../../src/test/LocalRedis.ts"],"names":[],"mappings":"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"}
|
package/test/LocalRedis.js
DELETED
@@ -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":""}
|