@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trunkrs/common",
3
- "version": "1.6.1",
3
+ "version": "1.6.4",
4
4
  "description": "Common standards library for development in Trunkrs",
5
5
  "types": "./index.d.ts",
6
6
  "repository": "https://github.com/Trunkrs/common.git",
@@ -1,3 +1,4 @@
1
1
  import ServiceProvider from '../utils/service-provider';
2
2
  declare const awsProvider: ServiceProvider;
3
+ export declare const SecretsClientWithoutCache: symbol;
3
4
  export default awsProvider;
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
@@ -1 +1 @@
1
- {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../providers/aws.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,8EAAsE;AAEtE,kFAAyD;AACzD,8CAA8C;AAE9C,oDAAmC;AAEnC,MAAM,WAAW,GAAG,IAAI,0BAAe,EAAE,CAAA;AAEzC,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,kBAAe,WAAW,CAAA"}
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: 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 secretValue = await this.cache.getOrAdd(secretName, async () => {
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
- return secretValue;
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
- const isCacheNotEmpty = await this.cache.hasKey(secretName);
26
- if (isCacheNotEmpty) {
27
- await this.cache.remove(secretName);
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,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAF/B,mBAAc,GAAG,IAAI,wBAAc,EAAE,CAAA;IAEH,CAAC;IAE7C,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC3C,UAAU,EACV,KAAK,IAAI,EAAE;YACT,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,CACF,CAAA;QAED,OAAO,WAAW,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,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC3D,IAAI,eAAe,EAAE;YACnB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;SACpC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC/C,CAAC;CACF;AAED,kBAAe,aAAa,CAAA"}
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.client.disconnect();
34
+ await this.disconnect();
22
35
  }
23
36
  async get(key) {
24
- await this.client.connect();
37
+ await this.connect();
25
38
  const item = await this.client.get(key);
26
- await this.client.disconnect();
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.client.connect();
51
+ await this.connect();
39
52
  await this.client.del(keys);
40
- await this.client.disconnect();
53
+ await this.disconnect();
41
54
  }
42
55
  async clear() {
43
- await this.client.connect();
56
+ await this.connect();
44
57
  await this.client.FLUSHALL();
45
- await this.client.disconnect();
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;IACf,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IASjD,KAAK,CAAC,GAAG,CACd,GAAW,EACX,KAAa,EACb,OAAoB;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,OAAO,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAChC,CAAC;IAQM,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEvC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QAE9B,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,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAChC,CAAC;IAMM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAChC,CAAC;CACF;AAED,kBAAe,WAAW,CAAA"}
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"}