@trunkrs/common 1.6.1 → 1.6.4
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/package.json +1 -1
- package/providers/aws.d.ts +1 -0
- package/providers/aws.js +4 -1
- package/providers/aws.js.map +1 -1
- package/services/aws/SecretsClient.d.ts +2 -2
- package/services/aws/SecretsClient.js +13 -7
- package/services/aws/SecretsClient.js.map +1 -1
- package/services/redis/RedisClient.d.ts +3 -0
- package/services/redis/RedisClient.js +21 -8
- package/services/redis/RedisClient.js.map +1 -1
package/package.json
CHANGED
package/providers/aws.d.ts
CHANGED
package/providers/aws.js
CHANGED
|
@@ -22,11 +22,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.SecretsClientWithoutCache = void 0;
|
|
25
26
|
const service_provider_1 = __importStar(require("../utils/service-provider"));
|
|
26
|
-
const SecretsClient_1 = __importDefault(require("../services/aws/SecretsClient"));
|
|
27
27
|
const caching_1 = require("../utils/caching");
|
|
28
|
+
const SecretsClient_1 = __importDefault(require("../services/aws/SecretsClient"));
|
|
28
29
|
const utils_1 = __importDefault(require("./utils"));
|
|
29
30
|
const awsProvider = new service_provider_1.default();
|
|
31
|
+
exports.SecretsClientWithoutCache = service_provider_1.default.createSymbol('SecretsClientWithoutCache');
|
|
30
32
|
awsProvider.register(SecretsClient_1.default, service_provider_1.Lifecycle.Singleton, () => new SecretsClient_1.default(utils_1.default.provide(caching_1.MemoryCache)));
|
|
33
|
+
awsProvider.register(exports.SecretsClientWithoutCache, service_provider_1.Lifecycle.Singleton, () => new SecretsClient_1.default());
|
|
31
34
|
exports.default = awsProvider;
|
|
32
35
|
//# sourceMappingURL=aws.js.map
|
package/providers/aws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../providers/aws.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../providers/aws.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAAsE;AACtE,8CAA8C;AAC9C,kFAAyD;AAEzD,oDAAmC;AAEnC,MAAM,WAAW,GAAG,IAAI,0BAAe,EAAE,CAAA;AAE5B,QAAA,yBAAyB,GACpC,0BAAe,CAAC,YAAY,CAAgB,2BAA2B,CAAC,CAAA;AAE1E,WAAW,CAAC,QAAQ,CAClB,uBAAa,EACb,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CAAC,IAAI,uBAAa,CAAC,eAAa,CAAC,OAAO,CAAC,qBAAW,CAAC,CAAC,CAC5D,CAAA;AAED,WAAW,CAAC,QAAQ,CAClB,iCAAyB,EACzB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CAAC,IAAI,uBAAa,EAAE,CAC1B,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Cache from '../../utils/caching/Cache';
|
|
2
2
|
declare class SecretsClient {
|
|
3
|
-
private readonly cache
|
|
3
|
+
private readonly cache?;
|
|
4
4
|
private readonly secretsManager;
|
|
5
|
-
constructor(cache
|
|
5
|
+
constructor(cache?: Cache | undefined);
|
|
6
6
|
getSecretValue(secretName: string): Promise<string | undefined>;
|
|
7
7
|
updateSecretValue(secretName: string, secretValue: string): Promise<void>;
|
|
8
8
|
}
|
|
@@ -7,13 +7,17 @@ class SecretsClient {
|
|
|
7
7
|
this.secretsManager = new aws_sdk_1.SecretsManager();
|
|
8
8
|
}
|
|
9
9
|
async getSecretValue(secretName) {
|
|
10
|
-
const
|
|
10
|
+
const getSecret = async () => {
|
|
11
11
|
const secret = await this.secretsManager
|
|
12
12
|
.getSecretValue({ SecretId: secretName })
|
|
13
13
|
.promise();
|
|
14
14
|
return secret.SecretString;
|
|
15
|
-
}
|
|
16
|
-
|
|
15
|
+
};
|
|
16
|
+
if (this.cache) {
|
|
17
|
+
const secretValue = await this.cache.getOrAdd(secretName, getSecret);
|
|
18
|
+
return secretValue;
|
|
19
|
+
}
|
|
20
|
+
return getSecret();
|
|
17
21
|
}
|
|
18
22
|
async updateSecretValue(secretName, secretValue) {
|
|
19
23
|
await this.secretsManager
|
|
@@ -22,11 +26,13 @@ class SecretsClient {
|
|
|
22
26
|
SecretString: secretValue,
|
|
23
27
|
})
|
|
24
28
|
.promise();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
if (this.cache) {
|
|
30
|
+
const isCacheNotEmpty = await this.cache.hasKey(secretName);
|
|
31
|
+
if (isCacheNotEmpty) {
|
|
32
|
+
await this.cache.remove(secretName);
|
|
33
|
+
}
|
|
34
|
+
await this.cache.add(secretName, secretValue);
|
|
28
35
|
}
|
|
29
|
-
await this.cache.add(secretName, secretValue);
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
38
|
exports.default = SecretsClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsClient.js","sourceRoot":"","sources":["../../../services/aws/SecretsClient.ts"],"names":[],"mappings":";;AAAA,qCAAwC;AAIxC,MAAM,aAAa;IAGjB,YAAoC,
|
|
1
|
+
{"version":3,"file":"SecretsClient.js","sourceRoot":"","sources":["../../../services/aws/SecretsClient.ts"],"names":[],"mappings":";;AAAA,qCAAwC;AAIxC,MAAM,aAAa;IAGjB,YAAoC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAFhC,mBAAc,GAAG,IAAI,wBAAc,EAAE,CAAA;IAEF,CAAC;IAE9C,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc;iBACrC,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;iBACxC,OAAO,EAAE,CAAA;YAEZ,OAAO,MAAM,CAAC,YAAY,CAAA;QAC5B,CAAC,CAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC3C,UAAU,EACV,SAAS,CACV,CAAA;YAED,OAAO,WAAW,CAAA;SACnB;QAED,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,UAAkB,EAClB,WAAmB;QAEnB,MAAM,IAAI,CAAC,cAAc;aACtB,cAAc,CAAC;YACd,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,WAAW;SAC1B,CAAC;aACD,OAAO,EAAE,CAAA;QAEZ,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC3D,IAAI,eAAe,EAAE;gBACnB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;aACpC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;SAC9C;IACH,CAAC;CACF;AAED,kBAAe,aAAa,CAAA"}
|
|
@@ -2,6 +2,9 @@ import { RedisClientType } from 'redis';
|
|
|
2
2
|
import SetOptions from './types/SetOptions';
|
|
3
3
|
declare class RedisClient {
|
|
4
4
|
private readonly client;
|
|
5
|
+
private needsConnectionCounter;
|
|
6
|
+
private connect;
|
|
7
|
+
private disconnect;
|
|
5
8
|
constructor(client: RedisClientType);
|
|
6
9
|
set(key: string, value: string, options?: SetOptions): Promise<void>;
|
|
7
10
|
get(key: string): Promise<string | null>;
|
|
@@ -3,8 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
class RedisClient {
|
|
4
4
|
constructor(client) {
|
|
5
5
|
this.client = client;
|
|
6
|
+
this.needsConnectionCounter = 0;
|
|
7
|
+
}
|
|
8
|
+
async connect() {
|
|
9
|
+
if (!this.needsConnectionCounter) {
|
|
10
|
+
await this.client.connect();
|
|
11
|
+
}
|
|
12
|
+
this.needsConnectionCounter += 1;
|
|
13
|
+
}
|
|
14
|
+
async disconnect() {
|
|
15
|
+
this.needsConnectionCounter -= 1;
|
|
16
|
+
if (!this.needsConnectionCounter) {
|
|
17
|
+
await this.client.disconnect();
|
|
18
|
+
}
|
|
6
19
|
}
|
|
7
20
|
async set(key, value, options) {
|
|
21
|
+
await this.connect();
|
|
8
22
|
const commandOptions = {};
|
|
9
23
|
if (options === null || options === void 0 ? void 0 : options.expiresAt) {
|
|
10
24
|
Object.assign(commandOptions, {
|
|
@@ -16,14 +30,13 @@ class RedisClient {
|
|
|
16
30
|
[options.setCondition]: true,
|
|
17
31
|
});
|
|
18
32
|
}
|
|
19
|
-
await this.client.connect();
|
|
20
33
|
await this.client.set(key, value, commandOptions);
|
|
21
|
-
await this.
|
|
34
|
+
await this.disconnect();
|
|
22
35
|
}
|
|
23
36
|
async get(key) {
|
|
24
|
-
await this.
|
|
37
|
+
await this.connect();
|
|
25
38
|
const item = await this.client.get(key);
|
|
26
|
-
await this.
|
|
39
|
+
await this.disconnect();
|
|
27
40
|
return item;
|
|
28
41
|
}
|
|
29
42
|
async getOrSet(key, factory, setOptions) {
|
|
@@ -35,14 +48,14 @@ class RedisClient {
|
|
|
35
48
|
return value;
|
|
36
49
|
}
|
|
37
50
|
async delete(...keys) {
|
|
38
|
-
await this.
|
|
51
|
+
await this.connect();
|
|
39
52
|
await this.client.del(keys);
|
|
40
|
-
await this.
|
|
53
|
+
await this.disconnect();
|
|
41
54
|
}
|
|
42
55
|
async clear() {
|
|
43
|
-
await this.
|
|
56
|
+
await this.connect();
|
|
44
57
|
await this.client.FLUSHALL();
|
|
45
|
-
await this.
|
|
58
|
+
await this.disconnect();
|
|
46
59
|
}
|
|
47
60
|
}
|
|
48
61
|
exports.default = RedisClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisClient.js","sourceRoot":"","sources":["../../../services/redis/RedisClient.ts"],"names":[],"mappings":";;AAIA,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"RedisClient.js","sourceRoot":"","sources":["../../../services/redis/RedisClient.ts"],"names":[],"mappings":";;AAIA,MAAM,WAAW;IAmBf,YAAoC,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAlBnD,2BAAsB,GAAG,CAAC,CAAA;IAkB4B,CAAC;IAhBvD,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;SAC5B;QAED,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAA;IAClC,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAA;QAEhC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;SAC/B;IACH,CAAC;IAWM,KAAK,CAAC,GAAG,CACd,GAAW,EACX,KAAa,EACb,OAAoB;QAEpB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAEpB,MAAM,cAAc,GAAG,EAAE,CAAA;QAEzB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;gBAE5B,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;aAClC,CAAC,CAAA;SACH;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC5B,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI;aAC7B,CAAC,CAAA;SACH;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACzB,CAAC;IAQM,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAEpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEvC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAEvB,OAAO,IAAI,CAAA;IACb,CAAC;IAWM,KAAK,CAAC,QAAQ,CACnB,GAAW,EACX,OAA8B,EAC9B,UAAuB;QAEvB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,MAAM,OAAO,EAAE,CAAA;YAEvB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;SACvC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAOM,KAAK,CAAC,MAAM,CAAC,GAAG,IAAc;QACnC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACzB,CAAC;IAMM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC5B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACzB,CAAC;CACF;AAED,kBAAe,WAAW,CAAA"}
|