jcc-express-mvc 1.8.21 → 1.8.25
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/global.d.ts +1 -0
- package/lib/Application/ApplicationBuilder.d.ts.map +1 -1
- package/lib/Application/ApplicationBuilder.js +2 -0
- package/lib/Auth/Auth.d.ts +1 -1
- package/lib/Auth/Auth.js +1 -1
- package/lib/Auth/AuthMiddleware.js +1 -1
- package/lib/Cache/CacheFacade.d.ts +24 -0
- package/lib/Cache/CacheFacade.d.ts.map +1 -0
- package/lib/Cache/CacheFacade.js +60 -0
- package/lib/Cache/FileCacheDriver.d.ts +2 -0
- package/lib/Cache/FileCacheDriver.d.ts.map +1 -1
- package/lib/Cache/FileCacheDriver.js +18 -0
- package/lib/Cache/MemoryDriver.d.ts +2 -0
- package/lib/Cache/MemoryDriver.d.ts.map +1 -1
- package/lib/Cache/MemoryDriver.js +18 -0
- package/lib/Cache/RedisDriver.d.ts +3 -0
- package/lib/Cache/RedisDriver.d.ts.map +1 -1
- package/lib/Cache/RedisDriver.js +25 -2
- package/lib/Cache/TaggedCache.d.ts +5 -3
- package/lib/Cache/TaggedCache.d.ts.map +1 -1
- package/lib/Cache/TaggedCache.js +8 -2
- package/lib/Cache/index.d.ts +6 -17
- package/lib/Cache/index.d.ts.map +1 -1
- package/lib/Cache/index.js +82 -23
- package/lib/Command-Line/WatchCommand.d.ts.map +1 -1
- package/lib/Command-Line/WatchCommand.js +45 -4
- package/lib/Container/index.js +1 -1
- package/lib/Event/Event.d.ts.map +1 -1
- package/lib/Event/Event.js +10 -5
- package/lib/Global/helpers.d.ts.map +1 -1
- package/lib/Global/helpers.js +9 -7
- package/lib/Interface/index.d.ts +8 -0
- package/lib/Interface/index.d.ts.map +1 -1
- package/lib/Jcc-eloquent/lib/Builder.d.ts +2 -7
- package/lib/Jcc-eloquent/lib/Builder.d.ts.map +1 -1
- package/lib/Jcc-eloquent/lib/Builder.js +16 -61
- package/lib/Jcc-eloquent/lib/Database/index.js +1 -1
- package/lib/Mail/index.d.ts.map +1 -1
- package/lib/Mail/index.js +12 -1
- package/lib/Providers/CacheServiceProvider.d.ts +11 -0
- package/lib/Providers/CacheServiceProvider.d.ts.map +1 -0
- package/lib/Providers/CacheServiceProvider.js +34 -0
- package/lib/Request/FormRequest.d.ts +1 -1
- package/lib/Request/FormRequest.d.ts.map +1 -1
- package/lib/Request/FormRequest.js +5 -4
- package/lib/Response/index.d.ts +2 -1
- package/lib/Response/index.d.ts.map +1 -1
- package/lib/Response/index.js +7 -10
- package/lib/Routes/Route.d.ts +18 -12
- package/lib/Routes/Route.d.ts.map +1 -1
- package/lib/Routes/Route.js +32 -13
- package/lib/Routes/RouteBuilder.d.ts +4 -2
- package/lib/Routes/RouteBuilder.d.ts.map +1 -1
- package/lib/Routes/RouteBuilder.js +16 -17
- package/lib/Session/RedisSession.d.ts.map +1 -1
- package/lib/Session/RedisSession.js +3 -1
- package/lib/Templating-engine/index.d.ts.map +1 -1
- package/lib/Templating-engine/index.js +6 -2
- package/lib/Testing/Concerns/MakesHttpRequests.d.ts.map +1 -1
- package/lib/Testing/Concerns/MakesHttpRequests.js +2 -0
- package/lib/Testing/TestCase.d.ts +13 -2
- package/lib/Testing/TestCase.d.ts.map +1 -1
- package/lib/Testing/TestCase.js +29 -5
- package/lib/Testing/TestResponse.d.ts +18 -2
- package/lib/Testing/TestResponse.d.ts.map +1 -1
- package/lib/Testing/TestResponse.js +45 -9
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +16 -1
- package/package.json +1 -1
package/global.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationBuilder.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Application/ApplicationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicationBuilder.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Application/ApplicationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAW3C,qBAAa,kBAAkB;IACtB,GAAG,EAAE,WAAW,CAAC;gBAEZ,GAAG,EAAE,WAAW;IAIrB,UAAU,CAAC,MAAM,EAAE,GAAG;IAKtB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IActC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE;IAOtC,aAAa,CAClB,SAAS,EAAE,KAAK,CAAC,KAAK,GAAG,EAAE,WAAW,KAAK,eAAe,CAAC;IA0B7D,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAIjB,WAAW;IAKX,cAAc;IAWd,MAAM;CAKd"}
|
|
@@ -8,6 +8,7 @@ const helpers_1 = require("../Global/helpers");
|
|
|
8
8
|
const AuthServiceProvider_1 = require("../Providers/AuthServiceProvider");
|
|
9
9
|
const SessionServiceProvider_1 = require("../Providers/SessionServiceProvider");
|
|
10
10
|
const QueueServiceProvider_1 = require("../Queue/QueueServiceProvider");
|
|
11
|
+
const CacheServiceProvider_1 = require("../Providers/CacheServiceProvider");
|
|
11
12
|
class ApplicationBuilder {
|
|
12
13
|
constructor(app) {
|
|
13
14
|
this.app = app;
|
|
@@ -45,6 +46,7 @@ class ApplicationBuilder {
|
|
|
45
46
|
const chain = [
|
|
46
47
|
DatabaseServiceProvider_1.DatabaseServiceProvider,
|
|
47
48
|
SessionServiceProvider_1.SessionServiceProvider,
|
|
49
|
+
CacheServiceProvider_1.CacheServiceProvider,
|
|
48
50
|
...ordered,
|
|
49
51
|
QueueServiceProvider_1.QueueServiceProvider,
|
|
50
52
|
];
|
package/lib/Auth/Auth.d.ts
CHANGED
package/lib/Auth/Auth.js
CHANGED
|
@@ -68,7 +68,7 @@ class AuthMiddleware {
|
|
|
68
68
|
const token = req.cookies.auth_token;
|
|
69
69
|
if (token) {
|
|
70
70
|
if (!req.get("Referer")) {
|
|
71
|
-
if (req.previousUrls[0]
|
|
71
|
+
if (req.previousUrls?.length >= 2 && req.previousUrls[0] === req.url) {
|
|
72
72
|
return res.redirect(303, req.previousUrls[1]);
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TaggedCache } from "./TaggedCache";
|
|
2
|
+
/**
|
|
3
|
+
* static facade for cache operations.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CacheFacade {
|
|
6
|
+
static store(name?: string): import("../Interface").CacheDriver;
|
|
7
|
+
static get<T = any>(key: string, fallback?: T | (() => T) | (() => Promise<T>)): Promise<T | null>;
|
|
8
|
+
static put<T = any>(key: string, value: T, seconds?: number): Promise<void>;
|
|
9
|
+
static forget(key: string): Promise<boolean>;
|
|
10
|
+
static flush(): Promise<void>;
|
|
11
|
+
static forever<T = any>(key: string, value: T): Promise<void>;
|
|
12
|
+
static increment(key: string, value?: number): Promise<number>;
|
|
13
|
+
static decrement(key: string, value?: number): Promise<number>;
|
|
14
|
+
static many<T = any>(keys: string[]): Promise<Record<string, T | null>>;
|
|
15
|
+
static putMany(values: Record<string, any>, seconds?: number): Promise<void>;
|
|
16
|
+
static has(key: string): Promise<boolean>;
|
|
17
|
+
static remember<T = any>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
|
|
18
|
+
static rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
|
19
|
+
static pull<T = any>(key: string, fallback?: T | (() => T) | (() => Promise<T>)): Promise<T | null>;
|
|
20
|
+
static add<T = any>(key: string, value: T, seconds?: number): Promise<boolean>;
|
|
21
|
+
static tags(tags: string[]): TaggedCache;
|
|
22
|
+
}
|
|
23
|
+
export declare const CacheFacde: typeof CacheFacade;
|
|
24
|
+
//# sourceMappingURL=CacheFacade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheFacade.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/CacheFacade.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;WAIb,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;WAIP,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;WAIH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAItB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;WAItD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAIvD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAIvD,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;WAIvB,OAAO,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;WAIH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAIlC,QAAQ,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;WAIA,eAAe,CAAC,CAAC,GAAG,GAAG,EAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;WAIA,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;WAIP,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IAInB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW;CAGzC;AAGD,eAAO,MAAM,UAAU,oBAAc,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheFacde = exports.CacheFacade = void 0;
|
|
4
|
+
const index_1 = require("./index");
|
|
5
|
+
/**
|
|
6
|
+
* static facade for cache operations.
|
|
7
|
+
*/
|
|
8
|
+
class CacheFacade {
|
|
9
|
+
static store(name) {
|
|
10
|
+
return index_1.Cache.getInstance().store(name);
|
|
11
|
+
}
|
|
12
|
+
static async get(key, fallback) {
|
|
13
|
+
return index_1.Cache.getInstance().get(key, fallback);
|
|
14
|
+
}
|
|
15
|
+
static async put(key, value, seconds) {
|
|
16
|
+
return index_1.Cache.getInstance().put(key, value, seconds);
|
|
17
|
+
}
|
|
18
|
+
static async forget(key) {
|
|
19
|
+
return index_1.Cache.getInstance().forget(key);
|
|
20
|
+
}
|
|
21
|
+
static async flush() {
|
|
22
|
+
return index_1.Cache.getInstance().flush();
|
|
23
|
+
}
|
|
24
|
+
static async forever(key, value) {
|
|
25
|
+
return index_1.Cache.getInstance().forever(key, value);
|
|
26
|
+
}
|
|
27
|
+
static async increment(key, value) {
|
|
28
|
+
return index_1.Cache.getInstance().increment(key, value);
|
|
29
|
+
}
|
|
30
|
+
static async decrement(key, value) {
|
|
31
|
+
return index_1.Cache.getInstance().decrement(key, value);
|
|
32
|
+
}
|
|
33
|
+
static async many(keys) {
|
|
34
|
+
return index_1.Cache.getInstance().many(keys);
|
|
35
|
+
}
|
|
36
|
+
static async putMany(values, seconds) {
|
|
37
|
+
return index_1.Cache.getInstance().putMany(values, seconds);
|
|
38
|
+
}
|
|
39
|
+
static async has(key) {
|
|
40
|
+
return index_1.Cache.getInstance().has(key);
|
|
41
|
+
}
|
|
42
|
+
static async remember(key, seconds, callback) {
|
|
43
|
+
return index_1.Cache.getInstance().remember(key, seconds, callback);
|
|
44
|
+
}
|
|
45
|
+
static async rememberForever(key, callback) {
|
|
46
|
+
return index_1.Cache.getInstance().rememberForever(key, callback);
|
|
47
|
+
}
|
|
48
|
+
static async pull(key, fallback) {
|
|
49
|
+
return index_1.Cache.getInstance().pull(key, fallback);
|
|
50
|
+
}
|
|
51
|
+
static async add(key, value, seconds) {
|
|
52
|
+
return index_1.Cache.getInstance().add(key, value, seconds);
|
|
53
|
+
}
|
|
54
|
+
static tags(tags) {
|
|
55
|
+
return index_1.Cache.getInstance().tags(tags);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.CacheFacade = CacheFacade;
|
|
59
|
+
// Backwards-compatible alias for requested name typo.
|
|
60
|
+
exports.CacheFacde = CacheFacade;
|
|
@@ -18,6 +18,8 @@ export declare class FileDriver implements CacheDriver {
|
|
|
18
18
|
many(keys: string[]): Promise<Record<string, any>>;
|
|
19
19
|
putMany(values: Record<string, any>, seconds?: number): Promise<void>;
|
|
20
20
|
has(key: string): Promise<boolean>;
|
|
21
|
+
remember<T = any>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
|
|
22
|
+
rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
|
21
23
|
size(): Promise<number>;
|
|
22
24
|
cleanup(): Promise<number>;
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileCacheDriver.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/FileCacheDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,qBAAa,UAAW,YAAW,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;YAIhC,cAAc;IAQ5B,OAAO,CAAC,WAAW;YAML,aAAa;YAWb,cAAc;IAQtB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAc5C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAUlD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FileCacheDriver.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/FileCacheDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,qBAAa,UAAW,YAAW,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;YAIhC,cAAc;IAQ5B,OAAO,CAAC,WAAW;YAML,aAAa;YAWb,cAAc;IAQtB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAc5C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAUlD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,CAAC,CAAC,GAAG,GAAG,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAWP,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAYP,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IASvB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAoBjC"}
|
|
@@ -129,6 +129,24 @@ class FileDriver {
|
|
|
129
129
|
async has(key) {
|
|
130
130
|
return (await this.get(key)) !== null;
|
|
131
131
|
}
|
|
132
|
+
async remember(key, seconds, callback) {
|
|
133
|
+
const cached = await this.get(key);
|
|
134
|
+
if (cached !== null) {
|
|
135
|
+
return cached;
|
|
136
|
+
}
|
|
137
|
+
const value = await Promise.resolve(callback());
|
|
138
|
+
await this.put(key, value, seconds);
|
|
139
|
+
return value;
|
|
140
|
+
}
|
|
141
|
+
async rememberForever(key, callback) {
|
|
142
|
+
const cached = await this.get(key);
|
|
143
|
+
if (cached !== null) {
|
|
144
|
+
return cached;
|
|
145
|
+
}
|
|
146
|
+
const value = await Promise.resolve(callback());
|
|
147
|
+
await this.forever(key, value);
|
|
148
|
+
return value;
|
|
149
|
+
}
|
|
132
150
|
// Additional utility methods specific to file cache
|
|
133
151
|
async size() {
|
|
134
152
|
try {
|
|
@@ -11,5 +11,7 @@ export declare class MemoryDriver implements CacheDriver {
|
|
|
11
11
|
many(keys: string[]): Promise<Record<string, any>>;
|
|
12
12
|
putMany(values: Record<string, any>, seconds?: number): Promise<void>;
|
|
13
13
|
has(key: string): Promise<boolean>;
|
|
14
|
+
remember<T = any>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
|
|
15
|
+
rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=MemoryDriver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryDriver.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/MemoryDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,KAAK,CAA4D;IAEnE,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAY5C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAQlD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryDriver.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/MemoryDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,KAAK,CAA4D;IAEnE,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAY5C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAQlD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,CAAC,CAAC,GAAG,GAAG,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAWP,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;CAUd"}
|
|
@@ -52,5 +52,23 @@ class MemoryDriver {
|
|
|
52
52
|
async has(key) {
|
|
53
53
|
return (await this.get(key)) !== null;
|
|
54
54
|
}
|
|
55
|
+
async remember(key, seconds, callback) {
|
|
56
|
+
const cached = await this.get(key);
|
|
57
|
+
if (cached !== null) {
|
|
58
|
+
return cached;
|
|
59
|
+
}
|
|
60
|
+
const value = await Promise.resolve(callback());
|
|
61
|
+
await this.put(key, value, seconds);
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
async rememberForever(key, callback) {
|
|
65
|
+
const cached = await this.get(key);
|
|
66
|
+
if (cached !== null) {
|
|
67
|
+
return cached;
|
|
68
|
+
}
|
|
69
|
+
const value = await Promise.resolve(callback());
|
|
70
|
+
await this.forever(key, value);
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
55
73
|
}
|
|
56
74
|
exports.MemoryDriver = MemoryDriver;
|
|
@@ -18,5 +18,8 @@ export declare class RedisDriver implements CacheDriver {
|
|
|
18
18
|
many(keys: string[]): Promise<Record<string, any>>;
|
|
19
19
|
putMany(values: Record<string, any>, seconds?: number): Promise<void>;
|
|
20
20
|
has(key: string): Promise<boolean>;
|
|
21
|
+
disconnect(): Promise<void>;
|
|
22
|
+
remember<T = any>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
|
|
23
|
+
rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
|
21
24
|
}
|
|
22
25
|
//# sourceMappingURL=RedisDriver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/RedisDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/RedisDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,WAAY,YAAW,WAAW;IAC7C,OAAO,CAAC,MAAM,CAAM;gBAER,MAAM,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAYK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAM5C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAYlD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,QAAQ,CAAC,CAAC,GAAG,GAAG,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAWP,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;CAUd"}
|
package/lib/Cache/RedisDriver.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RedisDriver = void 0;
|
|
4
|
-
const redis_1 = require("redis");
|
|
5
4
|
class RedisDriver {
|
|
6
5
|
constructor(config) {
|
|
7
|
-
|
|
6
|
+
const redis = require("redis");
|
|
7
|
+
this.client = redis.createClient({
|
|
8
8
|
socket: {
|
|
9
9
|
host: config.host || "localhost",
|
|
10
10
|
port: config.port || 6379,
|
|
@@ -84,5 +84,28 @@ class RedisDriver {
|
|
|
84
84
|
const exists = await this.client.exists(key);
|
|
85
85
|
return exists > 0;
|
|
86
86
|
}
|
|
87
|
+
async disconnect() {
|
|
88
|
+
if (this.client.isOpen) {
|
|
89
|
+
await this.client.quit();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async remember(key, seconds, callback) {
|
|
93
|
+
const cached = await this.get(key);
|
|
94
|
+
if (cached !== null) {
|
|
95
|
+
return cached;
|
|
96
|
+
}
|
|
97
|
+
const value = await Promise.resolve(callback());
|
|
98
|
+
await this.put(key, value, seconds);
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
async rememberForever(key, callback) {
|
|
102
|
+
const cached = await this.get(key);
|
|
103
|
+
if (cached !== null) {
|
|
104
|
+
return cached;
|
|
105
|
+
}
|
|
106
|
+
const value = await Promise.resolve(callback());
|
|
107
|
+
await this.forever(key, value);
|
|
108
|
+
return value;
|
|
109
|
+
}
|
|
87
110
|
}
|
|
88
111
|
exports.RedisDriver = RedisDriver;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CacheManager } from ".";
|
|
2
2
|
export declare class TaggedCache {
|
|
3
3
|
private cache;
|
|
4
4
|
private tags;
|
|
5
|
-
constructor(cache:
|
|
5
|
+
constructor(cache: CacheManager, tags: string[]);
|
|
6
6
|
private getTaggedKey;
|
|
7
|
-
get<T = any>(key: string): Promise<T | null>;
|
|
7
|
+
get<T = any>(key: string, fallback?: T | (() => T) | (() => Promise<T>)): Promise<T | null>;
|
|
8
8
|
put<T = any>(key: string, value: T, seconds?: number): Promise<void>;
|
|
9
9
|
forget(key: string): Promise<boolean>;
|
|
10
10
|
flush(): Promise<void>;
|
|
11
|
+
remember<T = any>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
|
|
12
|
+
rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=TaggedCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedCache.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/TaggedCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TaggedCache.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/TaggedCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAEjC,qBAAa,WAAW;IACV,OAAO,CAAC,KAAK;IAAgB,OAAO,CAAC,IAAI;gBAAjC,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,MAAM,EAAE;IAE/D,OAAO,CAAC,YAAY;IAId,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI3F,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,QAAQ,CAAC,CAAC,GAAG,GAAG,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAIP,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;CAGd"}
|
package/lib/Cache/TaggedCache.js
CHANGED
|
@@ -9,8 +9,8 @@ class TaggedCache {
|
|
|
9
9
|
getTaggedKey(key) {
|
|
10
10
|
return `tagged:${this.tags.join(":")}:${key}`;
|
|
11
11
|
}
|
|
12
|
-
async get(key) {
|
|
13
|
-
return this.cache.get(this.getTaggedKey(key));
|
|
12
|
+
async get(key, fallback) {
|
|
13
|
+
return this.cache.get(this.getTaggedKey(key), fallback);
|
|
14
14
|
}
|
|
15
15
|
async put(key, value, seconds) {
|
|
16
16
|
await this.cache.put(this.getTaggedKey(key), value, seconds);
|
|
@@ -38,5 +38,11 @@ class TaggedCache {
|
|
|
38
38
|
await this.cache.forget(tagKey);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
async remember(key, seconds, callback) {
|
|
42
|
+
return this.cache.store().remember(this.getTaggedKey(key), seconds, callback);
|
|
43
|
+
}
|
|
44
|
+
async rememberForever(key, callback) {
|
|
45
|
+
return this.cache.store().rememberForever(this.getTaggedKey(key), callback);
|
|
46
|
+
}
|
|
41
47
|
}
|
|
42
48
|
exports.TaggedCache = TaggedCache;
|
package/lib/Cache/index.d.ts
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
import { CacheConfig } from "../Interface";
|
|
1
|
+
import { CacheConfig, CacheDriver } from "../Interface";
|
|
2
2
|
import { TaggedCache } from "./TaggedCache";
|
|
3
|
-
interface CacheStore<T> {
|
|
4
|
-
get(key: string): Promise<T | null>;
|
|
5
|
-
put(key: string, value: T, seconds?: number): Promise<void>;
|
|
6
|
-
forget(key: string): Promise<boolean>;
|
|
7
|
-
forever(key: string, value: T): Promise<void>;
|
|
8
|
-
flush(): Promise<void>;
|
|
9
|
-
many(keys: string[]): Promise<Record<string, T | null>>;
|
|
10
|
-
putMany(values: Record<string, T>, seconds?: number): Promise<void>;
|
|
11
|
-
has(key: string): Promise<boolean>;
|
|
12
|
-
increment(key: string, value?: number): Promise<number>;
|
|
13
|
-
decrement(key: string, value?: number): Promise<number>;
|
|
14
|
-
}
|
|
15
3
|
export declare class Cache {
|
|
16
4
|
private static instance;
|
|
17
5
|
private drivers;
|
|
@@ -19,8 +7,8 @@ export declare class Cache {
|
|
|
19
7
|
constructor(config: CacheConfig);
|
|
20
8
|
static getInstance(config?: CacheConfig): Cache;
|
|
21
9
|
private initializeDrivers;
|
|
22
|
-
store<T = any>(name?: string):
|
|
23
|
-
get<T>(key: string): Promise<T | null>;
|
|
10
|
+
store<T = any>(name?: string): CacheDriver;
|
|
11
|
+
get<T>(key: string, fallback?: T | (() => T) | (() => Promise<T>)): Promise<T | null>;
|
|
24
12
|
put<T>(key: string, value: T, seconds?: number): Promise<void>;
|
|
25
13
|
forget(key: string): Promise<boolean>;
|
|
26
14
|
flush(): Promise<void>;
|
|
@@ -32,9 +20,10 @@ export declare class Cache {
|
|
|
32
20
|
has(key: string): Promise<boolean>;
|
|
33
21
|
remember<T>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
|
|
34
22
|
rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
|
35
|
-
pull<T = any>(key: string): Promise<T | null>;
|
|
23
|
+
pull<T = any>(key: string, fallback?: T | (() => T) | (() => Promise<T>)): Promise<T | null>;
|
|
36
24
|
add<T = any>(key: string, value: T, seconds?: number): Promise<boolean>;
|
|
37
25
|
tags(tags: string[]): TaggedCache;
|
|
38
26
|
}
|
|
39
|
-
export {};
|
|
27
|
+
export { Cache as CacheManager };
|
|
28
|
+
export { CacheFacade, CacheFacde } from "./CacheFacade";
|
|
40
29
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/Cache/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB5C,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAQ;IAC/B,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAK/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK;IAa/C,OAAO,CAAC,iBAAiB;IA6BzB,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAYpC,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBd,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAO1D,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAeP,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAYP,IAAI,CAAC,CAAC,GAAG,GAAG,EAChB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IASd,GAAG,CAAC,CAAC,GAAG,GAAG,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IASnB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW;CAGlC;AACD,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
package/lib/Cache/index.js
CHANGED
|
@@ -1,9 +1,57 @@
|
|
|
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Cache = void 0;
|
|
36
|
+
exports.CacheFacde = exports.CacheFacade = exports.CacheManager = exports.Cache = void 0;
|
|
4
37
|
const MemoryDriver_1 = require("./MemoryDriver");
|
|
5
38
|
const RedisDriver_1 = require("./RedisDriver");
|
|
39
|
+
const FileCacheDriver_1 = require("./FileCacheDriver");
|
|
6
40
|
const TaggedCache_1 = require("./TaggedCache");
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
// CacheDriver is imported from ../Interface
|
|
43
|
+
const fallbackCacheConfig = {
|
|
44
|
+
default: "memory",
|
|
45
|
+
stores: {
|
|
46
|
+
memory: {
|
|
47
|
+
driver: "memory",
|
|
48
|
+
},
|
|
49
|
+
file: {
|
|
50
|
+
driver: "file",
|
|
51
|
+
cacheDir: path.join(process.cwd(), "storage/framework/cache"),
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
};
|
|
7
55
|
class Cache {
|
|
8
56
|
constructor(config) {
|
|
9
57
|
this.drivers = new Map();
|
|
@@ -11,11 +59,12 @@ class Cache {
|
|
|
11
59
|
this.initializeDrivers();
|
|
12
60
|
}
|
|
13
61
|
static getInstance(config) {
|
|
14
|
-
if (
|
|
15
|
-
if (!config) {
|
|
16
|
-
throw new Error("Cache configuration is required on first initialization");
|
|
17
|
-
}
|
|
62
|
+
if (config) {
|
|
18
63
|
Cache.instance = new Cache(config);
|
|
64
|
+
return Cache.instance;
|
|
65
|
+
}
|
|
66
|
+
if (!Cache.instance) {
|
|
67
|
+
Cache.instance = new Cache(fallbackCacheConfig);
|
|
19
68
|
}
|
|
20
69
|
return Cache.instance;
|
|
21
70
|
}
|
|
@@ -36,6 +85,9 @@ class Cache {
|
|
|
36
85
|
};
|
|
37
86
|
driver = new RedisDriver_1.RedisDriver(redisConfig);
|
|
38
87
|
break;
|
|
88
|
+
case "file":
|
|
89
|
+
driver = new FileCacheDriver_1.FileDriver({ cacheDir: storeConfig.cacheDir });
|
|
90
|
+
break;
|
|
39
91
|
default:
|
|
40
92
|
throw new Error(`Unsupported cache driver: ${storeConfig.driver}`);
|
|
41
93
|
}
|
|
@@ -51,11 +103,20 @@ class Cache {
|
|
|
51
103
|
return driver;
|
|
52
104
|
}
|
|
53
105
|
// Proxy methods to default store
|
|
54
|
-
async get(key) {
|
|
106
|
+
async get(key, fallback) {
|
|
55
107
|
if (!key) {
|
|
56
108
|
throw new Error("Cache key must be provided");
|
|
57
109
|
}
|
|
58
|
-
|
|
110
|
+
const value = await this.store().get(key);
|
|
111
|
+
if (value !== null && value !== undefined) {
|
|
112
|
+
return value;
|
|
113
|
+
}
|
|
114
|
+
if (fallback !== undefined) {
|
|
115
|
+
return typeof fallback === "function"
|
|
116
|
+
? await fallback()
|
|
117
|
+
: fallback;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
59
120
|
}
|
|
60
121
|
async put(key, value, seconds) {
|
|
61
122
|
if (!key) {
|
|
@@ -106,28 +167,22 @@ class Cache {
|
|
|
106
167
|
if (typeof callback !== "function") {
|
|
107
168
|
throw new Error("Callback must be a function");
|
|
108
169
|
}
|
|
109
|
-
|
|
110
|
-
if (cached !== null) {
|
|
111
|
-
return cached;
|
|
112
|
-
}
|
|
113
|
-
const value = await Promise.resolve(callback());
|
|
114
|
-
await this.put(key, value, seconds);
|
|
115
|
-
return value;
|
|
170
|
+
return this.store().remember(key, seconds, callback);
|
|
116
171
|
}
|
|
117
172
|
// Laravel-like rememberForever method
|
|
118
173
|
async rememberForever(key, callback) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return cached;
|
|
174
|
+
if (!key) {
|
|
175
|
+
throw new Error("Cache key must be provided");
|
|
122
176
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
177
|
+
if (typeof callback !== "function") {
|
|
178
|
+
throw new Error("Callback must be a function");
|
|
179
|
+
}
|
|
180
|
+
return this.store().rememberForever(key, callback);
|
|
126
181
|
}
|
|
127
182
|
// Laravel-like pull method (get and forget)
|
|
128
|
-
async pull(key) {
|
|
129
|
-
const value = await this.get(key);
|
|
130
|
-
if (value !== null) {
|
|
183
|
+
async pull(key, fallback) {
|
|
184
|
+
const value = await this.get(key, fallback);
|
|
185
|
+
if (value !== null && value !== undefined) {
|
|
131
186
|
await this.forget(key);
|
|
132
187
|
}
|
|
133
188
|
return value;
|
|
@@ -146,3 +201,7 @@ class Cache {
|
|
|
146
201
|
}
|
|
147
202
|
}
|
|
148
203
|
exports.Cache = Cache;
|
|
204
|
+
exports.CacheManager = Cache;
|
|
205
|
+
var CacheFacade_1 = require("./CacheFacade");
|
|
206
|
+
Object.defineProperty(exports, "CacheFacade", { enumerable: true, get: function () { return CacheFacade_1.CacheFacade; } });
|
|
207
|
+
Object.defineProperty(exports, "CacheFacde", { enumerable: true, get: function () { return CacheFacade_1.CacheFacde; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WatchCommand.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Command-Line/WatchCommand.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAQzB;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"WatchCommand.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Command-Line/WatchCommand.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAQzB;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAUlC;IACF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IAEtD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAO;IACvC,OAAO,CAAC,SAAS,CAAe;IAE1B,GAAG,CAAC,SAAS,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjD,OAAO,CAAC,eAAe;IAoDvB,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,aAAa;CAQtB"}
|