@forge/cache 1.0.3-next.0 → 1.0.3-next.0-experimental-ab129b0-experimental-f18cf39
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/out/cache.d.ts +6 -1
- package/out/cache.d.ts.map +1 -1
- package/out/cache.js +20 -0
- package/out/interfaces/cache.d.ts +4 -0
- package/out/interfaces/cache.d.ts.map +1 -1
- package/out/kvs/conditions.d.ts +38 -0
- package/out/kvs/conditions.d.ts.map +1 -0
- package/out/kvs/conditions.js +98 -0
- package/out/kvs/entity-query.d.ts +26 -0
- package/out/kvs/entity-query.d.ts.map +1 -0
- package/out/kvs/entity-query.js +102 -0
- package/out/kvs/entity.d.ts +13 -0
- package/out/kvs/entity.d.ts.map +1 -0
- package/out/kvs/entity.js +35 -0
- package/out/kvs/errors.d.ts +21 -0
- package/out/kvs/errors.d.ts.map +1 -0
- package/out/kvs/errors.js +26 -0
- package/out/kvs/index.d.ts +10 -0
- package/out/kvs/index.d.ts.map +1 -0
- package/out/kvs/index.js +42 -0
- package/out/kvs/interfaces/entity-query.d.ts +41 -0
- package/out/kvs/interfaces/entity-query.d.ts.map +1 -0
- package/out/kvs/interfaces/entity-query.js +2 -0
- package/out/kvs/interfaces/kvs-api.d.ts +95 -0
- package/out/kvs/interfaces/kvs-api.d.ts.map +1 -0
- package/out/kvs/interfaces/kvs-api.js +2 -0
- package/out/kvs/interfaces/kvs.d.ts +21 -0
- package/out/kvs/interfaces/kvs.d.ts.map +1 -0
- package/out/kvs/interfaces/kvs.js +2 -0
- package/out/kvs/interfaces/query.d.ts +17 -0
- package/out/kvs/interfaces/query.d.ts.map +1 -0
- package/out/kvs/interfaces/query.js +2 -0
- package/out/kvs/interfaces/transaction.d.ts +29 -0
- package/out/kvs/interfaces/transaction.d.ts.map +1 -0
- package/out/kvs/interfaces/transaction.js +2 -0
- package/out/kvs/interfaces/types.d.ts +64 -0
- package/out/kvs/interfaces/types.d.ts.map +1 -0
- package/out/kvs/interfaces/types.js +8 -0
- package/out/kvs/kvs.d.ts +18 -0
- package/out/kvs/kvs.d.ts.map +1 -0
- package/out/kvs/kvs.js +40 -0
- package/out/kvs/query.d.ts +14 -0
- package/out/kvs/query.d.ts.map +1 -0
- package/out/kvs/query.js +38 -0
- package/out/kvs/storage-api.d.ts +22 -0
- package/out/kvs/storage-api.d.ts.map +1 -0
- package/out/kvs/storage-api.js +103 -0
- package/out/kvs/transaction-api.d.ts +14 -0
- package/out/kvs/transaction-api.d.ts.map +1 -0
- package/out/kvs/transaction-api.js +66 -0
- package/out/kvs/utils/error-handling.d.ts +7 -0
- package/out/kvs/utils/error-handling.d.ts.map +1 -0
- package/out/kvs/utils/error-handling.js +42 -0
- package/out/kvs/utils/transaction-request-builder.d.ts +6 -0
- package/out/kvs/utils/transaction-request-builder.d.ts.map +1 -0
- package/out/kvs/utils/transaction-request-builder.js +49 -0
- package/out/tunnel.d.ts +4 -0
- package/out/tunnel.d.ts.map +1 -1
- package/out/tunnel.js +12 -0
- package/package.json +2 -2
- package/out/__test__/cache.test.d.ts +0 -2
- package/out/__test__/cache.test.d.ts.map +0 -1
- package/out/__test__/cache.test.js +0 -358
- package/out/__test__/tunnel.test.d.ts +0 -2
- package/out/__test__/tunnel.test.d.ts.map +0 -1
- package/out/__test__/tunnel.test.js +0 -176
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const tunnel_1 = require("../tunnel");
|
|
5
|
-
const validator_1 = require("../utils/validator");
|
|
6
|
-
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
|
-
const tmp_1 = require("tmp");
|
|
8
|
-
describe('Forge Cache Tunnel', () => {
|
|
9
|
-
let cache;
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
const fileName = (0, tmp_1.tmpNameSync)({ postfix: '.json' });
|
|
12
|
-
cache = new tunnel_1.TunnelCache(fileName);
|
|
13
|
-
});
|
|
14
|
-
test('set method', async () => {
|
|
15
|
-
const response = await cache.set('key', 'value');
|
|
16
|
-
expect(response).toStrictEqual(undefined);
|
|
17
|
-
});
|
|
18
|
-
test('get method', async () => {
|
|
19
|
-
await cache.set('key', 'value');
|
|
20
|
-
const response = await cache.get('key');
|
|
21
|
-
expect(response).toStrictEqual('value');
|
|
22
|
-
});
|
|
23
|
-
test('get method throws error for list value', async () => {
|
|
24
|
-
await cache.leftPush('key', 'value1');
|
|
25
|
-
try {
|
|
26
|
-
await cache.get('key');
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
expect(error).toEqual(new validator_1.WrongTypeOperationError());
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
test('setIfNotExists method', async () => {
|
|
33
|
-
const response = await cache.setIfNotExists('key', 'value');
|
|
34
|
-
expect(response).toStrictEqual('OK');
|
|
35
|
-
const newResponse = await cache.setIfNotExists('key', 'new value');
|
|
36
|
-
expect(newResponse).toStrictEqual(null);
|
|
37
|
-
});
|
|
38
|
-
test('getAndSet method', async () => {
|
|
39
|
-
await cache.set('key', 'value');
|
|
40
|
-
const response = await cache.getAndSet('key', 'new value');
|
|
41
|
-
expect(response).toStrictEqual('value');
|
|
42
|
-
const newResponse = await cache.get('key');
|
|
43
|
-
expect(newResponse).toStrictEqual('new value');
|
|
44
|
-
});
|
|
45
|
-
test('delete method', async () => {
|
|
46
|
-
await cache.set('key', 'value');
|
|
47
|
-
const response = await cache.delete('key');
|
|
48
|
-
expect(response).toStrictEqual(1);
|
|
49
|
-
const newResponse = await cache.get('key');
|
|
50
|
-
expect(newResponse).toStrictEqual(null);
|
|
51
|
-
});
|
|
52
|
-
test('incrementAndGet method', async () => {
|
|
53
|
-
await cache.set('key', '5');
|
|
54
|
-
const response = await cache.incrementAndGet('key');
|
|
55
|
-
expect(response).toStrictEqual(6);
|
|
56
|
-
});
|
|
57
|
-
test('leftPush method', async () => {
|
|
58
|
-
await cache.leftPush('key', 'value1');
|
|
59
|
-
const response = await cache.leftPush('key', 'value2');
|
|
60
|
-
const result = ['value2', 'value1'].length;
|
|
61
|
-
expect(response).toStrictEqual(result);
|
|
62
|
-
});
|
|
63
|
-
test('rightPop method', async () => {
|
|
64
|
-
await cache.leftPush('key', 'value1');
|
|
65
|
-
await cache.leftPush('key', 'value2');
|
|
66
|
-
const response = await cache.rightPop('key');
|
|
67
|
-
expect(response).toStrictEqual('value1');
|
|
68
|
-
});
|
|
69
|
-
test('listLength method', async () => {
|
|
70
|
-
await cache.leftPush('key', 'value1');
|
|
71
|
-
await cache.leftPush('key', 'value2');
|
|
72
|
-
const response = await cache.listLength('key');
|
|
73
|
-
expect(response).toStrictEqual(2);
|
|
74
|
-
});
|
|
75
|
-
test('decrementAndGet method', async () => {
|
|
76
|
-
await cache.set('key', '5');
|
|
77
|
-
const response = await cache.decrementAndGet('key');
|
|
78
|
-
expect(response).toStrictEqual(4);
|
|
79
|
-
});
|
|
80
|
-
test('incrementAndGet method throws error when key holds a list value', async () => {
|
|
81
|
-
await cache.leftPush('key', 'value1');
|
|
82
|
-
try {
|
|
83
|
-
await cache.incrementAndGet('key');
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
expect(error).toEqual(new validator_1.WrongTypeOperationError());
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
test('leftPush method throws error when key holds a non-list value', async () => {
|
|
90
|
-
await cache.set('key', 'value');
|
|
91
|
-
try {
|
|
92
|
-
await cache.leftPush('key', 'newValue');
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
expect(error).toEqual(new validator_1.WrongTypeOperationError());
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
test('rightPop method throws error when key holds a non-list value', async () => {
|
|
99
|
-
await cache.set('key', 'value');
|
|
100
|
-
try {
|
|
101
|
-
await cache.rightPop('key');
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
expect(error).toEqual(new validator_1.WrongTypeOperationError());
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
test('listLength method throws error when key holds a non-list value', async () => {
|
|
108
|
-
await cache.set('key', 'value');
|
|
109
|
-
try {
|
|
110
|
-
await cache.listLength('key');
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
expect(error).toEqual(new validator_1.WrongTypeOperationError());
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
test('decrementAndGet method throws error when key holds a list value', async () => {
|
|
117
|
-
await cache.leftPush('key', 'value');
|
|
118
|
-
try {
|
|
119
|
-
await cache.decrementAndGet('key');
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
expect(error).toEqual(new validator_1.WrongTypeOperationError());
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
test('scan method returns empty array when no matching keys', async () => {
|
|
126
|
-
await cache.set('key1', 'value1');
|
|
127
|
-
await cache.set('key2', 'value2');
|
|
128
|
-
await cache.set('key3', 'value3');
|
|
129
|
-
await cache.set('key4', 'value4');
|
|
130
|
-
await cache.set('key5', 'value5');
|
|
131
|
-
const scanResult = await cache.scan('nonexistent*');
|
|
132
|
-
expect(scanResult.keys).toEqual([]);
|
|
133
|
-
});
|
|
134
|
-
test('scan method returns keys starting with "key" prefix', async () => {
|
|
135
|
-
await cache.set('key1', 'value1');
|
|
136
|
-
await cache.set('key2', 'value2');
|
|
137
|
-
await cache.set('otherKey1', 'value3');
|
|
138
|
-
await cache.set('otherKey2', 'value4');
|
|
139
|
-
await cache.set('key3', 'value5');
|
|
140
|
-
const scanResult = await cache.scan('key*');
|
|
141
|
-
expect(scanResult.keys).toEqual(['key1', 'key2', 'key3']);
|
|
142
|
-
});
|
|
143
|
-
test('scan method returns keys with "2" in the middle', async () => {
|
|
144
|
-
await cache.set('key1', 'value1');
|
|
145
|
-
await cache.set('key2', 'value2');
|
|
146
|
-
await cache.set('otherKey1', 'value3');
|
|
147
|
-
await cache.set('otherKey2', 'value4');
|
|
148
|
-
await cache.set('key3', 'value5');
|
|
149
|
-
const scanResult = await cache.scan('*2*');
|
|
150
|
-
expect(scanResult.keys).toEqual(['key2', 'otherKey2']);
|
|
151
|
-
});
|
|
152
|
-
test('scan method returns keys with "l?st*" redis pattern', async () => {
|
|
153
|
-
await cache.set('list1', 'value1');
|
|
154
|
-
await cache.set('list2', 'value2');
|
|
155
|
-
await cache.set('list3', 'value3');
|
|
156
|
-
await cache.set('list4', 'value4');
|
|
157
|
-
await cache.set('lest5', 'value5');
|
|
158
|
-
await cache.set('key1', 'value1');
|
|
159
|
-
const scanResult = await cache.scan('l?st*');
|
|
160
|
-
expect(scanResult.keys).toEqual(['list1', 'list2', 'list3', 'list4', 'lest5']);
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
describe('Forge Cache Tunnel with json file', () => {
|
|
164
|
-
it('should save and load data from file', async () => {
|
|
165
|
-
const fileName = (0, tmp_1.tmpNameSync)({ postfix: '.json' });
|
|
166
|
-
const cache1 = new tunnel_1.TunnelCache(fileName);
|
|
167
|
-
await cache1.set('key', 'value');
|
|
168
|
-
await cache1.set('key2', 'value2');
|
|
169
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
170
|
-
const savedFileContent = fs_1.default.readFileSync(fileName, `utf-8`);
|
|
171
|
-
expect(JSON.parse(savedFileContent)).toStrictEqual({ key: 'value', key2: 'value2' });
|
|
172
|
-
const cache2 = new tunnel_1.TunnelCache(fileName);
|
|
173
|
-
const res = await cache2.get('key');
|
|
174
|
-
expect(res).toBe('value');
|
|
175
|
-
});
|
|
176
|
-
});
|