@tsed/platform-cache 7.79.4 → 7.80.0
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/lib/cjs/services/PlatformCache.js +2 -2
- package/lib/cjs/services/PlatformCache.js.map +1 -1
- package/lib/types-esm/decorators/useCache.d.ts +2 -0
- package/lib/types-esm/index.d.ts +12 -0
- package/lib/types-esm/interceptors/PlatformCacheInterceptor.d.ts +37 -0
- package/lib/types-esm/interfaces/PlatformCacheOptions.d.ts +25 -0
- package/lib/types-esm/interfaces/PlatformCachedObject.d.ts +7 -0
- package/lib/types-esm/interfaces/interfaces.d.ts +36 -0
- package/lib/types-esm/services/PlatformCache.d.ts +47 -0
- package/lib/types-esm/utils/getInterceptorOptions.d.ts +3 -0
- package/lib/types-esm/utils/getPrefix.d.ts +2 -0
- package/lib/types-esm/utils/isEndpoint.d.ts +2 -0
- package/package.json +22 -18
- package/vitest.config.mts +21 -0
- package/jest.config.js +0 -20
- package/lib/cjs/package.json +0 -3
- package/lib/esm/package.json +0 -3
- package/tsconfig.esm.json +0 -42
|
@@ -118,7 +118,7 @@ let PlatformCache = class PlatformCache {
|
|
|
118
118
|
* @param patterns
|
|
119
119
|
*/
|
|
120
120
|
async getMatchingKeys(patterns) {
|
|
121
|
-
const [keys, { default: micromatch }] = await Promise.all([this.keys(),
|
|
121
|
+
const [keys, { default: micromatch }] = await Promise.all([this.keys(), import("micromatch")]);
|
|
122
122
|
return micromatch(keys, patterns);
|
|
123
123
|
}
|
|
124
124
|
async deleteMatchingKeys(patterns) {
|
|
@@ -135,7 +135,7 @@ let PlatformCache = class PlatformCache {
|
|
|
135
135
|
async createCacheManager(settings) {
|
|
136
136
|
const { caches, store = "memory", ttl, ...props } = settings;
|
|
137
137
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
138
|
-
const { multiCaching, caching } = await
|
|
138
|
+
const { multiCaching, caching } = await import("cache-manager");
|
|
139
139
|
return caches?.length
|
|
140
140
|
? multiCaching(caches)
|
|
141
141
|
: caching(this.mapStore(store), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformCache.js","sourceRoot":"","sources":["../../../src/services/PlatformCache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlatformCache.js","sourceRoot":"","sources":["../../../src/services/PlatformCache.ts"],"names":[],"mappings":";;;;AAAA,qCAA+D;AAC/D,iCAAwE;AACxE,mDAAkF;AAClF,yCAAoC;AACpC,6CAA8C;AAI9C,wDAAgD;AAEhD,MAAM,kBAAkB,GAAG,CAAC,IAAW,EAAE,EAAE;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,uBAAS,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjG,CAAC,CAAC;AAKF,MAAM,OAAO,GAA+C,IAAI,+BAAiB,EAAE,CAAC;AAEpF;;GAEG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAa;IAEd,QAAQ,CAAgB;IAGxB,QAAQ,CAAkB;IAG1B,MAAM,CAAS;IAEzB,MAAM,CAA2B;IAEjC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAwB,OAAO,CAAC,CAAC;QAEnE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEtD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAChE;IACH,CAAC;IAED,SAAS,CAAC,MAAiB,EAAE,WAA4B;QACvD,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAwB,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAqC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACxG,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAM,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,MAAY,EAAE,UAAgB;QACzC,MAAM,GAAG,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAEtE,OAAO,IAAA,iBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,GAAW;QACb,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAClC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAI,GAAW,EAAE,KAAuB,EAAE,GAAY;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAI,GAAW,EAAE,UAAmC,EAAE;QACvD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAA,yBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAI,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAU,EAAE,OAA0B;QAC9D,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;SAClD;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,IAAS,EAAE,IAAyC;QACrF,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CACZ,GAAG,EACH;gBACE,GAAG,IAAI;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,EACD;gBACE,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CACF,CAAC;SACH;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,aAAa;QACb,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QACjB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YAChE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACvC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,MAAM,CAAC,IAAI,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE7F,OAAO,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAkC;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAC,YAAY,EAAE,IAAI,EAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC;IAC5C,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,QAA+B;QAChE,MAAM,EAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAC,GAAG,QAAQ,CAAC;QAC3D,6DAA6D;QAC7D,MAAM,EAAC,YAAY,EAAE,OAAO,EAAC,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAE9D,OAAO,MAAM,EAAE,MAAM;YACnB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;YACtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC5B,GAAG,KAAK;gBACR,GAAG;aACJ,CAAC,CAAC;IACT,CAAC;IAEO,QAAQ,CAAC,KAA+C;QAC9D,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,EAAE;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC;SACrB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAlLC;IAAC,IAAA,kBAAa,GAAE;;+CACkB;AAElC;IAAC,IAAA,WAAM,GAAE;sCACW,oBAAe;+CAAC;AAEpC;IAAC,IAAA,WAAM,GAAE;sCACS,eAAM;6CAAC;AARd,aAAa;IADzB,IAAA,WAAM,GAAE;GACI,aAAa,CAmLzB;AAnLY,sCAAa"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Automatically generated by @tsed/barrels.
|
|
3
|
+
*/
|
|
4
|
+
export * from "./decorators/useCache.js";
|
|
5
|
+
export * from "./interceptors/PlatformCacheInterceptor.js";
|
|
6
|
+
export * from "./interfaces/interfaces.js";
|
|
7
|
+
export * from "./interfaces/PlatformCachedObject.js";
|
|
8
|
+
export * from "./interfaces/PlatformCacheOptions.js";
|
|
9
|
+
export * from "./services/PlatformCache.js";
|
|
10
|
+
export * from "./utils/getInterceptorOptions.js";
|
|
11
|
+
export * from "./utils/getPrefix.js";
|
|
12
|
+
export * from "./utils/isEndpoint.js";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseContext, InterceptorContext, InterceptorMethods, InterceptorNext } from "@tsed/di";
|
|
2
|
+
import { Logger } from "@tsed/logger";
|
|
3
|
+
import { PlatformCachedObject } from "../interfaces/PlatformCachedObject.js";
|
|
4
|
+
import { PlatformCacheOptions } from "../interfaces/PlatformCacheOptions.js";
|
|
5
|
+
import { PlatformCache } from "../services/PlatformCache.js";
|
|
6
|
+
/**
|
|
7
|
+
* @platform
|
|
8
|
+
*/
|
|
9
|
+
export declare class PlatformCacheInterceptor implements InterceptorMethods {
|
|
10
|
+
protected cache: PlatformCache;
|
|
11
|
+
protected logger: Logger;
|
|
12
|
+
protected prefix: string;
|
|
13
|
+
protected blacklist: string[];
|
|
14
|
+
intercept(context: InterceptorContext<any, PlatformCacheOptions>, next: InterceptorNext): unknown;
|
|
15
|
+
canRefreshInBackground(key: string, { refreshThreshold, ttl }: {
|
|
16
|
+
refreshThreshold?: number;
|
|
17
|
+
ttl: any;
|
|
18
|
+
}, next: Function): Promise<void>;
|
|
19
|
+
cacheMethod(context: InterceptorContext<any, PlatformCacheOptions>, next: InterceptorNext): Promise<any>;
|
|
20
|
+
cacheResponse(context: InterceptorContext<any, PlatformCacheOptions>, next: InterceptorNext): Promise<any>;
|
|
21
|
+
protected getArgs(context: InterceptorContext<unknown, PlatformCacheOptions>): any;
|
|
22
|
+
protected getOptions(context: InterceptorContext<any, PlatformCacheOptions>): {
|
|
23
|
+
key: string;
|
|
24
|
+
refreshThreshold: number | undefined;
|
|
25
|
+
ttl: import("../services/PlatformCache.js").Ttl | undefined;
|
|
26
|
+
type: any;
|
|
27
|
+
args: any;
|
|
28
|
+
collectionType: any;
|
|
29
|
+
keyArgs: string;
|
|
30
|
+
canCache: ((item: any) => boolean) | undefined;
|
|
31
|
+
$ctx: any;
|
|
32
|
+
};
|
|
33
|
+
protected hasKeyInQueue(key: string): Promise<boolean>;
|
|
34
|
+
protected addKeyToQueue(key: string): Promise<void>;
|
|
35
|
+
protected deleteKeyFromQueue(key: string): Promise<void>;
|
|
36
|
+
protected sendResponse(cachedObject: PlatformCachedObject, $ctx: BaseContext): any;
|
|
37
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MetadataTypes } from "@tsed/core";
|
|
2
|
+
import { BaseContext } from "@tsed/di";
|
|
3
|
+
import type { Ttl } from "../services/PlatformCache.js";
|
|
4
|
+
export interface PlatformCacheOptions extends MetadataTypes {
|
|
5
|
+
/**
|
|
6
|
+
* key expiration ttl in seconds.
|
|
7
|
+
*/
|
|
8
|
+
ttl?: Ttl;
|
|
9
|
+
/**
|
|
10
|
+
* By default, the key is generated from the method name and the arguments passed to the method.
|
|
11
|
+
*/
|
|
12
|
+
prefix?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Algorithm used to generate the key. By default, the key is generated from the method name and the arguments passed to the method.
|
|
15
|
+
*/
|
|
16
|
+
key?: string | ((args: any[], ctx?: BaseContext) => string);
|
|
17
|
+
/**
|
|
18
|
+
* threshold to refresh the cache.
|
|
19
|
+
*/
|
|
20
|
+
refreshThreshold?: number;
|
|
21
|
+
/**
|
|
22
|
+
* The function determine if the result must be cached or not.
|
|
23
|
+
*/
|
|
24
|
+
canCache?: ((item: any) => boolean) | "no-nullish";
|
|
25
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { BaseContext } from "@tsed/di";
|
|
2
|
+
import type { Cache, CachingConfig, Store } from "cache-manager";
|
|
3
|
+
import { FactoryStore } from "cache-manager/dist/caching";
|
|
4
|
+
import type { CacheManager } from "../services/PlatformCache.js";
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Since 2022-11. Use FactoryStore instead.
|
|
7
|
+
*/
|
|
8
|
+
export type PlatformCacheLegacyStoreFactory = {
|
|
9
|
+
create(...args: any[]): Promise<Store | any> | Store | any;
|
|
10
|
+
};
|
|
11
|
+
export type PlatformCacheSettings<Config extends Record<string, any> = any, S extends Store = any> = CachingConfig<Config> & {
|
|
12
|
+
caches?: Cache[];
|
|
13
|
+
store?: "memory" | Store | PlatformCacheLegacyStoreFactory | FactoryStore<S, Config>;
|
|
14
|
+
max?: number;
|
|
15
|
+
keyResolver?: (args: any[], ctx: BaseContext) => string;
|
|
16
|
+
prefix?: string;
|
|
17
|
+
/**
|
|
18
|
+
* List of headers to ignore when caching the response. Default: ["content-length", "x-request-id", "cache-control", "vary", "content-encoding"]
|
|
19
|
+
*/
|
|
20
|
+
ignoreHeaders?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* You may pass in any other arguments these will be passed on to the `create` method of your store,
|
|
23
|
+
* otherwise they will be ignored.
|
|
24
|
+
*/
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
};
|
|
27
|
+
declare global {
|
|
28
|
+
namespace TsED {
|
|
29
|
+
interface Configuration {
|
|
30
|
+
cache?: PlatformCacheSettings | false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export interface OnCreateCacheManager {
|
|
35
|
+
$onCreateCacheManager(cache: CacheManager): void | Promise<void>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Type } from "@tsed/core";
|
|
2
|
+
import { Configuration, InjectorService } from "@tsed/di";
|
|
3
|
+
import { JsonDeserializerOptions } from "@tsed/json-mapper";
|
|
4
|
+
import { Logger } from "@tsed/logger";
|
|
5
|
+
import type { Cache, CachingConfig, MultiCache } from "cache-manager";
|
|
6
|
+
import { PlatformCacheSettings } from "../interfaces/interfaces.js";
|
|
7
|
+
import { PlatformCachedObject } from "../interfaces/PlatformCachedObject.js";
|
|
8
|
+
export type CacheManager = Cache | MultiCache;
|
|
9
|
+
export type Ttl = number | ((result: any) => number);
|
|
10
|
+
/**
|
|
11
|
+
* @platform
|
|
12
|
+
*/
|
|
13
|
+
export declare class PlatformCache {
|
|
14
|
+
#private;
|
|
15
|
+
protected settings: Configuration;
|
|
16
|
+
protected injector: InjectorService;
|
|
17
|
+
protected logger: Logger;
|
|
18
|
+
get cache(): CacheManager | undefined;
|
|
19
|
+
$onInit(): Promise<void>;
|
|
20
|
+
getKeysOf(target: Type<any>, propertyKey: string | symbol): Promise<string[]>;
|
|
21
|
+
disabled(): boolean;
|
|
22
|
+
defaultKeyResolver(): (args: any[], ctx?: any) => string;
|
|
23
|
+
defaultTtl(): Ttl;
|
|
24
|
+
calculateTTL(result?: any, currentTtl?: Ttl): number;
|
|
25
|
+
ttl(key: string): Promise<void> | Promise<number>;
|
|
26
|
+
wrap<T>(key: string, fetch: () => Promise<T>, ttl?: number): Promise<T>;
|
|
27
|
+
get<T>(key: string, options?: JsonDeserializerOptions): Promise<T | undefined>;
|
|
28
|
+
set<T>(key: string, value: any, options?: CachingConfig<T>): Promise<T | undefined>;
|
|
29
|
+
getCachedObject(key: string): Promise<PlatformCachedObject | undefined>;
|
|
30
|
+
setCachedObject(key: string, data: any, opts: {
|
|
31
|
+
ttl: number;
|
|
32
|
+
} & Record<string, any>): Promise<void>;
|
|
33
|
+
del(key: string): Promise<void>;
|
|
34
|
+
reset(): Promise<void>;
|
|
35
|
+
keys(...args: any[]): Promise<string[]>;
|
|
36
|
+
deleteKeys(patterns: string): Promise<string[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Use micromatch instead native patterns. Use this method if the native store method doesn't support glob patterns
|
|
39
|
+
* @param patterns
|
|
40
|
+
*/
|
|
41
|
+
getMatchingKeys(patterns: string): Promise<string[]>;
|
|
42
|
+
deleteMatchingKeys(patterns: string): Promise<string[]>;
|
|
43
|
+
refresh(callback: () => Promise<any> | any): any;
|
|
44
|
+
isForceRefresh(): boolean;
|
|
45
|
+
protected createCacheManager(settings: PlatformCacheSettings): Promise<MultiCache | import("cache-manager").MemoryCache>;
|
|
46
|
+
private mapStore;
|
|
47
|
+
}
|
package/package.json
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/platform-cache",
|
|
3
|
-
"version": "7.79.4",
|
|
4
3
|
"description": "Platform cache module for Ts.ED Framework",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"version": "7.80.0",
|
|
5
6
|
"source": "./src/index.ts",
|
|
6
7
|
"main": "./lib/cjs/index.js",
|
|
7
8
|
"module": "./lib/esm/index.js",
|
|
8
9
|
"typings": "./lib/types/index.d.ts",
|
|
9
10
|
"exports": {
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./lib/types/index.d.ts",
|
|
13
|
+
"import": "./lib/esm/index.js",
|
|
14
|
+
"default": "./lib/cjs/index.js"
|
|
15
|
+
}
|
|
14
16
|
},
|
|
15
17
|
"scripts": {
|
|
16
18
|
"build": "yarn barrels && yarn build:ts",
|
|
17
|
-
"test": "
|
|
19
|
+
"test": "vitest run",
|
|
18
20
|
"barrels": "barrels",
|
|
19
|
-
"build:ts": "tsc --build tsconfig.json
|
|
21
|
+
"build:ts": "tsc --build tsconfig.json",
|
|
22
|
+
"test:ci": "vitest run --coverage.thresholds.autoUpdate=true"
|
|
20
23
|
},
|
|
21
24
|
"dependencies": {
|
|
22
25
|
"cache-manager": "^5.4.0",
|
|
@@ -24,21 +27,22 @@
|
|
|
24
27
|
"tslib": "2.6.1"
|
|
25
28
|
},
|
|
26
29
|
"devDependencies": {
|
|
27
|
-
"@tsed/barrels": "7.
|
|
28
|
-
"@tsed/core": "7.
|
|
29
|
-
"@tsed/di": "7.
|
|
30
|
-
"@tsed/json-mapper": "7.
|
|
31
|
-
"@tsed/schema": "7.
|
|
32
|
-
"@tsed/typescript": "7.
|
|
30
|
+
"@tsed/barrels": "7.80.0",
|
|
31
|
+
"@tsed/core": "7.80.0",
|
|
32
|
+
"@tsed/di": "7.80.0",
|
|
33
|
+
"@tsed/json-mapper": "7.80.0",
|
|
34
|
+
"@tsed/schema": "7.80.0",
|
|
35
|
+
"@tsed/typescript": "7.80.0",
|
|
33
36
|
"@types/micromatch": "^4.0.6",
|
|
34
37
|
"eslint": "^8.57.0",
|
|
35
|
-
"
|
|
38
|
+
"typescript": "4.9.5",
|
|
39
|
+
"vitest": "2.0.4"
|
|
36
40
|
},
|
|
37
41
|
"peerDependencies": {
|
|
38
|
-
"@tsed/core": "7.
|
|
39
|
-
"@tsed/di": "7.
|
|
40
|
-
"@tsed/json-mapper": "7.
|
|
41
|
-
"@tsed/schema": "7.
|
|
42
|
+
"@tsed/core": "7.80.0",
|
|
43
|
+
"@tsed/di": "7.80.0",
|
|
44
|
+
"@tsed/json-mapper": "7.80.0",
|
|
45
|
+
"@tsed/schema": "7.80.0"
|
|
42
46
|
},
|
|
43
47
|
"peerDependenciesMeta": {
|
|
44
48
|
"@tsed/core": {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import {presets} from "@tsed/vitest/presets";
|
|
3
|
+
import {defineConfig} from "vitest/config";
|
|
4
|
+
|
|
5
|
+
export default defineConfig(
|
|
6
|
+
{
|
|
7
|
+
...presets,
|
|
8
|
+
test: {
|
|
9
|
+
...presets.test,
|
|
10
|
+
coverage: {
|
|
11
|
+
...presets.test.coverage,
|
|
12
|
+
thresholds: {
|
|
13
|
+
statements: 0,
|
|
14
|
+
branches: 0,
|
|
15
|
+
functions: 0,
|
|
16
|
+
lines: 0
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
);
|
package/jest.config.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// For a detailed explanation regarding each configuration property, visit:
|
|
2
|
-
// https://jestjs.io/docs/en/configuration.html
|
|
3
|
-
const config = require("@tsed/jest-config");
|
|
4
|
-
|
|
5
|
-
module.exports = {
|
|
6
|
-
...config,
|
|
7
|
-
roots: ["<rootDir>/src", "<rootDir>/test"],
|
|
8
|
-
moduleNameMapper: {
|
|
9
|
-
...config.moduleNameMapper,
|
|
10
|
-
"@tsed/platform-cache": "<rootDir>/src/index.ts"
|
|
11
|
-
},
|
|
12
|
-
coverageThreshold: {
|
|
13
|
-
global: {
|
|
14
|
-
branches: 94.53,
|
|
15
|
-
functions: 100,
|
|
16
|
-
lines: 100,
|
|
17
|
-
statements: 100
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
};
|
package/lib/cjs/package.json
DELETED
package/lib/esm/package.json
DELETED
package/tsconfig.esm.json
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "@tsed/typescript/tsconfig.node.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"baseUrl": ".",
|
|
5
|
-
"module": "ES2020",
|
|
6
|
-
"rootDir": "src",
|
|
7
|
-
"outDir": "./lib/esm",
|
|
8
|
-
"declaration": true,
|
|
9
|
-
"declarationDir": "./lib/types",
|
|
10
|
-
"composite": true,
|
|
11
|
-
"noEmit": false
|
|
12
|
-
},
|
|
13
|
-
"include": ["src", "src/**/*.json"],
|
|
14
|
-
"exclude": [
|
|
15
|
-
"node_modules",
|
|
16
|
-
"test",
|
|
17
|
-
"lib",
|
|
18
|
-
"benchmark",
|
|
19
|
-
"coverage",
|
|
20
|
-
"spec",
|
|
21
|
-
"**/*.benchmark.ts",
|
|
22
|
-
"**/*.spec.ts",
|
|
23
|
-
"keys",
|
|
24
|
-
"jest.config.js",
|
|
25
|
-
"**/__mock__/**",
|
|
26
|
-
"webpack.config.js"
|
|
27
|
-
],
|
|
28
|
-
"references": [
|
|
29
|
-
{
|
|
30
|
-
"path": "../../core"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"path": "../../di"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"path": "../../specs/json-mapper"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"path": "../../specs/schema"
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
}
|