lemon-core 3.0.0 → 3.1.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.
Files changed (189) hide show
  1. package/README.md +13 -21
  2. package/dist/common/test-helper.js +19 -11
  3. package/dist/common/test-helper.js.map +1 -1
  4. package/dist/controllers/dummy-controller.d.ts +1 -1
  5. package/dist/controllers/dummy-controller.js +2 -2
  6. package/dist/controllers/dummy-controller.js.map +1 -1
  7. package/dist/controllers/general-api-controller.d.ts +1 -1
  8. package/dist/controllers/general-api-controller.js +5 -5
  9. package/dist/controllers/general-api-controller.js.map +1 -1
  10. package/dist/controllers/general-controller.js +2 -1
  11. package/dist/controllers/general-controller.js.map +1 -1
  12. package/dist/controllers/index.js +6 -2
  13. package/dist/controllers/index.js.map +1 -1
  14. package/dist/cores/api/api-service.d.ts +239 -0
  15. package/dist/cores/api/api-service.js +674 -0
  16. package/dist/cores/api/api-service.js.map +1 -0
  17. package/dist/cores/api/index.d.ts +10 -0
  18. package/dist/cores/api/index.js +27 -0
  19. package/dist/cores/api/index.js.map +1 -0
  20. package/dist/cores/api-service.js +19 -18
  21. package/dist/cores/api-service.js.map +1 -1
  22. package/dist/cores/aws/aws-kms-service.d.ts +53 -2
  23. package/dist/cores/aws/aws-kms-service.js +112 -29
  24. package/dist/cores/aws/aws-kms-service.js.map +1 -1
  25. package/dist/cores/aws/aws-s3-service.js +19 -18
  26. package/dist/cores/aws/aws-s3-service.js.map +1 -1
  27. package/dist/cores/aws/aws-sns-service.js +10 -10
  28. package/dist/cores/aws/aws-sns-service.js.map +1 -1
  29. package/dist/cores/aws/aws-sqs-service.js +12 -12
  30. package/dist/cores/aws/aws-sqs-service.js.map +1 -1
  31. package/dist/cores/aws/index.js +1 -1
  32. package/dist/cores/cache/cache-service.d.ts +440 -0
  33. package/dist/cores/cache/cache-service.js +967 -0
  34. package/dist/cores/cache/cache-service.js.map +1 -0
  35. package/dist/cores/cache/index.d.ts +10 -0
  36. package/dist/cores/cache/index.js +27 -0
  37. package/dist/cores/cache/index.js.map +1 -0
  38. package/dist/cores/cache-service.d.ts +54 -18
  39. package/dist/cores/cache-service.js +56 -45
  40. package/dist/cores/cache-service.js.map +1 -1
  41. package/dist/cores/config/config-service.js +11 -10
  42. package/dist/cores/config/config-service.js.map +1 -1
  43. package/dist/cores/core-services.js +6 -2
  44. package/dist/cores/core-services.js.map +1 -1
  45. package/dist/cores/core-types.d.ts +42 -12
  46. package/dist/cores/dynamo/dynamo-query-service.d.ts +52 -0
  47. package/dist/cores/dynamo/dynamo-query-service.js +127 -0
  48. package/dist/cores/dynamo/dynamo-query-service.js.map +1 -0
  49. package/dist/cores/dynamo/dynamo-scan-service.d.ts +70 -0
  50. package/dist/cores/dynamo/dynamo-scan-service.js +164 -0
  51. package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -0
  52. package/dist/cores/dynamo/dynamo-service.d.ts +192 -0
  53. package/dist/cores/dynamo/dynamo-service.js +525 -0
  54. package/dist/cores/dynamo/dynamo-service.js.map +1 -0
  55. package/dist/cores/dynamo/index.d.ts +12 -0
  56. package/dist/cores/dynamo/index.js +29 -0
  57. package/dist/cores/dynamo/index.js.map +1 -0
  58. package/dist/cores/dynamo-query-service.js +7 -7
  59. package/dist/cores/dynamo-query-service.js.map +1 -1
  60. package/dist/cores/dynamo-scan-service.js +8 -8
  61. package/dist/cores/dynamo-scan-service.js.map +1 -1
  62. package/dist/cores/dynamo-service.js +19 -19
  63. package/dist/cores/dynamo-service.js.map +1 -1
  64. package/dist/cores/elastic/elastic6-query-service.d.ts +104 -0
  65. package/dist/cores/elastic/elastic6-query-service.js +510 -0
  66. package/dist/cores/elastic/elastic6-query-service.js.map +1 -0
  67. package/dist/cores/elastic/elastic6-service.d.ts +273 -0
  68. package/dist/cores/elastic/elastic6-service.js +903 -0
  69. package/dist/cores/elastic/elastic6-service.js.map +1 -0
  70. package/dist/cores/elastic/hangul-service.d.ts +102 -0
  71. package/dist/cores/elastic/hangul-service.js +205 -0
  72. package/dist/cores/elastic/hangul-service.js.map +1 -0
  73. package/dist/cores/elastic/index.d.ts +12 -0
  74. package/dist/cores/elastic/index.js +29 -0
  75. package/dist/cores/elastic/index.js.map +1 -0
  76. package/dist/cores/elastic6-query-service.js +7 -7
  77. package/dist/cores/elastic6-query-service.js.map +1 -1
  78. package/dist/cores/elastic6-service.js +57 -65
  79. package/dist/cores/elastic6-service.js.map +1 -1
  80. package/dist/cores/hangul-service.d.ts +17 -3
  81. package/dist/cores/hangul-service.js +17 -8
  82. package/dist/cores/hangul-service.js.map +1 -1
  83. package/dist/cores/http-storage-service.js +1 -1
  84. package/dist/cores/http-storage-service.js.map +1 -1
  85. package/dist/cores/index.d.ts +9 -15
  86. package/dist/cores/index.js +14 -15
  87. package/dist/cores/index.js.map +1 -1
  88. package/dist/cores/lambda/index.js +8 -4
  89. package/dist/cores/lambda/index.js.map +1 -1
  90. package/dist/cores/lambda/lambda-cognito-handler.js +2 -2
  91. package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
  92. package/dist/cores/lambda/lambda-cron-handler.js +2 -2
  93. package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
  94. package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
  95. package/dist/cores/lambda/lambda-dynamo-stream-handler.js +20 -20
  96. package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
  97. package/dist/cores/lambda/lambda-handler.js +12 -11
  98. package/dist/cores/lambda/lambda-handler.js.map +1 -1
  99. package/dist/cores/lambda/lambda-notification-handler.js +10 -10
  100. package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
  101. package/dist/cores/lambda/lambda-sns-handler.js +13 -13
  102. package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
  103. package/dist/cores/lambda/lambda-sqs-handler.js +13 -13
  104. package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
  105. package/dist/cores/lambda/lambda-web-handler.d.ts +158 -8
  106. package/dist/cores/lambda/lambda-web-handler.js +330 -119
  107. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  108. package/dist/cores/lambda/lambda-wss-handler.js +16 -12
  109. package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
  110. package/dist/cores/model-manager.js +11 -11
  111. package/dist/cores/model-manager.js.map +1 -1
  112. package/dist/cores/protocol/protocol-service.d.ts +4 -0
  113. package/dist/cores/protocol/protocol-service.js +46 -40
  114. package/dist/cores/protocol/protocol-service.js.map +1 -1
  115. package/dist/cores/proxy-storage-service.js +7 -10
  116. package/dist/cores/proxy-storage-service.js.map +1 -1
  117. package/dist/cores/redis-storage-service.js +13 -13
  118. package/dist/cores/redis-storage-service.js.map +1 -1
  119. package/dist/cores/storage/http-storage-service.d.ts +22 -0
  120. package/dist/cores/storage/http-storage-service.js +129 -0
  121. package/dist/cores/storage/http-storage-service.js.map +1 -0
  122. package/dist/cores/storage/index.d.ts +14 -0
  123. package/dist/cores/storage/index.js +31 -0
  124. package/dist/cores/storage/index.js.map +1 -0
  125. package/dist/cores/storage/model-manager.d.ts +93 -0
  126. package/dist/cores/storage/model-manager.js +192 -0
  127. package/dist/cores/storage/model-manager.js.map +1 -0
  128. package/dist/cores/storage/proxy-storage-service.d.ts +573 -0
  129. package/dist/cores/storage/proxy-storage-service.js +913 -0
  130. package/dist/cores/storage/proxy-storage-service.js.map +1 -0
  131. package/dist/cores/storage/redis-storage-service.d.ts +183 -0
  132. package/dist/cores/storage/redis-storage-service.js +391 -0
  133. package/dist/cores/storage/redis-storage-service.js.map +1 -0
  134. package/dist/cores/storage/storage-service.d.ts +169 -0
  135. package/dist/cores/storage/storage-service.js +374 -0
  136. package/dist/cores/storage/storage-service.js.map +1 -0
  137. package/dist/cores/storage-service.d.ts +1 -1
  138. package/dist/cores/storage-service.js +10 -8
  139. package/dist/cores/storage-service.js.map +1 -1
  140. package/dist/engine/builder.js +27 -20
  141. package/dist/engine/builder.js.map +1 -1
  142. package/dist/engine/engine.js +53 -44
  143. package/dist/engine/engine.js.map +1 -1
  144. package/dist/engine/index.js +8 -4
  145. package/dist/engine/index.js.map +1 -1
  146. package/dist/engine/utilities.d.ts +4 -3
  147. package/dist/engine/utilities.js +32 -37
  148. package/dist/engine/utilities.js.map +1 -1
  149. package/dist/environ.d.ts +2 -2
  150. package/dist/environ.js +20 -10
  151. package/dist/environ.js.map +1 -1
  152. package/dist/exec-cli.js +26 -26
  153. package/dist/exec-cli.js.map +1 -1
  154. package/dist/extended/abstract-service.d.ts +533 -0
  155. package/dist/extended/abstract-service.js +915 -0
  156. package/dist/extended/abstract-service.js.map +1 -0
  157. package/dist/extended/index.d.ts +10 -0
  158. package/dist/extended/index.js +27 -0
  159. package/dist/extended/index.js.map +1 -0
  160. package/dist/helpers/helpers.d.ts +273 -0
  161. package/dist/helpers/helpers.js +613 -0
  162. package/dist/helpers/helpers.js.map +1 -0
  163. package/dist/helpers/index.d.ts +10 -0
  164. package/dist/helpers/index.js +27 -0
  165. package/dist/helpers/index.js.map +1 -0
  166. package/dist/index.d.ts +7 -5
  167. package/dist/index.js +11 -4
  168. package/dist/index.js.map +1 -1
  169. package/dist/lib/dynamo/expressions.js +35 -27
  170. package/dist/lib/dynamo/expressions.js.map +1 -1
  171. package/dist/lib/dynamo/query.js +24 -20
  172. package/dist/lib/dynamo/query.js.map +1 -1
  173. package/dist/lib/dynamo/scan.js +17 -13
  174. package/dist/lib/dynamo/scan.js.map +1 -1
  175. package/dist/lib/dynamo/serializer.js +11 -7
  176. package/dist/lib/dynamo/serializer.js.map +1 -1
  177. package/dist/lib/dynamo/utils.js +19 -14
  178. package/dist/lib/dynamo/utils.js.map +1 -1
  179. package/dist/lib/dynamodb-value.js +3 -3
  180. package/dist/lib/dynamodb-value.js.map +1 -1
  181. package/dist/lib/index.js +6 -2
  182. package/dist/lib/index.js.map +1 -1
  183. package/dist/tools/express.js +21 -15
  184. package/dist/tools/express.js.map +1 -1
  185. package/dist/tools/index.js +6 -2
  186. package/dist/tools/index.js.map +1 -1
  187. package/dist/tools/shared.js +12 -6
  188. package/dist/tools/shared.js.map +1 -1
  189. package/package.json +16 -15
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-service.js","sourceRoot":"","sources":["../../../src/cores/cache/cache-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `cores/cache/index.tx`
3
+ * - default index to export all for cache-service
4
+ *
5
+ * @author Steve Jung <steve@lemoncloud.io>
6
+ * @date 2022-05-13 initial file to group
7
+ *
8
+ * @copyright (C) lemoncloud.io 2022 - All Rights Reserved.
9
+ */
10
+ export * from './cache-service';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * `cores/cache/index.tx`
19
+ * - default index to export all for cache-service
20
+ *
21
+ * @author Steve Jung <steve@lemoncloud.io>
22
+ * @date 2022-05-13 initial file to group
23
+ *
24
+ * @copyright (C) lemoncloud.io 2022 - All Rights Reserved.
25
+ */
26
+ __exportStar(require("./cache-service"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cores/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;GAQG;AACH,kDAAgC"}
@@ -1,6 +1,3 @@
1
- /** ********************************************************************************************************************
2
- * Exported Types
3
- ** ********************************************************************************************************************/
4
1
  /**
5
2
  * type `CacheOptions`
6
3
  */
@@ -26,10 +23,6 @@ export interface CacheOptions {
26
23
  * type `CacheKey`
27
24
  */
28
25
  export declare type CacheKey = string | number;
29
- /**
30
- * type `CacheValue`
31
- */
32
- export declare type CacheValue = any;
33
26
  /**
34
27
  * type: `Timeout`
35
28
  */
@@ -48,7 +41,7 @@ export interface Timeout {
48
41
  /**
49
42
  * type `CacheEntry`: parameter type of 'setMulti' operation
50
43
  */
51
- export interface CacheEntry {
44
+ export interface CacheEntry<CacheValue> {
52
45
  /**
53
46
  * key
54
47
  */
@@ -65,14 +58,43 @@ export interface CacheEntry {
65
58
  /**
66
59
  * type `KeyValueMap`: result type of 'getMulti' operation
67
60
  */
68
- export declare type KeyValueMap = Record<CacheKey, CacheValue>;
69
- /** ********************************************************************************************************************
70
- * Exported Class
71
- ** ********************************************************************************************************************/
61
+ export declare type KeyValueMap<CacheValue> = Record<CacheKey, CacheValue>;
62
+ /**
63
+ * class: `CacheKeyMakable`
64
+ * - to provide the custom key-string of cache.
65
+ * - the global pkey would be like `<project>:<model.ns>:<model.type>::<cache-key>` (ex: `lemon:SS:item::100001`)
66
+ */
67
+ export interface CacheKeyMakable {
68
+ /**
69
+ * make the global pkey
70
+ * - default must be like `${ns}${delim}${key}`
71
+ */
72
+ (ns: string, delim: string, key: CacheKey): string;
73
+ }
74
+ /**
75
+ * class: `CacheSupportable`
76
+ * - support basic cache operation(read/write/timeout).
77
+ */
78
+ export interface CacheSupportable<CacheValue = any> {
79
+ /**
80
+ * save into cache w/ timeout(sec)
81
+ */
82
+ set(key: CacheKey, val: CacheValue, timeout?: number | Timeout): Promise<boolean>;
83
+ /**
84
+ * read from cache
85
+ */
86
+ get(key: CacheKey): Promise<CacheValue>;
87
+ /**
88
+ * increment number by `inc`
89
+ * - should be atomic operation w/ thread safe.
90
+ */
91
+ inc(key: CacheKey, inc: number): Promise<number>;
92
+ }
72
93
  /**
73
94
  * class `CacheService`
95
+ * - common service to provide cache
74
96
  */
75
- export declare class CacheService {
97
+ export declare class CacheService<CacheValue = any> implements CacheSupportable<CacheValue> {
76
98
  /**
77
99
  * Environment variable name for cache server endpoint
78
100
  * @static
@@ -98,6 +120,10 @@ export declare class CacheService {
98
120
  * Namespace of cache key
99
121
  */
100
122
  readonly ns: string;
123
+ /**
124
+ * Namespace of cache key
125
+ */
126
+ readonly maker: CacheKeyMakable;
101
127
  /**
102
128
  * Cache backend instance
103
129
  * @private
@@ -107,9 +133,10 @@ export declare class CacheService {
107
133
  * Factory method
108
134
  *
109
135
  * @param options (optional) cache options
136
+ * @param maker (optional) custome cache-pkey generator.
110
137
  * @static
111
138
  */
112
- static create(options?: CacheOptions): CacheService;
139
+ static create(options?: CacheOptions, maker?: CacheKeyMakable): CacheService;
113
140
  /**
114
141
  * Say hello
115
142
  */
@@ -145,7 +172,7 @@ export declare class CacheService {
145
172
  * @param entries
146
173
  * @return true on success
147
174
  */
148
- setMulti(entries: CacheEntry[]): Promise<boolean>;
175
+ setMulti(entries: CacheEntry<CacheValue>[]): Promise<boolean>;
149
176
  /**
150
177
  * Retrieve a key
151
178
  *
@@ -157,7 +184,7 @@ export declare class CacheService {
157
184
  *
158
185
  * @param keys
159
186
  */
160
- getMulti(keys: CacheKey[]): Promise<KeyValueMap>;
187
+ getMulti(keys: CacheKey[]): Promise<KeyValueMap<CacheValue>>;
161
188
  /**
162
189
  * Increment the integer value of a key
163
190
  *
@@ -165,6 +192,10 @@ export declare class CacheService {
165
192
  * @param inc number to increment
166
193
  */
167
194
  increment(key: CacheKey, inc: number): Promise<number>;
195
+ /**
196
+ * same as increment()
197
+ */
198
+ inc(key: CacheKey, inc: number): Promise<number>;
168
199
  /**
169
200
  * Set the value of a key and return its old value
170
201
  */
@@ -216,10 +247,15 @@ export declare class CacheService {
216
247
  * Protected constructor -> use CacheService.create()
217
248
  *
218
249
  * @param backend cache backend object
219
- * @param ns (optional) namespace of cache key (default: '')
250
+ * @param options options to create.
220
251
  * @protected
221
252
  */
222
- protected constructor(backend: CacheBackend, ns?: string);
253
+ protected constructor(backend: CacheBackend, options?: {
254
+ /** (optional) namespace of cache key (default: '') */
255
+ ns?: string;
256
+ /** custom key-maker */
257
+ maker?: CacheKeyMakable;
258
+ });
223
259
  /**
224
260
  * Get namespace prefixed cache key
225
261
  *
@@ -19,6 +19,8 @@ exports.fromTTL = exports.toTTL = exports.sleep = exports.DummyCacheService = ex
19
19
  *
20
20
  * @author Tim Hong <tim@lemoncloud.io>
21
21
  * @date 2020-12-02 initial version
22
+ * @author Steve <steve@lemoncloud.io>
23
+ * @date 2022-04-01 optimized for `AbstractProxy`
22
24
  *
23
25
  * @copyright (C) lemoncloud.io 2020 - All Rights Reserved.
24
26
  */
@@ -27,42 +29,42 @@ const node_cache_1 = __importDefault(require("node-cache"));
27
29
  const memcached_1 = __importDefault(require("memcached"));
28
30
  const ioredis_1 = __importDefault(require("ioredis"));
29
31
  const engine_1 = require("../engine");
30
- // Log namespace
31
- const NS = engine_1.$U.NS('CCHS', 'green');
32
- /** ********************************************************************************************************************
33
- * Exported Class
34
- ** ********************************************************************************************************************/
32
+ const NS = engine_1.$U.NS('CCHS', 'green'); // NAMESPACE TO BE PRINTED.
35
33
  /**
36
34
  * class `CacheService`
35
+ * - common service to provide cache
37
36
  */
38
37
  class CacheService {
39
38
  /**
40
39
  * Protected constructor -> use CacheService.create()
41
40
  *
42
41
  * @param backend cache backend object
43
- * @param ns (optional) namespace of cache key (default: '')
42
+ * @param options options to create.
44
43
  * @protected
45
44
  */
46
- constructor(backend, ns = '') {
47
- engine_1._inf(NS, `! cache-service instantiated with [${backend.name}] backend. [ns=${ns}]`);
45
+ constructor(backend, options) {
46
+ const ns = (options === null || options === void 0 ? void 0 : options.ns) || '';
47
+ (0, engine_1._inf)(NS, `! cache-service instantiated with [${backend.name}] backend. [ns=${ns}]`);
48
48
  this.backend = backend;
49
49
  this.ns = ns;
50
+ this.maker = options === null || options === void 0 ? void 0 : options.maker;
50
51
  }
51
52
  /**
52
53
  * Factory method
53
54
  *
54
55
  * @param options (optional) cache options
56
+ * @param maker (optional) custome cache-pkey generator.
55
57
  * @static
56
58
  */
57
- static create(options) {
59
+ static create(options, maker) {
58
60
  const type = (options === null || options === void 0 ? void 0 : options.type) || 'redis';
59
61
  const endpoint = (options === null || options === void 0 ? void 0 : options.endpoint) || engine_1.$U.env(CacheService.ENV_CACHE_ENDPOINT);
60
62
  const ns = (options === null || options === void 0 ? void 0 : options.ns) || '';
61
63
  const defTimeout = engine_1.$U.N(options === null || options === void 0 ? void 0 : options.defTimeout, engine_1.$U.N(engine_1.$U.env(CacheService.ENV_CACHE_DEFAULT_TIMEOUT), CacheService.DEF_CACHE_DEFAULT_TIMEOUT));
62
- engine_1._log(NS, `constructing [${type}] cache ...`);
63
- engine_1._log(NS, ` > endpoint =`, endpoint);
64
- engine_1._log(NS, ` > ns =`, ns);
65
- engine_1._log(NS, ` > defTimeout =`, defTimeout);
64
+ (0, engine_1._log)(NS, `constructing [${type}] cache ...`);
65
+ (0, engine_1._log)(NS, ` > endpoint =`, endpoint);
66
+ (0, engine_1._log)(NS, ` > ns =`, ns);
67
+ (0, engine_1._log)(NS, ` > defTimeout =`, defTimeout);
66
68
  let backend;
67
69
  switch (type) {
68
70
  case 'memcached':
@@ -72,9 +74,9 @@ class CacheService {
72
74
  backend = new RedisBackend(endpoint, defTimeout);
73
75
  break;
74
76
  default:
75
- throw new Error(`@type [${type}] is invalid.`);
77
+ throw new Error(`@type [${type}] is invalid - CacheService.create()`);
76
78
  }
77
- return new CacheService(backend, ns);
79
+ return new CacheService(backend, { ns, maker });
78
80
  }
79
81
  /**
80
82
  * Say hello
@@ -99,7 +101,7 @@ class CacheService {
99
101
  return __awaiter(this, void 0, void 0, function* () {
100
102
  const namespacedKey = this.asNamespacedKey(key);
101
103
  const ret = yield this.backend.has(namespacedKey);
102
- engine_1._log(NS, `.exists ${namespacedKey} / ret =`, ret);
104
+ (0, engine_1._log)(NS, `.exists ${namespacedKey} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
103
105
  return ret;
104
106
  });
105
107
  }
@@ -117,7 +119,7 @@ class CacheService {
117
119
  keys.push(key);
118
120
  return keys;
119
121
  }, []);
120
- engine_1._log(NS, `.keys / ret =`, ret);
122
+ (0, engine_1._log)(NS, `.keys / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
121
123
  return ret;
122
124
  });
123
125
  }
@@ -138,7 +140,7 @@ class CacheService {
138
140
  const namespacedKey = this.asNamespacedKey(key);
139
141
  const ttl = timeout && toTTL(timeout);
140
142
  const ret = yield this.backend.set(namespacedKey, val, ttl);
141
- engine_1._log(NS, `.set ${namespacedKey} ${val} / ret =`, ret);
143
+ (0, engine_1._log)(NS, `.set ${namespacedKey} ${val} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
142
144
  return ret;
143
145
  });
144
146
  }
@@ -162,7 +164,7 @@ class CacheService {
162
164
  };
163
165
  });
164
166
  const ret = yield this.backend.mset(param);
165
- engine_1._log(NS, `.setMulti ${entries.map(entry => entry.key)} / ret =`, ret);
167
+ (0, engine_1._log)(NS, `.setMulti ${entries.map(entry => entry.key)} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
166
168
  return ret;
167
169
  });
168
170
  }
@@ -177,7 +179,7 @@ class CacheService {
177
179
  throw new Error(`@key (CacheKey) is required.`);
178
180
  const namespacedKey = this.asNamespacedKey(key);
179
181
  const ret = yield this.backend.get(namespacedKey);
180
- engine_1._log(NS, `.get ${namespacedKey} / ret =`, ret);
182
+ (0, engine_1._log)(NS, `.get ${namespacedKey} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
181
183
  return ret;
182
184
  });
183
185
  }
@@ -200,7 +202,7 @@ class CacheService {
200
202
  newMap[key] = val;
201
203
  return newMap;
202
204
  }, {});
203
- engine_1._log(NS, `.getMulti ${namespacedKeys} / ret =`, ret);
205
+ (0, engine_1._log)(NS, `.getMulti ${namespacedKeys} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
204
206
  return ret;
205
207
  });
206
208
  }
@@ -218,10 +220,16 @@ class CacheService {
218
220
  throw new Error(`@inc (number) cannot be undefined.`);
219
221
  const namespacedKey = this.asNamespacedKey(key);
220
222
  const ret = yield this.backend.incr(namespacedKey, inc);
221
- engine_1._log(NS, `.increment ${namespacedKey} ${inc} / ret =`, ret);
223
+ (0, engine_1._log)(NS, `.increment ${namespacedKey} ${inc} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
222
224
  return ret;
223
225
  });
224
226
  }
227
+ /**
228
+ * same as increment()
229
+ */
230
+ inc(key, inc) {
231
+ return this.increment(key, inc);
232
+ }
225
233
  /**
226
234
  * Set the value of a key and return its old value
227
235
  */
@@ -246,7 +254,7 @@ class CacheService {
246
254
  if (!(yield this.backend.set(namespacedKey, val, ttl)))
247
255
  throw new Error(`getAndSet() failed`);
248
256
  }
249
- engine_1._log(NS, `.getAndSet ${namespacedKey} ${val} / ret =`, ret);
257
+ (0, engine_1._log)(NS, `.getAndSet ${namespacedKey} ${val} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
250
258
  return ret;
251
259
  });
252
260
  }
@@ -268,7 +276,7 @@ class CacheService {
268
276
  ret = yield this.backend.get(namespacedKey);
269
277
  yield this.backend.del(namespacedKey);
270
278
  }
271
- engine_1._log(NS, `.getAndDelete ${namespacedKey} / ret =`, ret);
279
+ (0, engine_1._log)(NS, `.getAndDelete ${namespacedKey} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
272
280
  return ret;
273
281
  });
274
282
  }
@@ -284,7 +292,7 @@ class CacheService {
284
292
  throw new Error(`@key (CacheKey) is required.`);
285
293
  const namespacedKey = this.asNamespacedKey(key);
286
294
  const ret = yield this.backend.del(namespacedKey);
287
- engine_1._log(NS, `.delete ${namespacedKey} / ret =`, ret);
295
+ (0, engine_1._log)(NS, `.delete ${namespacedKey} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
288
296
  return ret;
289
297
  });
290
298
  }
@@ -303,7 +311,7 @@ class CacheService {
303
311
  });
304
312
  const promises = namespacedKeys.map(namespacedKey => this.backend.del(namespacedKey));
305
313
  const ret = yield Promise.all(promises);
306
- engine_1._log(NS, `.deleteMulti ${namespacedKeys} / ret =`, ret);
314
+ (0, engine_1._log)(NS, `.deleteMulti ${namespacedKeys} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
307
315
  return ret;
308
316
  });
309
317
  }
@@ -320,7 +328,7 @@ class CacheService {
320
328
  throw new Error(`@key (CacheKey) is required.`);
321
329
  const namespacedKey = this.asNamespacedKey(key);
322
330
  const ret = yield this.backend.expire(namespacedKey, toTTL(timeout));
323
- engine_1._log(NS, `.setTimeout ${namespacedKey} ${timeout} / ret =`, ret);
331
+ (0, engine_1._log)(NS, `.setTimeout ${namespacedKey} ${timeout} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
324
332
  return ret;
325
333
  });
326
334
  }
@@ -338,7 +346,7 @@ class CacheService {
338
346
  throw new Error(`@key (CacheKey) is required.`);
339
347
  const namespacedKey = this.asNamespacedKey(key);
340
348
  const ret = yield this.backend.ttl(namespacedKey);
341
- engine_1._log(NS, `.getTimeout ${namespacedKey} / ret =`, ret);
349
+ (0, engine_1._log)(NS, `.getTimeout ${namespacedKey} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
342
350
  return ret;
343
351
  });
344
352
  }
@@ -353,7 +361,7 @@ class CacheService {
353
361
  throw new Error(`@key (CacheKey) is required.`);
354
362
  const namespacedKey = this.asNamespacedKey(key);
355
363
  const ret = yield this.backend.expire(namespacedKey, 0);
356
- engine_1._log(NS, `.removeTimeout ${namespacedKey} / ret =`, ret);
364
+ (0, engine_1._log)(NS, `.removeTimeout ${namespacedKey} / ret =`, typeof ret === 'string' ? ret : engine_1.$U.json(ret));
357
365
  return ret;
358
366
  });
359
367
  }
@@ -364,7 +372,10 @@ class CacheService {
364
372
  * @protected
365
373
  */
366
374
  asNamespacedKey(key) {
367
- return `${this.ns}${CacheService.NAMESPACE_DELIMITER}${key}`;
375
+ const [ns, delim] = [this.ns, CacheService.NAMESPACE_DELIMITER];
376
+ if (this.maker)
377
+ return this.maker(ns, delim, key);
378
+ return `${ns}${delim}${key}`;
368
379
  }
369
380
  }
370
381
  exports.CacheService = CacheService;
@@ -402,12 +413,12 @@ class DummyCacheService extends CacheService {
402
413
  static create(options) {
403
414
  const ns = (options === null || options === void 0 ? void 0 : options.ns) || '';
404
415
  const defTimeout = engine_1.$U.N(options === null || options === void 0 ? void 0 : options.defTimeout, engine_1.$U.N(engine_1.$U.env(CacheService.ENV_CACHE_DEFAULT_TIMEOUT), CacheService.DEF_CACHE_DEFAULT_TIMEOUT));
405
- engine_1._log(NS, `constructing dummy cache ...`);
416
+ (0, engine_1._log)(NS, `constructing dummy cache ...`);
406
417
  // NOTE: Use singleton backend instance
407
418
  // because node-cache is volatile and client instance does not share keys with other instance
408
419
  if (!DummyCacheService.backend)
409
420
  DummyCacheService.backend = new NodeCacheBackend(defTimeout);
410
- return new DummyCacheService(DummyCacheService.backend, ns);
421
+ return new DummyCacheService(DummyCacheService.backend, { ns });
411
422
  }
412
423
  /**
413
424
  * Say hello
@@ -597,13 +608,13 @@ class MemcachedBackend {
597
608
  const memcached = new memcached_1.default(endpoint || 'localhost:11211');
598
609
  // Build promisified API map
599
610
  this.api = {
600
- get: util_1.promisify(memcached.get.bind(memcached)),
601
- gets: util_1.promisify(memcached.gets.bind(memcached)),
602
- getMulti: util_1.promisify(memcached.getMulti.bind(memcached)),
603
- set: util_1.promisify(memcached.set.bind(memcached)),
604
- cas: util_1.promisify(memcached.cas.bind(memcached)),
605
- del: util_1.promisify(memcached.del.bind(memcached)),
606
- items: util_1.promisify(memcached.items.bind(memcached)),
611
+ get: (0, util_1.promisify)(memcached.get.bind(memcached)),
612
+ gets: (0, util_1.promisify)(memcached.gets.bind(memcached)),
613
+ getMulti: (0, util_1.promisify)(memcached.getMulti.bind(memcached)),
614
+ set: (0, util_1.promisify)(memcached.set.bind(memcached)),
615
+ cas: (0, util_1.promisify)(memcached.cas.bind(memcached)),
616
+ del: (0, util_1.promisify)(memcached.del.bind(memcached)),
617
+ items: (0, util_1.promisify)(memcached.items.bind(memcached)),
607
618
  cachedump: (server, slabid, number) => {
608
619
  return new Promise((resolve, reject) => {
609
620
  memcached.cachedump(server, slabid, number, (err, cachedump) => {
@@ -627,7 +638,7 @@ class MemcachedBackend {
627
638
  set(key, val, ttl = this.defTTL) {
628
639
  return __awaiter(this, void 0, void 0, function* () {
629
640
  const entry = { val, exp: fromTTL(ttl) };
630
- engine_1._log(NS, `[${this.name}-backend] storing to key [${key}] =`, engine_1.$U.json(entry));
641
+ (0, engine_1._log)(NS, `[${this.name}-backend] storing to key [${key}] =`, engine_1.$U.json(entry));
631
642
  return yield this.api.set(key, entry, ttl);
632
643
  });
633
644
  }
@@ -637,7 +648,7 @@ class MemcachedBackend {
637
648
  get(key) {
638
649
  return __awaiter(this, void 0, void 0, function* () {
639
650
  const entry = yield this.api.get(key);
640
- engine_1._log(NS, `[${this.name}-backend] entry fetched =`, engine_1.$U.json(entry));
651
+ (0, engine_1._log)(NS, `[${this.name}-backend] entry fetched =`, engine_1.$U.json(entry));
641
652
  return entry && entry.val;
642
653
  });
643
654
  }
@@ -646,10 +657,10 @@ class MemcachedBackend {
646
657
  */
647
658
  mset(entries) {
648
659
  return __awaiter(this, void 0, void 0, function* () {
649
- engine_1._log(NS, `[${this.name}-backend] storing multiple keys ...`);
660
+ (0, engine_1._log)(NS, `[${this.name}-backend] storing multiple keys ...`);
650
661
  const promises = entries.map(({ key, val, ttl = this.defTTL }, idx) => {
651
662
  const entry = { val, exp: fromTTL(ttl) };
652
- engine_1._log(NS, ` ${idx}) key [${key}] =`, engine_1.$U.json(entry));
663
+ (0, engine_1._log)(NS, ` ${idx}) key [${key}] =`, engine_1.$U.json(entry));
653
664
  return this.api.set(key, entry, ttl);
654
665
  });
655
666
  const results = yield Promise.all(promises);
@@ -662,7 +673,7 @@ class MemcachedBackend {
662
673
  mget(keys) {
663
674
  return __awaiter(this, void 0, void 0, function* () {
664
675
  const map = yield this.api.getMulti(keys);
665
- engine_1._log(NS, `[${this.name}-backend] entry map fetched =`, engine_1.$U.json(map));
676
+ (0, engine_1._log)(NS, `[${this.name}-backend] entry map fetched =`, engine_1.$U.json(map));
666
677
  Object.keys(map).forEach(key => {
667
678
  const entry = map[key];
668
679
  map[key] = entry.val;
@@ -678,7 +689,7 @@ class MemcachedBackend {
678
689
  // NOTE:
679
690
  // Memcached는 음수에 대한 incr/decr를 지원하지 않으며 0 미만으로 decr 되지 않는다.
680
691
  // 이런 이유로 sets & cas 조합을 이용해 직접 구현함
681
- engine_1._log(NS, `[${this.name}-backend] incrementing (${increment}) to key [${key}] ...`);
692
+ (0, engine_1._log)(NS, `[${this.name}-backend] incrementing (${increment}) to key [${key}] ...`);
682
693
  // Use get/check-and-save + retry strategy for consistency
683
694
  for (let retry = 0; retry < 5; yield sleep(10), retry++) {
684
695
  const result = yield this.api.gets(key); // Get entry w/ CAS id