vona-module-a-summer 5.0.29 → 5.1.2

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 (52) hide show
  1. package/LICENSE +0 -0
  2. package/dist/.metadata/index.d.ts +1 -0
  3. package/dist/.metadata/index.d.ts.map +1 -0
  4. package/dist/.metadata/this.d.ts +1 -0
  5. package/dist/.metadata/this.d.ts.map +1 -0
  6. package/dist/bean/bean.summer.d.ts +2 -1
  7. package/dist/bean/bean.summer.d.ts.map +1 -0
  8. package/dist/bean/bean.summerCacheBase.d.ts +1 -0
  9. package/dist/bean/bean.summerCacheBase.d.ts.map +1 -0
  10. package/dist/common/cacheBase.d.ts +2 -1
  11. package/dist/common/cacheBase.d.ts.map +1 -0
  12. package/dist/common/cacheLayeredBase.d.ts +1 -0
  13. package/dist/common/cacheLayeredBase.d.ts.map +1 -0
  14. package/dist/config/config.d.ts +1 -0
  15. package/dist/config/config.d.ts.map +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +30 -29
  19. package/dist/index.js.map +1 -0
  20. package/dist/lib/index.d.ts +1 -0
  21. package/dist/lib/index.d.ts.map +1 -0
  22. package/dist/lib/summerCache.d.ts +1 -0
  23. package/dist/lib/summerCache.d.ts.map +1 -0
  24. package/dist/service/localFetch_.d.ts +1 -0
  25. package/dist/service/localFetch_.d.ts.map +1 -0
  26. package/dist/service/localMem_.d.ts +1 -0
  27. package/dist/service/localMem_.d.ts.map +1 -0
  28. package/dist/service/localRedis_.d.ts +1 -0
  29. package/dist/service/localRedis_.d.ts.map +1 -0
  30. package/dist/types/index.d.ts +1 -0
  31. package/dist/types/index.d.ts.map +1 -0
  32. package/dist/types/localMem.d.ts +1 -0
  33. package/dist/types/localMem.d.ts.map +1 -0
  34. package/dist/types/summerCache.d.ts +1 -0
  35. package/dist/types/summerCache.d.ts.map +1 -0
  36. package/package.json +29 -24
  37. package/src/.metadata/index.ts +76 -0
  38. package/src/.metadata/this.ts +2 -0
  39. package/src/bean/bean.summer.ts +16 -0
  40. package/src/bean/bean.summerCacheBase.ts +94 -0
  41. package/src/common/cacheBase.ts +95 -0
  42. package/src/common/cacheLayeredBase.ts +12 -0
  43. package/src/config/config.ts +48 -0
  44. package/src/index.ts +3 -0
  45. package/src/lib/index.ts +1 -0
  46. package/src/lib/summerCache.ts +7 -0
  47. package/src/service/localFetch_.ts +79 -0
  48. package/src/service/localMem_.ts +147 -0
  49. package/src/service/localRedis_.ts +122 -0
  50. package/src/types/index.ts +2 -0
  51. package/src/types/localMem.ts +8 -0
  52. package/src/types/summerCache.ts +58 -0
package/LICENSE CHANGED
File without changes
@@ -53,3 +53,4 @@ declare module 'vona' {
53
53
  }
54
54
  }
55
55
  /** scope: end */
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,kBAAkB;AAClB,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAEhD,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,sBAAsB,CAAC;IAE9B,UAAiB,UAAU;KAG1B;CACR;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,iBAAiB;QAChC,QAAQ,EAAE,UAAU,CAAC;KACtB;CACF;AACD,gBAAgB;AAChB,qBAAqB;AACrB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAE1C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,oBAAoB,CAAC;CAGnC;AACD,OAAO,QAAQ,sBAAsB,CAAC;CAErC;AACD,mBAAmB;AACnB,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,kBAAkB;AAClB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGhF,qBACa,kBAAmB,SAAQ,aAAa;CAAG;AAExD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC,OAAO,MAAM,CAAC,CAAC;CACvC;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,UAAU,EAAE,kBAAkB,CAAC;KAChC;IAED,UAAiB,mBAAmB;QAClC,MAAM,EAAE,kBAAkB,CAAC;KAC5B;IAED,UAAiB,gBAAgB;QAC/B,UAAU,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;KACvC;CAKF;AACD,iBAAiB"}
@@ -1,2 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-summer";
2
2
  export { ScopeModuleASummer as ScopeModule } from './index.ts';
3
+ //# sourceMappingURL=this.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,6 +1,7 @@
1
- import type { IDecoratorSummerCacheOptions } from '../types/summerCache.ts';
2
1
  import { BeanBase } from 'vona';
2
+ import type { IDecoratorSummerCacheOptions } from '../types/summerCache.ts';
3
3
  import { BeanSummerCacheBase } from './bean.summerCacheBase.ts';
4
4
  export declare class BeanSummer extends BeanBase {
5
5
  cache<KEY, DATA>(cacheName: string, cacheOptions?: IDecoratorSummerCacheOptions): BeanSummerCacheBase<KEY, DATA>;
6
6
  }
7
+ //# sourceMappingURL=bean.summer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bean.summer.d.ts","sourceRoot":"","sources":["../../src/bean/bean.summer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBACa,UAAW,SAAQ,QAAQ;IACtC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,4BAA4B,GAAG,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC;CAMjH"}
@@ -12,3 +12,4 @@ export declare class BeanSummerCacheBase<KEY = any, DATA = any> extends CacheBas
12
12
  clear(options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
13
13
  private __getLayered;
14
14
  }
15
+ //# sourceMappingURL=bean.summerCacheBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bean.summerCacheBase.d.ts","sourceRoot":"","sources":["../../src/bean/bean.summerCacheBase.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEvG,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBAEa,mBAAmB,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;IAClF,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,4BAA4B;IAwB5E,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAKzF,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAQnG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAK1F,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAK3E,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAK7D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAQhE,KAAK,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAK1D,OAAO,CAAC,YAAY;CAUrB"}
@@ -1,8 +1,8 @@
1
+ import { BeanBase } from 'vona';
1
2
  import type { ServiceLocalFetch } from '../service/localFetch_.ts';
2
3
  import type { ServiceLocalMem } from '../service/localMem_.ts';
3
4
  import type { ServiceLocalRedis } from '../service/localRedis_.ts';
4
5
  import type { IDecoratorSummerCacheOptions, TSummerCacheActionOptions } from '../types/summerCache.ts';
5
- import { BeanBase } from 'vona';
6
6
  export declare class CacheBase<KEY = any, DATA = any> extends BeanBase {
7
7
  protected _cacheName: string;
8
8
  protected _cacheOptions: IDecoratorSummerCacheOptions;
@@ -34,3 +34,4 @@ export declare class CacheBase<KEY = any, DATA = any> extends BeanBase {
34
34
  protected __getOptionsMode(options?: TSummerCacheActionOptions<KEY, DATA>): import("../types/summerCache.ts").TSummerCacheMode;
35
35
  protected __checkValueEmpty(value: DATA | null | undefined, options?: TSummerCacheActionOptions<KEY, DATA>): boolean;
36
36
  }
37
+ //# sourceMappingURL=cacheBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheBase.d.ts","sourceRoot":"","sources":["../../src/common/cacheBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIvG,qBAAa,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAE,SAAQ,QAAQ;IAC5D,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAAC;IAEtD,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAChE,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAEhE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,4BAA4B;cAKhE,WAAW;IAgB3B,SAAS,KAAK,WAAW,uDAExB;IAED,SAAS,KAAK,YAAY;;;;;;;;;;;;;;MAEzB;IAED,SAAS,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAKnD;IAED,SAAS,KAAK,UAAU,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAKvD;IAED,SAAS,KAAK,UAAU,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAKvD;IAED,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAS5E,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAIzE,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;CAc3G"}
@@ -9,3 +9,4 @@ export interface ICacheLayeredBase<KEY, DATA> {
9
9
  clear(options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
10
10
  peek(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined>;
11
11
  }
12
+ //# sourceMappingURL=cacheLayeredBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheLayeredBase.d.ts","sourceRoot":"","sources":["../../src/common/cacheLayeredBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,WAAW,iBAAiB,CAAC,GAAG,EAAE,IAAI;IAC1C,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAC1F,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;IACpG,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,KAAK,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;CAC5F"}
@@ -19,3 +19,4 @@ export declare function config(_app: VonaApplication): {
19
19
  };
20
20
  };
21
21
  };
22
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEhG,eAAO,MAAM,SAAS,EAMjB,4BAA4B,CAAC;AAElC,eAAO,MAAM,WAAW,EAKnB,4BAA4B,CAAC;AAElC,eAAO,MAAM,SAAS,EASjB,4BAA4B,CAAC;AAElC,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe;;;cAI1B,iBAAiB;uBACL,kBAAkB;;;;;;;;;;EAW/C"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './.metadata/index.ts';
2
2
  export * from './lib/index.ts';
3
3
  export * from './types/index.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { BeanBase, Virtual, BeanInfo, deepExtend, cast, BeanScopeBase, createBeanDecorator } from 'vona';
2
+ import { __decorate } from 'tslib';
2
3
  import { Bean, Service, Scope } from 'vona-module-a-bean';
3
4
 
4
5
  const __ThisModule__ = 'a-summer';
@@ -85,10 +86,7 @@ class CacheBase extends BeanBase {
85
86
  }
86
87
  }
87
88
 
88
- var _dec$5, _dec2$5, _dec3, _class$5;
89
- let BeanSummerCacheBase = (_dec$5 = Bean(), _dec2$5 = Virtual(), _dec3 = BeanInfo({
90
- module: "a-summer"
91
- }), _dec$5(_class$5 = _dec2$5(_class$5 = _dec3(_class$5 = class BeanSummerCacheBase extends CacheBase {
89
+ let BeanSummerCacheBase = class BeanSummerCacheBase extends CacheBase {
92
90
  __init__(cacheName, cacheOptions) {
93
91
  let _cacheName;
94
92
  let _cacheOptions;
@@ -165,24 +163,24 @@ let BeanSummerCacheBase = (_dec$5 = Bean(), _dec2$5 = Virtual(), _dec3 = BeanInf
165
163
  }
166
164
  return this.localRedis;
167
165
  }
168
- }) || _class$5) || _class$5) || _class$5);
169
-
170
- var _dec$4, _dec2$4, _class$4;
171
- let BeanSummer = (_dec$4 = Bean(), _dec2$4 = BeanInfo({
166
+ };
167
+ BeanSummerCacheBase = __decorate([Bean(), Virtual(), BeanInfo({
172
168
  module: "a-summer"
173
- }), _dec$4(_class$4 = _dec2$4(_class$4 = class BeanSummer extends BeanBase {
169
+ })], BeanSummerCacheBase);
170
+
171
+ let BeanSummer = class BeanSummer extends BeanBase {
174
172
  cache(cacheName, cacheOptions) {
175
173
  if (cacheName.includes('.summerCache.')) {
176
174
  return this.app.bean._getBeanSelector(cacheName, undefined, cacheOptions);
177
175
  }
178
176
  return this.app.bean._getBeanSelector(BeanSummerCacheBase, cacheName, cacheOptions);
179
177
  }
180
- }) || _class$4) || _class$4);
181
-
182
- var _dec$3, _dec2$3, _class$3;
183
- let ServiceLocalFetch = (_dec$3 = Service(), _dec2$3 = BeanInfo({
178
+ };
179
+ BeanSummer = __decorate([Bean(), BeanInfo({
184
180
  module: "a-summer"
185
- }), _dec$3(_class$3 = _dec2$3(_class$3 = class ServiceLocalFetch extends CacheBase {
181
+ })], BeanSummer);
182
+
183
+ let ServiceLocalFetch = class ServiceLocalFetch extends CacheBase {
186
184
  constructor(...args) {
187
185
  super(...args);
188
186
  this._cacheNativeInstance = void 0;
@@ -244,12 +242,12 @@ let ServiceLocalFetch = (_dec$3 = Service(), _dec2$3 = BeanInfo({
244
242
  async clear(_options) {
245
243
  // do nothing
246
244
  }
247
- }) || _class$3) || _class$3);
248
-
249
- var _dec$2, _dec2$2, _class$2;
250
- let ServiceLocalMem = (_dec$2 = Service(), _dec2$2 = BeanInfo({
245
+ };
246
+ ServiceLocalFetch = __decorate([Service(), BeanInfo({
251
247
  module: "a-summer"
252
- }), _dec$2(_class$2 = _dec2$2(_class$2 = class ServiceLocalMem extends CacheBase {
248
+ })], ServiceLocalFetch);
249
+
250
+ let ServiceLocalMem = class ServiceLocalMem extends CacheBase {
253
251
  constructor(...args) {
254
252
  super(...args);
255
253
  this._cacheMemInstance = void 0;
@@ -383,12 +381,12 @@ let ServiceLocalMem = (_dec$2 = Service(), _dec2$2 = BeanInfo({
383
381
  }
384
382
  return this.localFetch;
385
383
  }
386
- }) || _class$2) || _class$2);
387
-
388
- var _dec$1, _dec2$1, _class$1;
389
- let ServiceLocalRedis = (_dec$1 = Service(), _dec2$1 = BeanInfo({
384
+ };
385
+ ServiceLocalMem = __decorate([Service(), BeanInfo({
390
386
  module: "a-summer"
391
- }), _dec$1(_class$1 = _dec2$1(_class$1 = class ServiceLocalRedis extends CacheBase {
387
+ })], ServiceLocalMem);
388
+
389
+ let ServiceLocalRedis = class ServiceLocalRedis extends CacheBase {
392
390
  constructor(...args) {
393
391
  super(...args);
394
392
  this._cacheRedisInstance = void 0;
@@ -495,7 +493,10 @@ let ServiceLocalRedis = (_dec$1 = Service(), _dec2$1 = BeanInfo({
495
493
  __getLayered(_options) {
496
494
  return this.localFetch;
497
495
  }
498
- }) || _class$1) || _class$1);
496
+ };
497
+ ServiceLocalRedis = __decorate([Service(), BeanInfo({
498
+ module: "a-summer"
499
+ })], ServiceLocalRedis);
499
500
 
500
501
  const configMem = {
501
502
  mode: 'mem',
@@ -540,11 +541,10 @@ function config(_app) {
540
541
  };
541
542
  }
542
543
 
543
- var _dec, _dec2, _class;
544
- let ScopeModuleASummer = (_dec = Scope(), _dec2 = BeanInfo({
544
+ let ScopeModuleASummer = class ScopeModuleASummer extends BeanScopeBase {};
545
+ ScopeModuleASummer = __decorate([Scope(), BeanInfo({
545
546
  module: "a-summer"
546
- }), _dec(_class = _dec2(_class = class ScopeModuleASummer extends BeanScopeBase {}) || _class) || _class);
547
-
547
+ })], ScopeModuleASummer);
548
548
  /** scope: end */
549
549
 
550
550
  function SummerCache(options) {
@@ -552,3 +552,4 @@ function SummerCache(options) {
552
552
  }
553
553
 
554
554
  export { BeanSummer, BeanSummerCacheBase, ScopeModuleASummer, ServiceLocalFetch, ServiceLocalMem, ServiceLocalRedis, SummerCache, config, configAll, configMem, configRedis };
555
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/.metadata/this.ts","../src/common/cacheBase.ts","../src/bean/bean.summerCacheBase.ts","../src/bean/bean.summer.ts","../src/service/localFetch_.ts","../src/service/localMem_.ts","../src/service/localRedis_.ts","../src/config/config.ts","../src/.metadata/index.ts","../src/lib/summerCache.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["__ThisModule__","CacheBase","BeanBase","constructor","args","_cacheName","_cacheOptions","_localMem","_localRedis","_localFetch","__init__","cacheName","cacheOptions","__dispose__","bean","_removeBean","undefined","scopeSummer","app","scope","configModule","config","localMem","_getBeanSelector","localRedis","localFetch","__getOptionsEnabled","options","enable","summer","meta","onion","checkOnionOptionsEnabled","__getOptionsMode","mode","__checkValueEmpty","value","emptyArrayAsNull","Array","isArray","length","ignoreNull","BeanSummerCacheBase","$beanFullName","$beanOptions","preset","presetDefault","configPreset","deepExtend","get","key","layered","__getLayered","mget","keys","peek","set","mset","values","del","mdel","clear","__decorate","Bean","Virtual","__z_BeanInfo","module","BeanSummer","cache","includes","ServiceLocalFetch","_cacheNativeInstance","cacheBeanNative","_getBean","fn_get","cast","getNative","fn_mget","cacheBean","mgetNative","i","push","_key","_options","_value","_values","_keys","Service","ServiceLocalMem","_cacheMemInstance","cacheMem","mem","force","ttl","updateAgeOnGet","db","disableTransactionCompensate","broadcastOnSet","map","keysMissing","indexesMissing","valuesMissing","item","valueMissing","value2","values2","ServiceLocalRedis","_cacheRedisInstance","cacheRedis","redis","configMem","max","configRedis","configAll","_app","all","client","ScopeModuleASummer","BeanScopeBase","Scope","SummerCache","createBeanDecorator"],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './summerCache.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import type { IDecoratorSummerCacheOptions } from '../types/summerCache.ts';
2
2
  export declare function SummerCache(options?: IDecoratorSummerCacheOptions): ClassDecorator;
3
+ //# sourceMappingURL=summerCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summerCache.d.ts","sourceRoot":"","sources":["../../src/lib/summerCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAE5E,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,cAAc,CAElF"}
@@ -14,3 +14,4 @@ export declare class ServiceLocalFetch<KEY = any, DATA = any> extends CacheBase<
14
14
  mdel(_keys: KEY[], _options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
15
15
  clear(_options: any): Promise<void>;
16
16
  }
17
+ //# sourceMappingURL=localFetch_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localFetch_.d.ts","sourceRoot":"","sources":["../../src/service/localFetch_.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAqC,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBACa,iBAAiB,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAE,YAAW,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC;IACxH,OAAO,CAAC,oBAAoB,CAAmC;cAE/C,WAAW;IAO3B,OAAO,KAAK,eAAe,GAK1B;IAEK,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAU7D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAkBhE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAKhE,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9F,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAInG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAI/D,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAIlE,KAAK,CAAC,QAAQ,KAAA;CAGrB"}
@@ -16,3 +16,4 @@ export declare class ServiceLocalMem<KEY = any, DATA = any> extends CacheBase<KE
16
16
  peek(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<(DATA & {}) | undefined>;
17
17
  __getLayered(options?: TSummerCacheActionOptions<KEY, DATA>): ICacheLayeredBase<KEY, DATA>;
18
18
  }
19
+ //# sourceMappingURL=localMem_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localMem_.d.ts","sourceRoot":"","sources":["../../src/service/localMem_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBACa,eAAe,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAE,YAAW,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC;IACtH,OAAO,CAAC,iBAAiB,CAA0C;cAEnD,WAAW;IAO3B,IAAI,QAAQ,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAK1C;IAEK,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAiB7D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAkChE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3F,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAchG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAQ7D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAQhE,KAAK,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAQpD,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IASpE,YAAY,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC;CAO3F"}
@@ -16,3 +16,4 @@ export declare class ServiceLocalRedis<KEY = any, DATA = any> extends CacheBase<
16
16
  peek(key?: KEY, _options?: TSummerCacheActionOptions<KEY, DATA>): Promise<(Awaited<DATA> & {}) | undefined>;
17
17
  __getLayered(_options?: TSummerCacheActionOptions<KEY, DATA>): import("vona-module-a-summer").ServiceLocalFetch<KEY, DATA>;
18
18
  }
19
+ //# sourceMappingURL=localRedis_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localRedis_.d.ts","sourceRoot":"","sources":["../../src/service/localRedis_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBACa,iBAAiB,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAE,YAAW,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC;IACxH,OAAO,CAAC,mBAAmB,CAA4C;cAEvD,WAAW;IAO3B,IAAI,UAAU,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAK9C;IAEK,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAgB7D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAmChE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3F,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAShG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAI9D,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAIjE,KAAK,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAIrD,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;IAUrE,YAAY,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC;CAG7D"}
@@ -1,2 +1,3 @@
1
1
  export * from './localMem.ts';
2
2
  export * from './summerCache.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -3,3 +3,4 @@ declare module 'vona-module-a-summer' {
3
3
  }
4
4
  }
5
5
  export {};
6
+ //# sourceMappingURL=localMem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localMem.d.ts","sourceRoot":"","sources":["../../src/types/localMem.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAiB,eAAe;KAG/B;CACF"}
@@ -48,3 +48,4 @@ declare module 'vona' {
48
48
  summerCache: never;
49
49
  }
50
50
  }
51
+ //# sourceMappingURL=summerCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summerCache.d.ts","sourceRoot":"","sources":["../../src/types/summerCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9H,OAAO,KAAK,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;CAAG;AAEtC,MAAM,WAAW,eAAe,CAAC,GAAG,EAAE,IAAI;IACxC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAChG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB,CAAC,GAAG,EAAE,IAAI;IACzC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;CAC3G;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,4BAA6B,SAAQ,4BAA4B;IAChF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,GAAG,CAAC,EAAE,6BAA6B,CAAC;IACpC,KAAK,CAAC,EAAE,+BAA+B,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB,CAAC,GAAG,EAAE,IAAI;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAC/F,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;CAC1G;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,SAAS;QACxB,WAAW,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;KAC/C;CACF;AAED,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,YAAY;QAC3B,WAAW,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;KAC5C;IAED,UAAiB,gBAAgB;QAC/B,WAAW,EAAE,KAAK,CAAC;KACpB;CACF"}
package/package.json CHANGED
@@ -1,24 +1,17 @@
1
1
  {
2
2
  "name": "vona-module-a-summer",
3
- "type": "module",
4
- "version": "5.0.29",
5
- "title": "a-summer",
6
- "vonaModule": {
7
- "dependencies": {},
8
- "onions": {
9
- "summerCache": {
10
- "optionsGlobalInterfaceName": "IDecoratorSummerCacheOptions",
11
- "optionsGlobalInterfaceFrom": "vona-module-a-summer",
12
- "scopeResource": true,
13
- "boilerplate": "boilerplate"
14
- }
15
- }
16
- },
3
+ "version": "5.1.2",
17
4
  "description": "Layered Cache",
18
- "author": "zhennann",
19
5
  "keywords": [
20
6
  "Cabloy Module"
21
7
  ],
8
+ "author": "zhennann",
9
+ "files": [
10
+ "cli",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
22
15
  "exports": {
23
16
  ".": {
24
17
  "types": [
@@ -29,16 +22,28 @@
29
22
  },
30
23
  "./package.json": "./package.json"
31
24
  },
32
- "files": [
33
- "cli",
34
- "dist"
35
- ],
25
+ "scripts": {
26
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
27
+ "tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
28
+ "prepublishOnly": "npm run tsc:publish",
29
+ "prepack": "clean-package",
30
+ "postpack": "clean-package restore && npm run clean"
31
+ },
36
32
  "devDependencies": {
37
33
  "clean-package": "^2.2.0",
38
34
  "rimraf": "^6.0.1"
39
35
  },
40
- "scripts": {
41
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
42
- "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
43
- }
44
- }
36
+ "title": "a-summer",
37
+ "vonaModule": {
38
+ "dependencies": {},
39
+ "onions": {
40
+ "summerCache": {
41
+ "optionsGlobalInterfaceName": "IDecoratorSummerCacheOptions",
42
+ "optionsGlobalInterfaceFrom": "vona-module-a-summer",
43
+ "scopeResource": true,
44
+ "boilerplate": "boilerplate"
45
+ }
46
+ }
47
+ },
48
+ "gitHead": "a79189b882c17af5911573896a781bbb0046d37d"
49
+ }
@@ -0,0 +1,76 @@
1
+ // eslint-disable
2
+ /** bean: begin */
3
+ export * from '../bean/bean.summer.ts';
4
+ export * from '../bean/bean.summerCacheBase.ts';
5
+
6
+ import 'vona';
7
+ declare module 'vona' {
8
+
9
+
10
+ }
11
+ declare module 'vona-module-a-summer' {
12
+
13
+ export interface BeanSummer {
14
+ /** @internal */
15
+ get scope(): ScopeModuleASummer;
16
+ }
17
+ }
18
+ /** bean: end */
19
+ /** bean: begin */
20
+ import type { BeanSummer } from '../bean/bean.summer.ts';
21
+ import 'vona';
22
+ declare module 'vona' {
23
+ export interface IBeanRecordGlobal {
24
+ 'summer': BeanSummer;
25
+ }
26
+ }
27
+ /** bean: end */
28
+ /** service: begin */
29
+ export * from '../service/localFetch_.ts';
30
+ export * from '../service/localMem_.ts';
31
+ export * from '../service/localRedis_.ts';
32
+
33
+ import 'vona-module-a-bean';
34
+ declare module 'vona-module-a-bean' {
35
+
36
+
37
+ }
38
+ declare module 'vona-module-a-summer' {
39
+
40
+ }
41
+ /** service: end */
42
+ /** config: begin */
43
+ export * from '../config/config.ts';
44
+ import type { config } from '../config/config.ts';
45
+ /** config: end */
46
+ /** scope: begin */
47
+ import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig } from 'vona';
48
+ import { Scope } from 'vona-module-a-bean';
49
+
50
+ @Scope()
51
+ export class ScopeModuleASummer extends BeanScopeBase {}
52
+
53
+ export interface ScopeModuleASummer {
54
+ util: BeanScopeUtil;
55
+ config: TypeModuleConfig<typeof config>;
56
+ }
57
+
58
+ import 'vona';
59
+ declare module 'vona' {
60
+ export interface IBeanScopeRecord {
61
+ 'a-summer': ScopeModuleASummer;
62
+ }
63
+
64
+ export interface IBeanScopeContainer {
65
+ summer: ScopeModuleASummer;
66
+ }
67
+
68
+ export interface IBeanScopeConfig {
69
+ 'a-summer': ReturnType<typeof config>;
70
+ }
71
+
72
+
73
+
74
+
75
+ }
76
+ /** scope: end */
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-summer';
2
+ export { ScopeModuleASummer as ScopeModule } from './index.ts';
@@ -0,0 +1,16 @@
1
+ import { BeanBase } from 'vona';
2
+ import { Bean } from 'vona-module-a-bean';
3
+
4
+ import type { IDecoratorSummerCacheOptions } from '../types/summerCache.ts';
5
+
6
+ import { BeanSummerCacheBase } from './bean.summerCacheBase.ts';
7
+
8
+ @Bean()
9
+ export class BeanSummer extends BeanBase {
10
+ cache<KEY, DATA>(cacheName: string, cacheOptions?: IDecoratorSummerCacheOptions): BeanSummerCacheBase<KEY, DATA> {
11
+ if (cacheName.includes('.summerCache.')) {
12
+ return this.app.bean._getBeanSelector(cacheName as any, undefined, cacheOptions);
13
+ }
14
+ return this.app.bean._getBeanSelector(BeanSummerCacheBase, cacheName, cacheOptions);
15
+ }
16
+ }
@@ -0,0 +1,94 @@
1
+ import { deepExtend, Virtual } from 'vona';
2
+ import { Bean } from 'vona-module-a-bean';
3
+
4
+ import type { IDecoratorSummerCacheOptions, TSummerCacheActionOptions } from '../types/summerCache.ts';
5
+
6
+ import { CacheBase } from '../common/cacheBase.ts';
7
+
8
+ @Bean()
9
+ @Virtual()
10
+ export class BeanSummerCacheBase<KEY = any, DATA = any> extends CacheBase<KEY, DATA> {
11
+ protected __init__(cacheName?: string, cacheOptions?: IDecoratorSummerCacheOptions) {
12
+ let _cacheName: string;
13
+ let _cacheOptions: IDecoratorSummerCacheOptions;
14
+ if (cacheName) {
15
+ // dynamic
16
+ _cacheName = cacheName;
17
+ _cacheOptions = cacheOptions ?? {};
18
+ } else {
19
+ // summer cache
20
+ _cacheName = this.$beanFullName;
21
+ _cacheOptions = cacheOptions ?? (this.$beanOptions.options as IDecoratorSummerCacheOptions) ?? {};
22
+ }
23
+ // preset
24
+ let preset = _cacheOptions.preset;
25
+ if (!preset && !_cacheOptions.mode) preset = this.configModule.summer.presetDefault;
26
+ if (preset) {
27
+ const configPreset = this.configModule.summer.preset[preset];
28
+ // extend
29
+ _cacheOptions = deepExtend({}, configPreset, _cacheOptions, { preset: undefined });
30
+ }
31
+ // super
32
+ super.__init__(_cacheName, _cacheOptions);
33
+ }
34
+
35
+ async get(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined> {
36
+ const layered = this.__getLayered(options);
37
+ return await layered.get(key, options);
38
+ }
39
+
40
+ async mget(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<Array<DATA | undefined>> {
41
+ if (!keys || keys.length === 0) {
42
+ return [];
43
+ }
44
+ const layered = this.__getLayered(options);
45
+ return await layered.mget(keys, options);
46
+ }
47
+
48
+ async peek(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined> {
49
+ const layered = this.__getLayered(options);
50
+ return await layered.peek(key, options);
51
+ }
52
+
53
+ async set(value?: DATA, key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
54
+ const layered = this.__getLayered(options);
55
+ return await layered.set(value, key, options);
56
+ }
57
+
58
+ async mset(values: DATA[], keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
59
+ if (!keys || keys.length === 0) {
60
+ return;
61
+ }
62
+ const layered = this.__getLayered(options);
63
+ return await layered.mset(values, keys, options);
64
+ }
65
+
66
+ async del(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
67
+ const layered = this.__getLayered(options);
68
+ return await layered.del(key, options);
69
+ }
70
+
71
+ async mdel(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>) {
72
+ if (!keys || keys.length === 0) {
73
+ return;
74
+ }
75
+ const layered = this.__getLayered(options);
76
+ return await layered.mdel(keys, options);
77
+ }
78
+
79
+ async clear(options?: TSummerCacheActionOptions<KEY, DATA>) {
80
+ const layered = this.__getLayered(options);
81
+ return await layered.clear(options);
82
+ }
83
+
84
+ private __getLayered(options?: TSummerCacheActionOptions<KEY, DATA>) {
85
+ if (!this.__getOptionsEnabled(options)) {
86
+ return this.localFetch;
87
+ }
88
+ const mode = this.__getOptionsMode(options);
89
+ if (mode === 'all' || mode === 'mem') {
90
+ return this.localMem;
91
+ }
92
+ return this.localRedis;
93
+ }
94
+ }
@@ -0,0 +1,95 @@
1
+ import { BeanBase } from 'vona';
2
+
3
+ import type { ServiceLocalFetch } from '../service/localFetch_.ts';
4
+ import type { ServiceLocalMem } from '../service/localMem_.ts';
5
+ import type { ServiceLocalRedis } from '../service/localRedis_.ts';
6
+ import type { IDecoratorSummerCacheOptions, TSummerCacheActionOptions } from '../types/summerCache.ts';
7
+
8
+ import { __ThisModule__ } from '../.metadata/this.ts';
9
+
10
+ export class CacheBase<KEY = any, DATA = any> extends BeanBase {
11
+ protected _cacheName: string;
12
+ protected _cacheOptions: IDecoratorSummerCacheOptions;
13
+
14
+ protected _localMem: ServiceLocalMem<KEY, DATA> | undefined;
15
+ protected _localRedis: ServiceLocalRedis<KEY, DATA> | undefined;
16
+ protected _localFetch: ServiceLocalFetch<KEY, DATA> | undefined;
17
+
18
+ protected __init__(cacheName: string, cacheOptions: IDecoratorSummerCacheOptions) {
19
+ this._cacheName = cacheName;
20
+ this._cacheOptions = cacheOptions;
21
+ }
22
+
23
+ protected async __dispose__() {
24
+ // special for hmr reload
25
+ if (this._localMem) {
26
+ await this.bean._removeBean(this._localMem);
27
+ this._localMem = undefined;
28
+ }
29
+ if (this._localRedis) {
30
+ await this.bean._removeBean(this._localRedis);
31
+ this._localRedis = undefined;
32
+ }
33
+ if (this._localFetch) {
34
+ await this.bean._removeBean(this._localFetch);
35
+ this._localFetch = undefined;
36
+ }
37
+ }
38
+
39
+ protected get scopeSummer() {
40
+ return this.app.scope(__ThisModule__);
41
+ }
42
+
43
+ protected get configModule() {
44
+ return this.scopeSummer.config;
45
+ }
46
+
47
+ protected get localMem(): ServiceLocalMem<KEY, DATA> {
48
+ if (!this._localMem) {
49
+ this._localMem = this.app.bean._getBeanSelector(`${__ThisModule__}.service.localMem` as any, this._cacheName, this._cacheOptions);
50
+ }
51
+ return this._localMem!;
52
+ }
53
+
54
+ protected get localRedis(): ServiceLocalRedis<KEY, DATA> {
55
+ if (!this._localRedis) {
56
+ this._localRedis = this.app.bean._getBeanSelector(`${__ThisModule__}.service.localRedis` as any, this._cacheName, this._cacheOptions);
57
+ }
58
+ return this._localRedis!;
59
+ }
60
+
61
+ protected get localFetch(): ServiceLocalFetch<KEY, DATA> {
62
+ if (!this._localFetch) {
63
+ this._localFetch = this.app.bean._getBeanSelector(`${__ThisModule__}.service.localFetch` as any, this._cacheName, this._cacheOptions);
64
+ }
65
+ return this._localFetch!;
66
+ }
67
+
68
+ protected __getOptionsEnabled(options?: TSummerCacheActionOptions<KEY, DATA>) {
69
+ // enable/meta
70
+ const enable = options?.enable ?? this._cacheOptions.enable ?? this.scopeSummer.config.summer.enable;
71
+ const meta = this._cacheOptions.meta ?? this.scopeSummer.config.summer.meta;
72
+ if (!this.bean.onion.checkOnionOptionsEnabled({ enable, meta })) return false;
73
+ // default
74
+ return true;
75
+ }
76
+
77
+ protected __getOptionsMode(options?: TSummerCacheActionOptions<KEY, DATA>) {
78
+ return options?.mode ?? this._cacheOptions.mode ?? 'all';
79
+ }
80
+
81
+ protected __checkValueEmpty(value: DATA | null | undefined, options?: TSummerCacheActionOptions<KEY, DATA>) {
82
+ // undefined
83
+ if (value === undefined) return true;
84
+ // []
85
+ const emptyArrayAsNull = options?.emptyArrayAsNull ?? this._cacheOptions.emptyArrayAsNull ?? false;
86
+ if (emptyArrayAsNull && Array.isArray(value) && value.length === 0) {
87
+ value = null;
88
+ }
89
+ // null
90
+ const ignoreNull = options?.ignoreNull ?? this._cacheOptions.ignoreNull ?? false;
91
+ if (ignoreNull && value === null) return true;
92
+ // others
93
+ return false;
94
+ }
95
+ }
@@ -0,0 +1,12 @@
1
+ import type { TSummerCacheActionOptions } from '../types/summerCache.ts';
2
+
3
+ export interface ICacheLayeredBase<KEY, DATA> {
4
+ get(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined>;
5
+ mget(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<Array<DATA | undefined>>;
6
+ set(value?: DATA, key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
7
+ mset(values: DATA[], keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
8
+ del(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
9
+ mdel(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
10
+ clear(options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void>;
11
+ peek(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined>;
12
+ }
@@ -0,0 +1,48 @@
1
+ import type { VonaApplication } from 'vona';
2
+ import type { IOnionOptionsMeta } from 'vona-module-a-onion';
3
+
4
+ import type { IDecoratorSummerCacheOptions, TSummerCachePreset } from '../types/summerCache.ts';
5
+
6
+ export const configMem = {
7
+ mode: 'mem', // only mem
8
+ mem: {
9
+ max: 500,
10
+ broadcastOnSet: 'del',
11
+ },
12
+ } as IDecoratorSummerCacheOptions;
13
+
14
+ export const configRedis = {
15
+ mode: 'redis', // only redis
16
+ redis: {
17
+ ttl: 20 * 60 * 1000, // 20 minutes
18
+ },
19
+ } as IDecoratorSummerCacheOptions;
20
+
21
+ export const configAll = {
22
+ mode: 'all',
23
+ mem: {
24
+ max: 500,
25
+ broadcastOnSet: 'del',
26
+ },
27
+ redis: {
28
+ ttl: 20 * 60 * 1000, // 20 minutes
29
+ },
30
+ } as IDecoratorSummerCacheOptions;
31
+
32
+ export function config(_app: VonaApplication) {
33
+ return {
34
+ summer: {
35
+ enable: true,
36
+ meta: {} as IOnionOptionsMeta,
37
+ presetDefault: 'all' as TSummerCachePreset,
38
+ preset: {
39
+ mem: configMem,
40
+ redis: configRedis,
41
+ all: configAll,
42
+ },
43
+ redis: {
44
+ client: 'summer',
45
+ },
46
+ },
47
+ };
48
+ }
package/src/index.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './.metadata/index.ts';
2
+ export * from './lib/index.ts';
3
+ export * from './types/index.ts';
@@ -0,0 +1 @@
1
+ export * from './summerCache.ts';
@@ -0,0 +1,7 @@
1
+ import { createBeanDecorator } from 'vona';
2
+
3
+ import type { IDecoratorSummerCacheOptions } from '../types/summerCache.ts';
4
+
5
+ export function SummerCache(options?: IDecoratorSummerCacheOptions): ClassDecorator {
6
+ return createBeanDecorator('summerCache', options);
7
+ }
@@ -0,0 +1,79 @@
1
+ import { cast } from 'vona';
2
+ import { Service } from 'vona-module-a-bean';
3
+
4
+ import type { ICacheLayeredBase } from '../common/cacheLayeredBase.ts';
5
+ import type { ISummerCacheGet, ISummerCacheMGet, TSummerCacheActionOptions } from '../types/summerCache.ts';
6
+
7
+ import { CacheBase } from '../common/cacheBase.ts';
8
+
9
+ @Service()
10
+ export class ServiceLocalFetch<KEY = any, DATA = any> extends CacheBase<KEY, DATA> implements ICacheLayeredBase<KEY, DATA> {
11
+ private _cacheNativeInstance: CacheBase<KEY, DATA> | undefined;
12
+
13
+ protected async __dispose__() {
14
+ if (this._cacheNativeInstance) {
15
+ await this.bean._removeBean(this._cacheNativeInstance);
16
+ this._cacheNativeInstance = undefined;
17
+ }
18
+ }
19
+
20
+ private get cacheBeanNative(): CacheBase {
21
+ if (!this._cacheNativeInstance) {
22
+ this._cacheNativeInstance = this.app.bean._getBean(this._cacheName as any);
23
+ }
24
+ return this._cacheNativeInstance!;
25
+ }
26
+
27
+ async get(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
28
+ const fn_get = options?.get;
29
+ if (fn_get) {
30
+ return await fn_get(key, options);
31
+ } else if (cast<ISummerCacheGet<KEY, DATA>>(this.cacheBeanNative).getNative) {
32
+ return await cast<ISummerCacheGet<KEY, DATA>>(this.cacheBeanNative).getNative(key, options);
33
+ }
34
+ return undefined;
35
+ }
36
+
37
+ async mget(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>) {
38
+ // mget
39
+ const fn_mget = options?.mget;
40
+ if (fn_mget) {
41
+ return await fn_mget(keys, options);
42
+ }
43
+ const cacheBean = cast<ISummerCacheMGet<KEY, DATA> | undefined>(this.cacheBeanNative);
44
+ if (cacheBean?.mgetNative) {
45
+ return await cacheBean.mgetNative(keys, options);
46
+ }
47
+ // fallback
48
+ const values: Array<DATA | undefined> = [];
49
+ for (let i = 0; i < keys.length; i++) {
50
+ values.push(await this.get(keys[i], options));
51
+ }
52
+ return values;
53
+ }
54
+
55
+ async peek(_key?: KEY, _options?: TSummerCacheActionOptions<KEY, DATA>) {
56
+ // just return undefined
57
+ return undefined;
58
+ }
59
+
60
+ async set(_value?: DATA, _key?: KEY, _options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
61
+ // do nothing
62
+ }
63
+
64
+ async mset(_values: DATA[], _keys: KEY[], _options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
65
+ // do nothing
66
+ }
67
+
68
+ async del(_key?: KEY, _options?: TSummerCacheActionOptions<KEY, DATA>) {
69
+ // do nothing
70
+ }
71
+
72
+ async mdel(_keys: KEY[], _options?: TSummerCacheActionOptions<KEY, DATA>) {
73
+ // do nothing
74
+ }
75
+
76
+ async clear(_options) {
77
+ // do nothing
78
+ }
79
+ }
@@ -0,0 +1,147 @@
1
+ import type { BeanCacheMemBase } from 'vona-module-a-cache';
2
+
3
+ import { Service } from 'vona-module-a-bean';
4
+
5
+ import type { ICacheLayeredBase } from '../common/cacheLayeredBase.ts';
6
+ import type { TSummerCacheActionOptions } from '../types/summerCache.ts';
7
+
8
+ import { CacheBase } from '../common/cacheBase.ts';
9
+
10
+ @Service()
11
+ export class ServiceLocalMem<KEY = any, DATA = any> extends CacheBase<KEY, DATA> implements ICacheLayeredBase<KEY, DATA> {
12
+ private _cacheMemInstance: BeanCacheMemBase<KEY, DATA> | undefined;
13
+
14
+ protected async __dispose__() {
15
+ if (this._cacheMemInstance) {
16
+ await this.bean._removeBean(this._cacheMemInstance);
17
+ this._cacheMemInstance = undefined;
18
+ }
19
+ }
20
+
21
+ get cacheMem(): BeanCacheMemBase<KEY, DATA> {
22
+ if (!this._cacheMemInstance) {
23
+ this._cacheMemInstance = this.app.bean.cache.mem(this._cacheName, this._cacheOptions.mem);
24
+ }
25
+ return this._cacheMemInstance;
26
+ }
27
+
28
+ async get(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
29
+ const force = options?.force;
30
+ let value = force ? undefined : this.cacheMem.get(key, { ttl: options?.ttl, updateAgeOnGet: options?.updateAgeOnGet });
31
+ if (force || this.__checkValueEmpty(value, options)) {
32
+ const layered = this.__getLayered(options);
33
+ value = await layered.get(key, options);
34
+ if (value === undefined) value = null as any;
35
+ this.cacheMem.set(value!, key, {
36
+ ttl: options?.ttl,
37
+ db: options?.db,
38
+ disableTransactionCompensate: options?.disableTransactionCompensate,
39
+ broadcastOnSet: false,
40
+ });
41
+ }
42
+ return value === null ? undefined : value;
43
+ }
44
+
45
+ async mget(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>) {
46
+ const force = options?.force;
47
+ // mget
48
+ const values = force ? keys.map(() => undefined) : this.cacheMem.mget(keys, { ttl: options?.ttl, updateAgeOnGet: options?.updateAgeOnGet });
49
+ const keysMissing: any[] = [];
50
+ const indexesMissing: any[] = [];
51
+ for (let i = 0; i < values.length; i++) {
52
+ if (force || this.__checkValueEmpty(values[i], options)) {
53
+ keysMissing.push(keys[i]);
54
+ indexesMissing.push(i);
55
+ }
56
+ }
57
+ // mget
58
+ if (keysMissing.length > 0) {
59
+ const layered = this.__getLayered(options);
60
+ let valuesMissing = await layered.mget(keysMissing, options);
61
+ valuesMissing = valuesMissing.map(item => (item === undefined ? (null as any) : item));
62
+ // this.$logger.silly('-------mem:', valuesMissing);
63
+ // set/merge
64
+ this.cacheMem.mset(valuesMissing as any, keysMissing, {
65
+ ttl: options?.ttl,
66
+ db: options?.db,
67
+ disableTransactionCompensate: options?.disableTransactionCompensate,
68
+ broadcastOnSet: false,
69
+ });
70
+ for (let i = 0; i < keysMissing.length; i++) {
71
+ const valueMissing = valuesMissing[i];
72
+ values[indexesMissing[i]] = valueMissing;
73
+ }
74
+ }
75
+ // ok
76
+ return values.map(item => (item === null ? undefined : item));
77
+ }
78
+
79
+ async set(value?: DATA, key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
80
+ const value2 = value === undefined ? null : value;
81
+ // set
82
+ this.cacheMem.set(value2!, key, {
83
+ ttl: options?.ttl,
84
+ db: options?.db,
85
+ disableTransactionCompensate: options?.disableTransactionCompensate,
86
+ broadcastOnSet: options?.broadcastOnSet,
87
+ });
88
+ // set layered
89
+ const layered = this.__getLayered(options);
90
+ await layered.set(value, key, options);
91
+ }
92
+
93
+ async mset(values: DATA[], keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
94
+ const values2 = values.map(item => (item === undefined ? null : item));
95
+ // mset
96
+ this.cacheMem.mset(values2 as any, keys, {
97
+ ttl: options?.ttl,
98
+ db: options?.db,
99
+ disableTransactionCompensate: options?.disableTransactionCompensate,
100
+ broadcastOnSet: options?.broadcastOnSet,
101
+ });
102
+ // mset layered
103
+ const layered = this.__getLayered(options);
104
+ await layered.mset(values, keys, options);
105
+ }
106
+
107
+ async del(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
108
+ // del on this worker+broadcast
109
+ this.cacheMem.del(key);
110
+ // del layered
111
+ const layered = this.__getLayered(options);
112
+ await layered.del(key, options);
113
+ }
114
+
115
+ async mdel(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>) {
116
+ // del on this worker+broadcast
117
+ this.cacheMem.mdel(keys);
118
+ // del layered
119
+ const layered = this.__getLayered(options);
120
+ await layered.mdel(keys, options);
121
+ }
122
+
123
+ async clear(options?: TSummerCacheActionOptions<KEY, DATA>) {
124
+ // clear on this worker+broadcast
125
+ this.cacheMem.clear();
126
+ // clear layered
127
+ const layered = this.__getLayered(options);
128
+ await layered.clear(options);
129
+ }
130
+
131
+ async peek(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
132
+ let value = this.cacheMem.peek(key);
133
+ if (this.__checkValueEmpty(value, options)) {
134
+ const layered = this.__getLayered(options);
135
+ value = await layered.peek(key, options);
136
+ }
137
+ return value === null ? undefined : value;
138
+ }
139
+
140
+ __getLayered(options?: TSummerCacheActionOptions<KEY, DATA>): ICacheLayeredBase<KEY, DATA> {
141
+ const mode = this.__getOptionsMode(options);
142
+ if (mode === 'all') {
143
+ return this.localRedis;
144
+ }
145
+ return this.localFetch;
146
+ }
147
+ }
@@ -0,0 +1,122 @@
1
+ import type { BeanCacheRedisBase } from 'vona-module-a-cache';
2
+
3
+ import { Service } from 'vona-module-a-bean';
4
+
5
+ import type { ICacheLayeredBase } from '../common/cacheLayeredBase.ts';
6
+ import type { TSummerCacheActionOptions } from '../types/summerCache.ts';
7
+
8
+ import { CacheBase } from '../common/cacheBase.ts';
9
+
10
+ @Service()
11
+ export class ServiceLocalRedis<KEY = any, DATA = any> extends CacheBase<KEY, DATA> implements ICacheLayeredBase<KEY, DATA> {
12
+ private _cacheRedisInstance: BeanCacheRedisBase<KEY, DATA> | undefined;
13
+
14
+ protected async __dispose__() {
15
+ if (this._cacheRedisInstance) {
16
+ await this.bean._removeBean(this._cacheRedisInstance);
17
+ this._cacheRedisInstance = undefined;
18
+ }
19
+ }
20
+
21
+ get cacheRedis(): BeanCacheRedisBase<KEY, DATA> {
22
+ if (!this._cacheRedisInstance) {
23
+ this._cacheRedisInstance = this.app.bean.cache.redis(this._cacheName, this._cacheOptions.redis);
24
+ }
25
+ return this._cacheRedisInstance;
26
+ }
27
+
28
+ async get(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) {
29
+ const force = options?.force;
30
+ let value = force ? undefined : await this.cacheRedis.get(key, { ttl: options?.ttl, updateAgeOnGet: options?.updateAgeOnGet });
31
+ if (force || this.__checkValueEmpty(value, options)) {
32
+ const layered = this.__getLayered(options);
33
+ value = await layered.get(key, options);
34
+ if (value === undefined) value = null as any;
35
+ await this.cacheRedis.set(value!, key, {
36
+ ttl: options?.ttl,
37
+ db: options?.db,
38
+ disableTransactionCompensate: options?.disableTransactionCompensate,
39
+ });
40
+ }
41
+ return value === null ? undefined : value;
42
+ }
43
+
44
+ async mget(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>) {
45
+ const force = options?.force;
46
+ // mget
47
+ const values = force
48
+ ? keys.map(() => undefined)
49
+ : await this.cacheRedis.mget(keys, { ttl: options?.ttl, updateAgeOnGet: options?.updateAgeOnGet });
50
+ const keysMissing: any[] = [];
51
+ const indexesMissing: any[] = [];
52
+ for (let i = 0; i < values.length; i++) {
53
+ if (force || this.__checkValueEmpty(values[i], options)) {
54
+ keysMissing.push(keys[i]);
55
+ indexesMissing.push(i);
56
+ }
57
+ }
58
+ // mget
59
+ if (keysMissing.length > 0) {
60
+ const layered = this.__getLayered(options);
61
+ let valuesMissing = await layered.mget(keysMissing, options);
62
+ valuesMissing = valuesMissing.map(item => (item === undefined ? (null as any) : item));
63
+ // this.$logger.silly('-------redis:', valuesMissing);
64
+ // set/merge
65
+ await this.cacheRedis.mset(valuesMissing as any, keysMissing, {
66
+ ttl: options?.ttl,
67
+ db: options?.db,
68
+ disableTransactionCompensate: options?.disableTransactionCompensate,
69
+ });
70
+ for (let i = 0; i < keysMissing.length; i++) {
71
+ const valueMissing = valuesMissing[i];
72
+ values[indexesMissing[i]] = valueMissing;
73
+ }
74
+ }
75
+ // ok
76
+ return values.map(item => (item === null ? undefined : item));
77
+ }
78
+
79
+ async set(value?: DATA, key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
80
+ const value2 = value === undefined ? null : value;
81
+ await this.cacheRedis.set(value2!, key, {
82
+ ttl: options?.ttl,
83
+ db: options?.db,
84
+ disableTransactionCompensate: options?.disableTransactionCompensate,
85
+ });
86
+ }
87
+
88
+ async mset(values: DATA[], keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<void> {
89
+ const values2 = values.map(item => (item === undefined ? null : item));
90
+ await this.cacheRedis.mset(values2 as any, keys, {
91
+ ttl: options?.ttl,
92
+ db: options?.db,
93
+ disableTransactionCompensate: options?.disableTransactionCompensate,
94
+ });
95
+ }
96
+
97
+ async del(key?: KEY, _options?: TSummerCacheActionOptions<KEY, DATA>) {
98
+ await this.cacheRedis.del(key);
99
+ }
100
+
101
+ async mdel(keys: KEY[], _options?: TSummerCacheActionOptions<KEY, DATA>) {
102
+ await this.cacheRedis.mdel(keys);
103
+ }
104
+
105
+ async clear(_options?: TSummerCacheActionOptions<KEY, DATA>) {
106
+ await this.cacheRedis.clear();
107
+ }
108
+
109
+ async peek(key?: KEY, _options?: TSummerCacheActionOptions<KEY, DATA>) {
110
+ const value = await this.cacheRedis.peek(key);
111
+ // need not call layered.peek
112
+ // if (this.__checkValueEmpty(value, options)) {
113
+ // const layered = this.__getLayered(options);
114
+ // value = await layered.peek(keyHash, key, options);
115
+ // }
116
+ return value === null ? undefined : value;
117
+ }
118
+
119
+ __getLayered(_options?: TSummerCacheActionOptions<KEY, DATA>) {
120
+ return this.localFetch;
121
+ }
122
+ }
@@ -0,0 +1,2 @@
1
+ export * from './localMem.ts';
2
+ export * from './summerCache.ts';
@@ -0,0 +1,8 @@
1
+ import type { ScopeModuleASummer } from '../.metadata/index.ts';
2
+
3
+ declare module 'vona-module-a-summer' {
4
+ export interface ServiceLocalMem {
5
+ /** @internal */
6
+ get scope(): ScopeModuleASummer;
7
+ }
8
+ }
@@ -0,0 +1,58 @@
1
+ import type { OmitNever } from 'vona';
2
+ import type { IDecoratorCacheMemOptionsBase, IDecoratorCacheRedisOptionsBase, TypeBroadcastOnSet } from 'vona-module-a-cache';
3
+ import type { ServiceOnion, TypeOnionOptionsEnableSimple } from 'vona-module-a-onion';
4
+ import type { ServiceDb } from 'vona-module-a-orm';
5
+
6
+ export interface ISummerCacheRecord {}
7
+
8
+ export interface ISummerCacheGet<KEY, DATA> {
9
+ getNative(key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined>;
10
+ getNative(key: KEY, options?: TSummerCacheActionOptions<KEY, DATA>): Promise<DATA | undefined>;
11
+ }
12
+
13
+ export interface ISummerCacheMGet<KEY, DATA> {
14
+ mgetNative(keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>): Promise<Array<DATA | undefined>>;
15
+ }
16
+
17
+ export type TSummerCachePreset = 'all' | 'mem' | 'redis';
18
+ export type TSummerCacheMode = 'all' | 'mem' | 'redis';
19
+
20
+ export interface IDecoratorSummerCacheOptions extends TypeOnionOptionsEnableSimple {
21
+ preset?: TSummerCachePreset;
22
+ mode?: TSummerCacheMode;
23
+ mem?: IDecoratorCacheMemOptionsBase;
24
+ redis?: IDecoratorCacheRedisOptionsBase;
25
+ ignoreNull?: boolean;
26
+ emptyArrayAsNull?: boolean;
27
+ }
28
+
29
+ export interface TSummerCacheActionOptions<KEY, DATA> {
30
+ enable?: boolean;
31
+ mode?: TSummerCacheMode;
32
+ ignoreNull?: boolean;
33
+ emptyArrayAsNull?: boolean;
34
+ db?: ServiceDb;
35
+ ttl?: number;
36
+ force?: boolean;
37
+ updateAgeOnGet?: boolean;
38
+ broadcastOnSet?: TypeBroadcastOnSet;
39
+ disableTransactionCompensate?: boolean;
40
+ get?: (key?: KEY, options?: TSummerCacheActionOptions<KEY, DATA>) => Promise<DATA | undefined>;
41
+ mget?: (keys: KEY[], options?: TSummerCacheActionOptions<KEY, DATA>) => Promise<Array<DATA | undefined>>;
42
+ }
43
+
44
+ declare module 'vona-module-a-onion' {
45
+ export interface BeanOnion {
46
+ summerCache: ServiceOnion<ISummerCacheRecord>;
47
+ }
48
+ }
49
+
50
+ declare module 'vona' {
51
+ export interface ConfigOnions {
52
+ summerCache: OmitNever<ISummerCacheRecord>;
53
+ }
54
+
55
+ export interface IBeanSceneRecord {
56
+ summerCache: never;
57
+ }
58
+ }