@forge/kvs 1.0.9-next.0 → 1.1.0-next.1
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 +2 -1
- package/out/__test__/index.test.js +75 -0
- package/out/entity.d.ts +2 -1
- package/out/entity.d.ts.map +1 -1
- package/out/entity.js +3 -2
- package/out/interfaces/kvs-api.d.ts +14 -3
- package/out/interfaces/kvs-api.d.ts.map +1 -1
- package/out/interfaces/kvs.d.ts +4 -3
- package/out/interfaces/kvs.d.ts.map +1 -1
- package/out/interfaces/types.d.ts +13 -0
- package/out/interfaces/types.d.ts.map +1 -1
- package/out/interfaces/types.js +6 -1
- package/out/kvs.d.ts +3 -2
- package/out/kvs.d.ts.map +1 -1
- package/out/kvs.js +4 -4
- package/out/storage-api.d.ts +5 -4
- package/out/storage-api.d.ts.map +1 -1
- package/out/storage-api.js +21 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,10 +2,11 @@ Library for Forge KVS.
|
|
|
2
2
|
|
|
3
3
|
Usage example:
|
|
4
4
|
```typescript
|
|
5
|
-
import kvs, {
|
|
5
|
+
import kvs, { FilterConditions, WhereConditions, Sort, Filter, MetadataField } from "@forge/kvs";
|
|
6
6
|
|
|
7
7
|
await kvs.set<string>('example-key', 'bar');
|
|
8
8
|
await kvs.get<string>('example-key');
|
|
9
|
+
await kvs.get<string>('example-key', { metadataFields: [MetadataField.CREATED_AT, MetadataField.UPDATED_AT]});
|
|
9
10
|
await kvs.delete('example-key');
|
|
10
11
|
await kvs.query().where('key', WhereConditions.beginsWith('example'))
|
|
11
12
|
|
|
@@ -30,6 +30,26 @@ describe('KVS', () => {
|
|
|
30
30
|
body: JSON.stringify({ key: 'foo' })
|
|
31
31
|
}));
|
|
32
32
|
});
|
|
33
|
+
it('should get with metadata fields correctly', async () => {
|
|
34
|
+
const response = new Response(JSON.stringify({ key: 'foo', value: 'bar', createdAt: 1718236800, updatedAt: 1718236800 }), {
|
|
35
|
+
status: 200,
|
|
36
|
+
headers: { 'x-trace-id': traceId }
|
|
37
|
+
});
|
|
38
|
+
const { sut, apiClient } = prepare(response);
|
|
39
|
+
const rs = await sut.get('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] });
|
|
40
|
+
expect(rs).toEqual({
|
|
41
|
+
key: 'foo',
|
|
42
|
+
value: 'bar',
|
|
43
|
+
createdAt: 1718236800,
|
|
44
|
+
updatedAt: 1718236800
|
|
45
|
+
});
|
|
46
|
+
expect(apiClient).toHaveBeenCalledWith('/api/v1/get', expect.objectContaining({
|
|
47
|
+
body: JSON.stringify({
|
|
48
|
+
key: 'foo',
|
|
49
|
+
options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] }
|
|
50
|
+
})
|
|
51
|
+
}));
|
|
52
|
+
});
|
|
33
53
|
it('should return undefined when get receives 404', async () => {
|
|
34
54
|
const response = new Response(JSON.stringify({ code: 'KEY_NOT_FOUND', message: 'Provided key does not exist' }), {
|
|
35
55
|
status: 404,
|
|
@@ -42,6 +62,18 @@ describe('KVS', () => {
|
|
|
42
62
|
body: JSON.stringify({ key: 'foo' })
|
|
43
63
|
}));
|
|
44
64
|
});
|
|
65
|
+
it('should handle unexpected metadata fields', async () => {
|
|
66
|
+
const response = new Response(JSON.stringify({
|
|
67
|
+
code: 'BAD_REQUEST',
|
|
68
|
+
message: 'Provided request body is invalid'
|
|
69
|
+
}), {
|
|
70
|
+
status: 400,
|
|
71
|
+
statusText: 'Bad Request',
|
|
72
|
+
headers: { 'x-trace-id': traceId }
|
|
73
|
+
});
|
|
74
|
+
const { sut } = prepare(response);
|
|
75
|
+
await expect(sut.get('foo', { metadataFields: ['INVALID_METADATA_FIELD'] })).rejects.toMatchError(new errors_1.ForgeKvsAPIError({ status: 400, statusText: 'Bad Request', traceId }, { code: 'BAD_REQUEST', message: 'Provided request body is invalid' }));
|
|
76
|
+
});
|
|
45
77
|
it('should handle unexpected response', async () => {
|
|
46
78
|
const response = new Response(JSON.stringify({ code: 'INTERNAL_SERVER_ERROR', message: 'An internal server error has occurred' }), {
|
|
47
79
|
status: 500,
|
|
@@ -71,6 +103,26 @@ describe('KVS', () => {
|
|
|
71
103
|
body: JSON.stringify({ key: 'foo' })
|
|
72
104
|
}));
|
|
73
105
|
});
|
|
106
|
+
it('should getSecret with metadata fields correctly', async () => {
|
|
107
|
+
const response = new Response(JSON.stringify({ key: 'foo', value: 'bar', createdAt: 1718236800, updatedAt: 1718236800 }), {
|
|
108
|
+
status: 200,
|
|
109
|
+
headers: { 'x-trace-id': traceId }
|
|
110
|
+
});
|
|
111
|
+
const { sut, apiClient } = prepare(response);
|
|
112
|
+
const rs = await sut.getSecret('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] });
|
|
113
|
+
expect(rs).toEqual({
|
|
114
|
+
key: 'foo',
|
|
115
|
+
value: 'bar',
|
|
116
|
+
createdAt: 1718236800,
|
|
117
|
+
updatedAt: 1718236800
|
|
118
|
+
});
|
|
119
|
+
expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/get', expect.objectContaining({
|
|
120
|
+
body: JSON.stringify({
|
|
121
|
+
key: 'foo',
|
|
122
|
+
options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] }
|
|
123
|
+
})
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
74
126
|
it('should return undefined when getSecret receives 404', async () => {
|
|
75
127
|
const response = new Response(JSON.stringify({ code: 'KEY_NOT_FOUND', message: 'Provided key does not exist' }), {
|
|
76
128
|
status: 404,
|
|
@@ -95,6 +147,29 @@ describe('KVS', () => {
|
|
|
95
147
|
body: JSON.stringify({ entityName: 'employees', key: 'foo' })
|
|
96
148
|
}));
|
|
97
149
|
});
|
|
150
|
+
it('should getEntity with metadata fields correctly', async () => {
|
|
151
|
+
const response = new Response(JSON.stringify({ key: 'foo', value: { name: 'Jane Doe' }, createdAt: 1718236800, updatedAt: 1718236800 }), {
|
|
152
|
+
status: 200,
|
|
153
|
+
headers: { 'x-trace-id': traceId }
|
|
154
|
+
});
|
|
155
|
+
const { sut, apiClient } = prepare(response);
|
|
156
|
+
const rs = await sut
|
|
157
|
+
.entity('employees')
|
|
158
|
+
.get('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] });
|
|
159
|
+
expect(rs).toEqual({
|
|
160
|
+
key: 'foo',
|
|
161
|
+
value: { name: 'Jane Doe' },
|
|
162
|
+
createdAt: 1718236800,
|
|
163
|
+
updatedAt: 1718236800
|
|
164
|
+
});
|
|
165
|
+
expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/get', expect.objectContaining({
|
|
166
|
+
body: JSON.stringify({
|
|
167
|
+
entityName: 'employees',
|
|
168
|
+
key: 'foo',
|
|
169
|
+
options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] }
|
|
170
|
+
})
|
|
171
|
+
}));
|
|
172
|
+
});
|
|
98
173
|
it('should return undefined when getEntity receives 404', async () => {
|
|
99
174
|
const response = new Response(JSON.stringify({ code: 'KEY_NOT_FOUND', message: 'Provided key does not exist' }), {
|
|
100
175
|
status: 404,
|
package/out/entity.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { IndexQueryBuilder } from './interfaces/entity-query';
|
|
2
2
|
import { KvsEntity } from './interfaces/kvs';
|
|
3
|
+
import { GetOptions, GetResult } from './interfaces/types';
|
|
3
4
|
import { StorageApi } from './storage-api';
|
|
4
5
|
export declare class EntityImpl<T> implements KvsEntity<T> {
|
|
5
6
|
private readonly entityName;
|
|
6
7
|
private readonly storageApi;
|
|
7
8
|
constructor(entityName: string, storageApi: StorageApi);
|
|
8
|
-
get(key: string): Promise<T | undefined>;
|
|
9
|
+
get(key: string, options?: GetOptions): Promise<T | GetResult<T> | undefined>;
|
|
9
10
|
set(key: string, value: T): Promise<void>;
|
|
10
11
|
delete(key: string): Promise<void>;
|
|
11
12
|
query(): IndexQueryBuilder<T>;
|
package/out/entity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU;IAGzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU;IAGzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAQ7E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC;CAG9B"}
|
package/out/entity.js
CHANGED
|
@@ -9,10 +9,11 @@ class EntityImpl {
|
|
|
9
9
|
this.entityName = entityName;
|
|
10
10
|
this.storageApi = storageApi;
|
|
11
11
|
}
|
|
12
|
-
get(key) {
|
|
12
|
+
get(key, options) {
|
|
13
13
|
return this.storageApi.getEntity({
|
|
14
14
|
entityName: this.entityName,
|
|
15
|
-
key
|
|
15
|
+
key,
|
|
16
|
+
options
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
set(key, value) {
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import { GetOptions } from './types';
|
|
1
2
|
declare type KeySchema = {
|
|
2
3
|
key: string;
|
|
3
4
|
};
|
|
4
5
|
declare type KeyValueSchema<T> = KeySchema & {
|
|
5
6
|
value: T;
|
|
7
|
+
createdAt?: number;
|
|
8
|
+
updatedAt?: number;
|
|
9
|
+
};
|
|
10
|
+
export declare type GetRequest = KeySchema & {
|
|
11
|
+
options?: GetOptions;
|
|
6
12
|
};
|
|
7
|
-
export declare type GetRequest = KeySchema;
|
|
8
13
|
export declare type GetResponse<T> = KeyValueSchema<T>;
|
|
9
14
|
export declare type SetRequest<T> = KeyValueSchema<T>;
|
|
10
15
|
export declare type SetResponse = void;
|
|
@@ -24,7 +29,9 @@ export declare type QueryResponse<T> = {
|
|
|
24
29
|
data: Array<KeyValueSchema<T>>;
|
|
25
30
|
cursor?: string;
|
|
26
31
|
};
|
|
27
|
-
export declare type SecretGetRequest = KeySchema
|
|
32
|
+
export declare type SecretGetRequest = KeySchema & {
|
|
33
|
+
options?: GetOptions;
|
|
34
|
+
};
|
|
28
35
|
export declare type SecretGetResponse<T> = KeyValueSchema<T>;
|
|
29
36
|
export declare type SecretSetRequest<T> = KeyValueSchema<T>;
|
|
30
37
|
export declare type SecretSetResponse = void;
|
|
@@ -36,8 +43,12 @@ declare type EntityKeySchema = {
|
|
|
36
43
|
};
|
|
37
44
|
declare type EntityKeyValueSchema<T> = EntityKeySchema & {
|
|
38
45
|
value: T;
|
|
46
|
+
createdAt?: number;
|
|
47
|
+
updatedAt?: number;
|
|
48
|
+
};
|
|
49
|
+
export declare type EntityGetRequest = EntityKeySchema & {
|
|
50
|
+
options?: GetOptions;
|
|
39
51
|
};
|
|
40
|
-
export declare type EntityGetRequest = EntityKeySchema;
|
|
41
52
|
export declare type EntityGetResponse<T> = EntityKeyValueSchema<T>;
|
|
42
53
|
export declare type EntitySetRequest<T> = EntityKeyValueSchema<T>;
|
|
43
54
|
export declare type EntitySetResponse = void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kvs-api.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs-api.ts"],"names":[],"mappings":"AAAA,aAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,cAAc,CAAC,CAAC,IAAI,SAAS,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"kvs-api.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,aAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,cAAc,CAAC,CAAC,IAAI,SAAS,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,UAAU,GAAG,SAAS,GAAG;IACnC,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AACF,oBAAY,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAE/C,oBAAY,UAAU,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAC9C,oBAAY,WAAW,GAAG,IAAI,CAAC;AAE/B,oBAAY,aAAa,GAAG,SAAS,CAAC;AACtC,oBAAY,cAAc,GAAG,IAAI,CAAC;AAElC,aAAK,UAAU,GAAG;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACxB,CAAC;AACF,oBAAY,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAC3B,CAAC;AACF,oBAAY,aAAa,CAAC,CAAC,IAAI;IAC7B,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,oBAAY,gBAAgB,GAAG,SAAS,GAAG;IACzC,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AACF,oBAAY,iBAAiB,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAErD,oBAAY,gBAAgB,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AACpD,oBAAY,iBAAiB,GAAG,IAAI,CAAC;AAErC,oBAAY,mBAAmB,GAAG,SAAS,CAAC;AAC5C,oBAAY,oBAAoB,GAAG,IAAI,CAAC;AAGxC,aAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,oBAAoB,CAAC,CAAC,IAAI,eAAe,GAAG;IAC/C,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,gBAAgB,GAAG,eAAe,GAAG;IAC/C,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AACF,oBAAY,iBAAiB,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAE3D,oBAAY,gBAAgB,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC1D,oBAAY,iBAAiB,GAAG,IAAI,CAAC;AAErC,oBAAY,mBAAmB,GAAG,eAAe,CAAC;AAClD,oBAAY,oBAAoB,GAAG,IAAI,CAAC;AAExC,oBAAY,iBAAiB,GAAG;IAC9B,SAAS,EACL,aAAa,GACb,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,cAAc,GACd,uBAAuB,GACvB,WAAW,GACX,oBAAoB,GACpB,cAAc,GACd,cAAc,GACd,YAAY,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACxB,CAAC;AACF,oBAAY,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;CAChC,CAAC;AACF,oBAAY,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,SAAS,EACL,aAAa,GACb,SAAS,GACT,UAAU,GACV,cAAc,GACd,uBAAuB,GACvB,WAAW,GACX,oBAAoB,CAAC;QACzB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,oBAAY,mBAAmB,CAAC,CAAC,IAAI;IACnC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,oBAAY,oBAAoB,GAAG,kBAAkB,CAAC;AAEtD,oBAAY,UAAU,CAAC,CAAC,IAAI;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAGF,oBAAY,kBAAkB,CAAC,CAAC,IAAI;IAClC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC"}
|
package/out/interfaces/kvs.d.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { IndexQueryBuilder } from './entity-query';
|
|
2
2
|
import { QueryBuilder } from './query';
|
|
3
3
|
import { TransactionBuilder } from './transaction';
|
|
4
|
+
import { GetOptions, GetResult } from './types';
|
|
4
5
|
export interface Kvs {
|
|
5
|
-
get<T>(key: string): Promise<T | undefined>;
|
|
6
|
+
get<T>(key: string, options?: GetOptions): Promise<T | GetResult<T> | undefined>;
|
|
6
7
|
set<T>(key: string, value: T): Promise<void>;
|
|
7
8
|
delete(key: string): Promise<void>;
|
|
8
9
|
query(): QueryBuilder;
|
|
9
|
-
getSecret<T>(key: string): Promise<T | undefined>;
|
|
10
|
+
getSecret<T>(key: string, options?: GetOptions): Promise<T | GetResult<T> | undefined>;
|
|
10
11
|
setSecret<T>(key: string, value: T): Promise<void>;
|
|
11
12
|
deleteSecret(key: string): Promise<void>;
|
|
12
13
|
entity<T>(entityName: string): KvsEntity<T>;
|
|
13
14
|
transact(): TransactionBuilder;
|
|
14
15
|
}
|
|
15
16
|
export interface KvsEntity<T> {
|
|
16
|
-
get(key: string): Promise<T | undefined>;
|
|
17
|
+
get(key: string, options?: GetOptions): Promise<T | GetResult<T> | undefined>;
|
|
17
18
|
set(key: string, value: T): Promise<void>;
|
|
18
19
|
delete(key: string): Promise<void>;
|
|
19
20
|
query(): IndexQueryBuilder<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,GAAG;IAClB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,YAAY,CAAC;IAEtB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACvF,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5C,QAAQ,IAAI,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC9E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC/B"}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
export declare enum MetadataField {
|
|
2
|
+
CREATED_AT = "CREATED_AT",
|
|
3
|
+
UPDATED_AT = "UPDATED_AT"
|
|
4
|
+
}
|
|
5
|
+
export interface GetOptions {
|
|
6
|
+
metadataFields?: MetadataField[];
|
|
7
|
+
}
|
|
8
|
+
export interface GetResult<T> {
|
|
9
|
+
key: string;
|
|
10
|
+
value: T;
|
|
11
|
+
createdAt?: number;
|
|
12
|
+
updatedAt?: number;
|
|
13
|
+
}
|
|
1
14
|
export interface Result<T> {
|
|
2
15
|
key: string;
|
|
3
16
|
value: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interfaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,oBAAY,IAAI;IACd,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,oBAAY,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAChE,oBAAY,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,CAAC,uBAAuB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,uBAAuB,CAAC,CAAC;CACnC;AAED,oBAAY,cAAc,GAAG,IAAI,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interfaces/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,UAAU,eAAe;IACzB,UAAU,eAAe;CAC1B;AACD,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AACD,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,oBAAY,IAAI;IACd,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,oBAAY,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAChE,oBAAY,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,CAAC,uBAAuB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,uBAAuB,CAAC,CAAC;CACnC;AAED,oBAAY,cAAc,GAAG,IAAI,GAAG,KAAK,CAAC"}
|
package/out/interfaces/types.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Sort = void 0;
|
|
3
|
+
exports.Sort = exports.MetadataField = void 0;
|
|
4
|
+
var MetadataField;
|
|
5
|
+
(function (MetadataField) {
|
|
6
|
+
MetadataField["CREATED_AT"] = "CREATED_AT";
|
|
7
|
+
MetadataField["UPDATED_AT"] = "UPDATED_AT";
|
|
8
|
+
})(MetadataField = exports.MetadataField || (exports.MetadataField = {}));
|
|
4
9
|
var Sort;
|
|
5
10
|
(function (Sort) {
|
|
6
11
|
Sort["ASC"] = "ASC";
|
package/out/kvs.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { KvsEntity, Kvs } from './interfaces/kvs';
|
|
2
2
|
import { QueryBuilder } from './interfaces/query';
|
|
3
3
|
import { TransactionBuilder } from './interfaces/transaction';
|
|
4
|
+
import { GetOptions, GetResult } from './interfaces/types';
|
|
4
5
|
import { StorageApi } from './storage-api';
|
|
5
6
|
export declare class KvsImpl implements Kvs {
|
|
6
7
|
private readonly storageApi;
|
|
7
8
|
constructor(storageApi: StorageApi);
|
|
8
|
-
get<T>(key: string): Promise<T | undefined>;
|
|
9
|
+
get<T>(key: string, options?: GetOptions): Promise<T | GetResult<T> | undefined>;
|
|
9
10
|
set<T>(key: string, value: T): Promise<void>;
|
|
10
11
|
delete(key: string): Promise<void>;
|
|
11
12
|
query(): QueryBuilder;
|
|
12
|
-
getSecret<T>(key: string): Promise<T | undefined>;
|
|
13
|
+
getSecret<T>(key: string, options?: GetOptions): Promise<T | GetResult<T> | undefined>;
|
|
13
14
|
setSecret<T>(key: string, value: T): Promise<void>;
|
|
14
15
|
deleteSecret(key: string): Promise<void>;
|
|
15
16
|
entity<T>(entityName: string): KvsEntity<T>;
|
package/out/kvs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../src/kvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../src/kvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,OAAQ,YAAW,GAAG;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEnD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAIhF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,YAAY;IAIrB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAItF,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAI3C,QAAQ,IAAI,kBAAkB;CAG/B"}
|
package/out/kvs.js
CHANGED
|
@@ -9,8 +9,8 @@ class KvsImpl {
|
|
|
9
9
|
constructor(storageApi) {
|
|
10
10
|
this.storageApi = storageApi;
|
|
11
11
|
}
|
|
12
|
-
get(key) {
|
|
13
|
-
return this.storageApi.get({ key });
|
|
12
|
+
get(key, options) {
|
|
13
|
+
return this.storageApi.get({ key, options });
|
|
14
14
|
}
|
|
15
15
|
set(key, value) {
|
|
16
16
|
return this.storageApi.set({ key, value });
|
|
@@ -21,8 +21,8 @@ class KvsImpl {
|
|
|
21
21
|
query() {
|
|
22
22
|
return new query_1.KvsQueryBuilder(this.storageApi);
|
|
23
23
|
}
|
|
24
|
-
getSecret(key) {
|
|
25
|
-
return this.storageApi.getSecret({ key });
|
|
24
|
+
getSecret(key, options) {
|
|
25
|
+
return this.storageApi.getSecret({ key, options });
|
|
26
26
|
}
|
|
27
27
|
setSecret(key, value) {
|
|
28
28
|
return this.storageApi.setSecret({ key, value });
|
package/out/storage-api.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { FetchMethod } from '@forge/api';
|
|
2
|
-
import { ListResult } from './interfaces/types';
|
|
2
|
+
import { GetResult, ListResult } from './interfaces/types';
|
|
3
3
|
import { DeleteRequest, EntityDeleteRequest, EntityGetRequest, EntityQueryRequest, EntitySetRequest, GetRequest, QueryRequest, SecretDeleteRequest, SecretGetRequest, SecretSetRequest, SetRequest, TransactionRequest } from './interfaces/kvs-api';
|
|
4
4
|
export declare class StorageApi {
|
|
5
5
|
private apiClient;
|
|
6
6
|
constructor(apiClient: FetchMethod);
|
|
7
|
-
get<T>(body: GetRequest): Promise<T | undefined>;
|
|
8
|
-
getSecret<T>(body: SecretGetRequest): Promise<T | undefined>;
|
|
9
|
-
getEntity<T>(body: EntityGetRequest): Promise<T | undefined>;
|
|
7
|
+
get<T>(body: GetRequest): Promise<T | GetResult<T> | undefined>;
|
|
8
|
+
getSecret<T>(body: SecretGetRequest): Promise<T | GetResult<T> | undefined>;
|
|
9
|
+
getEntity<T>(body: EntityGetRequest): Promise<T | GetResult<T> | undefined>;
|
|
10
10
|
set<T>(body: SetRequest<T>): Promise<void>;
|
|
11
11
|
setSecret<T>(body: SecretSetRequest<T>): Promise<void>;
|
|
12
12
|
setEntity<T>(body: EntitySetRequest<T>): Promise<void>;
|
|
@@ -18,5 +18,6 @@ export declare class StorageApi {
|
|
|
18
18
|
transact<T>(transactionRequest: TransactionRequest<T>): Promise<void>;
|
|
19
19
|
private handleKeyNotFound;
|
|
20
20
|
private request;
|
|
21
|
+
private processGetResponse;
|
|
21
22
|
}
|
|
22
23
|
//# sourceMappingURL=storage-api.d.ts.map
|
package/out/storage-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-api.d.ts","sourceRoot":"","sources":["../src/storage-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"storage-api.d.ts","sourceRoot":"","sources":["../src/storage-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EACL,aAAa,EAEb,mBAAmB,EAEnB,gBAAgB,EAEhB,kBAAkB,EAElB,gBAAgB,EAEhB,UAAU,EAEV,YAAY,EAEZ,mBAAmB,EAEnB,gBAAgB,EAEhB,gBAAgB,EAEhB,UAAU,EAEV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAEpC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO/D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO3E,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO3E,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQpD,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQhE,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAI7D,iBAAiB;YAWjB,OAAO;IA0BrB,OAAO,CAAC,kBAAkB;CAoB3B"}
|
package/out/storage-api.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StorageApi = void 0;
|
|
4
|
+
const types_1 = require("./interfaces/types");
|
|
4
5
|
const error_handling_1 = require("./utils/error-handling");
|
|
5
6
|
const errors_1 = require("./errors");
|
|
6
7
|
class StorageApi {
|
|
@@ -12,19 +13,19 @@ class StorageApi {
|
|
|
12
13
|
const rs = await this.handleKeyNotFound(async () => {
|
|
13
14
|
return this.request('/api/v1/get', body, true);
|
|
14
15
|
});
|
|
15
|
-
return rs?.
|
|
16
|
+
return this.processGetResponse(rs, body.options?.metadataFields);
|
|
16
17
|
}
|
|
17
18
|
async getSecret(body) {
|
|
18
19
|
const rs = await this.handleKeyNotFound(async () => {
|
|
19
20
|
return this.request('/api/v1/secret/get', body, true);
|
|
20
21
|
});
|
|
21
|
-
return rs?.
|
|
22
|
+
return this.processGetResponse(rs, body.options?.metadataFields);
|
|
22
23
|
}
|
|
23
24
|
async getEntity(body) {
|
|
24
25
|
const rs = await this.handleKeyNotFound(async () => {
|
|
25
26
|
return this.request('/api/v1/entity/get', body, true);
|
|
26
27
|
});
|
|
27
|
-
return rs?.
|
|
28
|
+
return this.processGetResponse(rs, body.options?.metadataFields);
|
|
28
29
|
}
|
|
29
30
|
async set(body) {
|
|
30
31
|
await this.request('/api/v1/set', body, false);
|
|
@@ -99,5 +100,22 @@ class StorageApi {
|
|
|
99
100
|
throw new errors_1.ForgeKvsError(`Unexpected error. Response was not valid JSON: ${responseText}`);
|
|
100
101
|
}
|
|
101
102
|
}
|
|
103
|
+
processGetResponse(response, requestedMetadataFields) {
|
|
104
|
+
if (response && requestedMetadataFields?.length) {
|
|
105
|
+
const maybeCreatedAt = requestedMetadataFields.includes(types_1.MetadataField.CREATED_AT)
|
|
106
|
+
? { createdAt: response.createdAt }
|
|
107
|
+
: {};
|
|
108
|
+
const maybeUpdatedAt = requestedMetadataFields.includes(types_1.MetadataField.UPDATED_AT)
|
|
109
|
+
? { updatedAt: response.updatedAt }
|
|
110
|
+
: {};
|
|
111
|
+
return {
|
|
112
|
+
key: response.key,
|
|
113
|
+
value: response.value,
|
|
114
|
+
...maybeCreatedAt,
|
|
115
|
+
...maybeUpdatedAt
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return response?.value;
|
|
119
|
+
}
|
|
102
120
|
}
|
|
103
121
|
exports.StorageApi = StorageApi;
|