jcc-express-mvc 1.8.22 → 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.
Files changed (44) hide show
  1. package/global.d.ts +1 -0
  2. package/lib/Application/ApplicationBuilder.d.ts.map +1 -1
  3. package/lib/Application/ApplicationBuilder.js +2 -0
  4. package/lib/Cache/CacheFacade.d.ts +24 -0
  5. package/lib/Cache/CacheFacade.d.ts.map +1 -0
  6. package/lib/Cache/CacheFacade.js +60 -0
  7. package/lib/Cache/FileCacheDriver.d.ts +2 -0
  8. package/lib/Cache/FileCacheDriver.d.ts.map +1 -1
  9. package/lib/Cache/FileCacheDriver.js +18 -0
  10. package/lib/Cache/MemoryDriver.d.ts +2 -0
  11. package/lib/Cache/MemoryDriver.d.ts.map +1 -1
  12. package/lib/Cache/MemoryDriver.js +18 -0
  13. package/lib/Cache/RedisDriver.d.ts +2 -0
  14. package/lib/Cache/RedisDriver.d.ts.map +1 -1
  15. package/lib/Cache/RedisDriver.js +20 -2
  16. package/lib/Cache/TaggedCache.d.ts +5 -3
  17. package/lib/Cache/TaggedCache.d.ts.map +1 -1
  18. package/lib/Cache/TaggedCache.js +8 -2
  19. package/lib/Cache/index.d.ts +6 -17
  20. package/lib/Cache/index.d.ts.map +1 -1
  21. package/lib/Cache/index.js +82 -23
  22. package/lib/Command-Line/WatchCommand.d.ts.map +1 -1
  23. package/lib/Command-Line/WatchCommand.js +45 -4
  24. package/lib/Container/index.js +1 -1
  25. package/lib/Global/helpers.d.ts.map +1 -1
  26. package/lib/Global/helpers.js +9 -7
  27. package/lib/Interface/index.d.ts +8 -0
  28. package/lib/Interface/index.d.ts.map +1 -1
  29. package/lib/Providers/CacheServiceProvider.d.ts +11 -0
  30. package/lib/Providers/CacheServiceProvider.d.ts.map +1 -0
  31. package/lib/Providers/CacheServiceProvider.js +34 -0
  32. package/lib/Request/FormRequest.d.ts +1 -1
  33. package/lib/Request/FormRequest.d.ts.map +1 -1
  34. package/lib/Request/FormRequest.js +4 -3
  35. package/lib/Routes/Route.d.ts +18 -12
  36. package/lib/Routes/Route.d.ts.map +1 -1
  37. package/lib/Routes/Route.js +32 -13
  38. package/lib/Routes/RouteBuilder.d.ts +4 -2
  39. package/lib/Routes/RouteBuilder.d.ts.map +1 -1
  40. package/lib/Routes/RouteBuilder.js +16 -17
  41. package/lib/util/index.d.ts +5 -0
  42. package/lib/util/index.d.ts.map +1 -1
  43. package/lib/util/index.js +16 -1
  44. package/package.json +1 -1
package/global.d.ts CHANGED
@@ -60,6 +60,7 @@ declare global {
60
60
  var can: typeof GateFacade.can;
61
61
  var authorize: typeof GateFacade.authorize;
62
62
  var session: () => Request["jccSession"];
63
+ var defer: (callback: () => any) => void;
63
64
  }
64
65
 
65
66
  export {};
@@ -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;AAU3C,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;IAyB7D,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAIjB,WAAW;IAKX,cAAc;IAWd,MAAM;CAKd"}
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
  ];
@@ -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;IAKlC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IASvB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAoBjC"}
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;CAGzC"}
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;
@@ -19,5 +19,7 @@ export declare class RedisDriver implements CacheDriver {
19
19
  putMany(values: Record<string, any>, seconds?: number): Promise<void>;
20
20
  has(key: string): Promise<boolean>;
21
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>;
22
24
  }
23
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;AAG3C,qBAAa,WAAY,YAAW,WAAW;IAC7C,OAAO,CAAC,MAAM,CAAkB;gBAEpB,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;IAWK,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;CAKlC"}
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"}
@@ -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
- this.client = (0, redis_1.createClient)({
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,
@@ -89,5 +89,23 @@ class RedisDriver {
89
89
  await this.client.quit();
90
90
  }
91
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
+ }
92
110
  }
93
111
  exports.RedisDriver = RedisDriver;
@@ -1,12 +1,14 @@
1
- import { Cache } from ".";
1
+ import { CacheManager } from ".";
2
2
  export declare class TaggedCache {
3
3
  private cache;
4
4
  private tags;
5
- constructor(cache: Cache, tags: string[]);
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,KAAK,EAAE,MAAM,GAAG,CAAC;AAE1B,qBAAa,WAAW;IACV,OAAO,CAAC,KAAK;IAAS,OAAO,CAAC,IAAI;gBAA1B,KAAK,EAAE,KAAK,EAAU,IAAI,EAAE,MAAM,EAAE;IAExD,OAAO,CAAC,YAAY;IAId,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI5C,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;CAa7B"}
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"}
@@ -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;
@@ -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): CacheStore<T>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Cache/index.ts"],"names":[],"mappings":"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"}
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"}
@@ -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 (!Cache.instance) {
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
- return this.store().get(key);
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
- const cached = await this.get(key);
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
- const cached = await this.get(key);
120
- if (cached !== null) {
121
- return cached;
174
+ if (!key) {
175
+ throw new Error("Cache key must be provided");
122
176
  }
123
- const value = await callback();
124
- await this.forever(key, value);
125
- return value;
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,CASlC;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;IAgCvB,OAAO,CAAC,uBAAuB;IAkB/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"}
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"}
@@ -14,13 +14,13 @@ class WatchCommand {
14
14
  constructor() {
15
15
  this.rootPath = app_root_path_1.default.path;
16
16
  this.ignoredDirs = new Set([
17
- "node_modules",
18
17
  "build",
19
18
  "dist",
20
19
  ".git",
21
20
  ".idea",
22
21
  ".vscode",
23
22
  "storage",
23
+ "node_modules",
24
24
  ]);
25
25
  this.defaultWatchTargets = [
26
26
  "app",
@@ -30,6 +30,7 @@ class WatchCommand {
30
30
  "jcc-express-mvc",
31
31
  "resources",
32
32
  "routes",
33
+ "route",
33
34
  "server.ts",
34
35
  ];
35
36
  this.rootFilesToWatch = new Set([".env"]);
@@ -69,16 +70,34 @@ class WatchCommand {
69
70
  // Ignore inaccessible directories
70
71
  }
71
72
  }
72
- // Watch specific root-level files (like .env) without broadly reacting to all root changes.
73
+ // Watch root-level changes: .env and other explicit files, new directories,
74
+ // and root-level .ts/.js files so new user-created folders are picked up
75
+ // automatically on the next restart via refreshWatchers().
73
76
  try {
74
77
  const rootWatcher = fs_1.default.watch(this.rootPath, (_eventType, filename) => {
75
78
  const name = filename?.toString();
76
79
  if (!name)
77
80
  return;
81
+ const fullPath = path_1.default.join(this.rootPath, name);
78
82
  const comparableName = process.platform === "win32" ? name.toLowerCase() : name;
79
- if (!this.rootFilesToWatch.has(comparableName))
83
+ // Always react to explicitly listed root files (e.g. .env).
84
+ if (this.rootFilesToWatch.has(comparableName)) {
85
+ this.onFileChanged(fullPath);
86
+ return;
87
+ }
88
+ // React to new directories or root-level TS/JS files.
89
+ // A restart will call refreshWatchers(), which auto-discovers the new dir.
90
+ if (this.ignoredDirs.has(name))
80
91
  return;
81
- this.onFileChanged(path_1.default.join(this.rootPath, name));
92
+ try {
93
+ const stat = fs_1.default.statSync(fullPath);
94
+ if (stat.isDirectory() || /\.(ts|js|mjs|cjs)$/.test(name)) {
95
+ this.onFileChanged(fullPath);
96
+ }
97
+ }
98
+ catch {
99
+ // File may have been deleted; ignore.
100
+ }
82
101
  });
83
102
  this.watchers.push(rootWatcher);
84
103
  }
@@ -88,10 +107,13 @@ class WatchCommand {
88
107
  }
89
108
  collectWatchDirectories() {
90
109
  const dirs = [];
110
+ const seenPaths = new Set();
111
+ // Walk all explicitly listed targets first.
91
112
  for (const target of this.defaultWatchTargets) {
92
113
  const absolutePath = path_1.default.join(this.rootPath, target);
93
114
  if (!fs_1.default.existsSync(absolutePath))
94
115
  continue;
116
+ seenPaths.add(absolutePath);
95
117
  const stat = fs_1.default.statSync(absolutePath);
96
118
  if (stat.isDirectory()) {
97
119
  this.walkDirectories(absolutePath, dirs);
@@ -100,6 +122,25 @@ class WatchCommand {
100
122
  dirs.push(path_1.default.dirname(absolutePath));
101
123
  }
102
124
  }
125
+ // Also auto-discover any root-level directories not in the explicit list.
126
+ // This means folders the user creates (e.g. services/, lib/) are picked up
127
+ // automatically on the next restart without any config change.
128
+ try {
129
+ const rootEntries = fs_1.default.readdirSync(this.rootPath, { withFileTypes: true });
130
+ for (const entry of rootEntries) {
131
+ if (!entry.isDirectory())
132
+ continue;
133
+ if (this.ignoredDirs.has(entry.name))
134
+ continue;
135
+ const absolutePath = path_1.default.join(this.rootPath, entry.name);
136
+ if (seenPaths.has(absolutePath))
137
+ continue;
138
+ this.walkDirectories(absolutePath, dirs);
139
+ }
140
+ }
141
+ catch {
142
+ // ignore unreadable root
143
+ }
103
144
  return Array.from(new Set(dirs));
104
145
  }
105
146
  walkDirectories(startDir, result) {
@@ -137,7 +137,7 @@ class Container {
137
137
  }
138
138
  // FormRequest must be instantiated with req - skip resolve to avoid double instantiation
139
139
  if (dep.type?.prototype instanceof FormRequest_1.FormRequest) {
140
- const requestInstance = new dep.type(req);
140
+ const requestInstance = this.make(dep.type); //new dep.type(req);
141
141
  await requestInstance.rules();
142
142
  return requestInstance;
143
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Global/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAmBzD,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,SAqH7C,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Global/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAoBzD,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,SAuH7C,CAAC"}
@@ -5,11 +5,12 @@ const Config_1 = require("../Config/Config");
5
5
  const Event_1 = require("../Event/Event");
6
6
  const Str_1 = require("../util/Str");
7
7
  const util_1 = require("../util");
8
+ const util_2 = require("../util");
8
9
  const Authorization_1 = require("../Authorization");
9
10
  const Date_1 = require("../Date");
10
11
  const index_1 = require("../Auth/index");
11
12
  const globalHelpers = (app) => {
12
- (0, util_1.assertProductionJwtSecret)();
13
+ (0, util_2.assertProductionJwtSecret)();
13
14
  globalThis.app = app;
14
15
  //
15
16
  globalThis.env = (key, defaultValue) => {
@@ -29,13 +30,13 @@ const globalHelpers = (app) => {
29
30
  globalThis.str = () => {
30
31
  return Str_1.Str;
31
32
  };
32
- globalThis.tap = util_1.tap;
33
+ globalThis.tap = util_2.tap;
33
34
  //
34
- globalThis.bcrypt = util_1.bcrypt;
35
- globalThis.verifyHash = util_1.verifyHash;
36
- globalThis.jwtSign = util_1.jwtSign;
37
- globalThis.jwtVerify = util_1.jwtVerify;
38
- globalThis.rootPath = util_1.rootPath;
35
+ globalThis.bcrypt = util_2.bcrypt;
36
+ globalThis.verifyHash = util_2.verifyHash;
37
+ globalThis.jwtSign = util_2.jwtSign;
38
+ globalThis.jwtVerify = util_2.jwtVerify;
39
+ globalThis.rootPath = util_2.rootPath;
39
40
  // Authorization helpers
40
41
  globalThis.can = async (user, ability, model, ...args) => {
41
42
  return Authorization_1.GateFacade.can(user, ability, model, ...args);
@@ -82,5 +83,6 @@ const globalHelpers = (app) => {
82
83
  globalThis.session = () => {
83
84
  return app.resolve("request")?.jccSession;
84
85
  };
86
+ globalThis.defer = util_1.defer;
85
87
  };
86
88
  exports.globalHelpers = globalHelpers;
@@ -218,6 +218,14 @@ export interface CacheDriver {
218
218
  many(keys: string[]): Promise<Record<string, any>>;
219
219
  putMany(values: Record<string, any>, seconds?: number): Promise<void>;
220
220
  has(key: string): Promise<boolean>;
221
+ remember<T = any>(key: string, seconds: number, callback: () => Promise<T> | T): Promise<T>;
222
+ rememberForever<T = any>(key: string, callback: () => Promise<T> | T): Promise<T>;
223
+ }
224
+ export interface CacheTagsManager {
225
+ get<T = any>(key: string): Promise<T | null>;
226
+ put<T = any>(key: string, value: T, seconds?: number): Promise<void>;
227
+ forget(key: string): Promise<boolean>;
228
+ flush(): Promise<void>;
221
229
  }
222
230
  export interface CacheConfig {
223
231
  default: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Interface/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Interface/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Application } from "../Application/Application";
2
+ import { ServiceProvider } from "./ServiceProvider";
3
+ /**
4
+ * Registers Cache from `app.config.cache` (Laravel-style: default + stores).
5
+ */
6
+ export declare class CacheServiceProvider extends ServiceProvider {
7
+ constructor(app: Application);
8
+ register(): void;
9
+ private mergeCacheConfig;
10
+ }
11
+ //# sourceMappingURL=CacheServiceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheServiceProvider.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Providers/CacheServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,eAAe;gBAC3C,GAAG,EAAE,WAAW;IAI5B,QAAQ,IAAI,IAAI;IAQhB,OAAO,CAAC,gBAAgB;CAgBzB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CacheServiceProvider = void 0;
4
+ const Cache_1 = require("../Cache");
5
+ const ServiceProvider_1 = require("./ServiceProvider");
6
+ /**
7
+ * Registers Cache from `app.config.cache` (Laravel-style: default + stores).
8
+ */
9
+ class CacheServiceProvider extends ServiceProvider_1.ServiceProvider {
10
+ constructor(app) {
11
+ super(app);
12
+ }
13
+ register() {
14
+ Cache_1.Cache.getInstance(this.mergeCacheConfig());
15
+ this.app.singleton("Cache", () => {
16
+ return this.app.resolve(Cache_1.Cache.name);
17
+ });
18
+ }
19
+ mergeCacheConfig() {
20
+ const raw = (this.app.config?.cache ?? {});
21
+ const stores = raw.stores ?? {
22
+ memory: { driver: "memory" },
23
+ file: {
24
+ driver: "file",
25
+ cacheDir: `${process.cwd()}/storage/framework/cache`,
26
+ },
27
+ };
28
+ return {
29
+ default: raw.default ?? "memory",
30
+ stores,
31
+ };
32
+ }
33
+ }
34
+ exports.CacheServiceProvider = CacheServiceProvider;
@@ -4,7 +4,7 @@ export declare abstract class FormRequest {
4
4
  protected req: AppRequest;
5
5
  private requestFile;
6
6
  private user;
7
- constructor(req: AppRequest);
7
+ constructor();
8
8
  /**
9
9
  *
10
10
  * @returns {boolean} - True if the request is authorized, false otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"FormRequest.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Request/FormRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,8BAAsB,WAAW;IAC/B,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,IAAI,CAAsB;gBACtB,GAAG,EAAE,UAAU;IAQ3B;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIlC;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrC;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,SAAS,CAAC,OAAO,IAAI,UAAU;IAI/B,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C;;;;OAIG;cACa,QAAQ,CACtB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAInC;;;;;OAKG;IACH,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM1C;;;;;OAKG;IACG,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC;IAO1C;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG;IAI5C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI5C;;;;;OAKG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIzC;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxC;;;;OAIG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;;;OAIG;IACH,EAAE,IAAI,MAAM,GAAG,SAAS;IAOxB;;;;OAIG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvC;;;;OAIG;IACH,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS;IAIxC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjC;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;OAIG;IACH,IAAI,IAAI,MAAM;CAGf"}
1
+ {"version":3,"file":"FormRequest.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Request/FormRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,8BAAsB,WAAW;IAC/B,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,IAAI,CAAsB;;IAUlC;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIlC;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrC;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,SAAS,CAAC,OAAO,IAAI,UAAU;IAI/B,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C;;;;OAIG;cACa,QAAQ,CACtB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAInC;;;;;OAKG;IACH,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM1C;;;;;OAKG;IACG,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC;IAO1C;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG;IAI5C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI5C;;;;;OAKG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIzC;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxC;;;;OAIG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;;;OAIG;IACH,EAAE,IAAI,MAAM,GAAG,SAAS;IAOxB;;;;OAIG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvC;;;;OAIG;IACH,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS;IAIxC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjC;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;OAIG;IACH,IAAI,IAAI,MAAM;CAGf"}
@@ -4,9 +4,10 @@ exports.FormRequest = void 0;
4
4
  const util_1 = require("../util");
5
5
  const AuthorizationException_1 = require("../Error/AuthorizationException");
6
6
  class FormRequest {
7
- constructor(req) {
8
- this.req = req;
9
- this.user = req?.user;
7
+ constructor() {
8
+ this.req = request();
9
+ this.user = request()?.user;
10
+ Object.assign(this, this.req.body);
10
11
  if (!this.authorize()) {
11
12
  throw new AuthorizationException_1.AuthorizationException("This action is unauthorized.");
12
13
  }
@@ -1,6 +1,11 @@
1
1
  import { RequestHandler } from "express";
2
2
  import { ResourceOption } from "../Interface/index";
3
3
  import { Constructor, MiddlewareInput, RouteHandler } from "../Type";
4
+ export declare class RouteEntry {
5
+ private index;
6
+ constructor(index: number);
7
+ middleware(input: MiddlewareInput): this;
8
+ }
4
9
  export declare class Route<T extends Record<string, RequestHandler>> {
5
10
  private static routeBuilder;
6
11
  /**
@@ -33,37 +38,38 @@ export declare class Route<T extends Record<string, RequestHandler>> {
33
38
  * @param {Function} callback - Callback function to handle the request.
34
39
  * @returns {Route} - Returns the route instance.
35
40
  */
36
- static get(url: string, callback: RouteHandler): void;
41
+ static get(url: string, callback: RouteHandler): RouteEntry;
37
42
  /**
38
43
  * Adds a route handler for POST requests.
39
44
  * @param {string} url - Route url.
40
45
  * @param {Function} callback - Callback function to handle the request.
41
- * @returns {Route} - Returns the route instance.
46
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
42
47
  */
43
- static post(url: string, callback: RouteHandler): void;
48
+ static post(url: string, callback: RouteHandler): RouteEntry;
44
49
  /**
45
50
  * Adds a route handler for PATCH requests.
46
51
  * @param {string} url - Route url.
47
52
  * @param {Function} callback - Callback function to handle the request.
48
- * @returns {Route} - Returns the route instance.
53
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
49
54
  */
50
- static patch(url: string, callback: RouteHandler): void;
55
+ static patch(url: string, callback: RouteHandler): RouteEntry;
51
56
  /**
52
57
  * Adds a route handler for PUT requests.
53
58
  * @param {string} url - Route path.
54
59
  * @param {Function} callback - Callback function to handle the request.
55
- * @returns {Route} - Returns the route instance.
60
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
56
61
  */
57
- static put(url: string, callback: RouteHandler): void;
62
+ static put(url: string, callback: RouteHandler): RouteEntry;
58
63
  /**
59
64
  * Adds a route handler for DELETE requests.
60
- * @param {string} path - Route path.
65
+ * @param {string} url - Route path.
61
66
  * @param {Function} callback - Callback function to handle the request.
62
- * @returns {Route} - Returns the route instance.
67
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
63
68
  */
64
- static delete(url: string, callback: RouteHandler): void;
65
- static view(url: string, view: string, data?: object): void;
66
- static resource(url: string, controller: Constructor<any>, option?: ResourceOption): void;
69
+ static delete(url: string, callback: RouteHandler): RouteEntry;
70
+ static view(url: string, view: string, data?: object): RouteEntry;
71
+ static inertia(url: string, component: string, props?: object): RouteEntry;
72
+ static resource(url: string, controller: Constructor<any>, option?: ResourceOption): typeof Route;
67
73
  static basePath(path: string): typeof Route;
68
74
  private static bindResourceMethods;
69
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Routes/Route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EACL,WAAW,EAGX,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IACzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAqC;IAEhE;;;;OAIG;WACW,UAAU,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,KAAK;IAOvD;;;;OAIG;WACW,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK;IAK/C;;;;OAIG;WACW,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,KAAK;IAKnE;;;;OAIG;WACW,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,IAAI,GAAG,OAAO,KAAK;IAQ3E;;;;;OAKG;WACW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAS5D;;;;;OAKG;WACW,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI7D;;;;;OAKG;WACW,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI9D;;;;;OAKG;WACW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI5D;;;;;OAKG;WACW,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;WAIjD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;WAM7C,QAAQ,CACpB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,EAC5B,MAAM,GAAE,cAAyC;WAarC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAMnC,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAOnC"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Routes/Route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EACL,WAAW,EAGX,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAEjC,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;CAIzC;AAED,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IACzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAqC;IAEhE;;;;OAIG;WACW,UAAU,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,KAAK;IAOvD;;;;OAIG;WACW,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK;IAK/C;;;;OAIG;WACW,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,KAAK;IAKnE;;;;OAIG;WACW,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,IAAI,GAAG,OAAO,KAAK;IAQ3E;;;;;OAKG;WACW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU;IAKlE;;;;;OAKG;WACW,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU;IAKnE;;;;;OAKG;WACW,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU;IAKpE;;;;;OAKG;WACW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU;IAKlE;;;;;OAKG;WACW,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU;WAKvD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;WAM1D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;WAMnE,QAAQ,CACpB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,EAC5B,MAAM,GAAE,cAAyC,GAChD,OAAO,KAAK;WAaD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAMnC,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAOnC"}
@@ -1,7 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Route = void 0;
3
+ exports.Route = exports.RouteEntry = void 0;
4
4
  const RouteBuilder_1 = require("./RouteBuilder");
5
+ class RouteEntry {
6
+ constructor(index) {
7
+ this.index = index;
8
+ }
9
+ middleware(input) {
10
+ RouteBuilder_1.RouteBuilder.applyMiddlewareToRoute(this.index, input);
11
+ return this;
12
+ }
13
+ }
14
+ exports.RouteEntry = RouteEntry;
5
15
  class Route {
6
16
  /**
7
17
  * Sets the controller for the routes.
@@ -50,51 +60,59 @@ class Route {
50
60
  * @returns {Route} - Returns the route instance.
51
61
  */
52
62
  static get(url, callback) {
53
- this.routeBuilder.buildRoute("get", url, callback
54
- // this.appMiddleware
55
- );
63
+ const index = RouteBuilder_1.RouteBuilder.buildRoute("get", url, callback);
64
+ return new RouteEntry(index);
56
65
  }
57
66
  /**
58
67
  * Adds a route handler for POST requests.
59
68
  * @param {string} url - Route url.
60
69
  * @param {Function} callback - Callback function to handle the request.
61
- * @returns {Route} - Returns the route instance.
70
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
62
71
  */
63
72
  static post(url, callback) {
64
- this.routeBuilder.buildRoute("post", url, callback);
73
+ const index = RouteBuilder_1.RouteBuilder.buildRoute("post", url, callback);
74
+ return new RouteEntry(index);
65
75
  }
66
76
  /**
67
77
  * Adds a route handler for PATCH requests.
68
78
  * @param {string} url - Route url.
69
79
  * @param {Function} callback - Callback function to handle the request.
70
- * @returns {Route} - Returns the route instance.
80
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
71
81
  */
72
82
  static patch(url, callback) {
73
- this.routeBuilder.buildRoute("patch", url, callback);
83
+ const index = RouteBuilder_1.RouteBuilder.buildRoute("patch", url, callback);
84
+ return new RouteEntry(index);
74
85
  }
75
86
  /**
76
87
  * Adds a route handler for PUT requests.
77
88
  * @param {string} url - Route path.
78
89
  * @param {Function} callback - Callback function to handle the request.
79
- * @returns {Route} - Returns the route instance.
90
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
80
91
  */
81
92
  static put(url, callback) {
82
- this.routeBuilder.buildRoute("put", url, callback);
93
+ const index = RouteBuilder_1.RouteBuilder.buildRoute("put", url, callback);
94
+ return new RouteEntry(index);
83
95
  }
84
96
  /**
85
97
  * Adds a route handler for DELETE requests.
86
- * @param {string} path - Route path.
98
+ * @param {string} url - Route path.
87
99
  * @param {Function} callback - Callback function to handle the request.
88
- * @returns {Route} - Returns the route instance.
100
+ * @returns {RouteEntry} - Returns the route entry instance for chaining.
89
101
  */
90
102
  static delete(url, callback) {
91
- this.routeBuilder.buildRoute("delete", url, callback);
103
+ const index = RouteBuilder_1.RouteBuilder.buildRoute("delete", url, callback);
104
+ return new RouteEntry(index);
92
105
  }
93
106
  static view(url, view, data) {
94
107
  return this.get(url, (req, res) => {
95
108
  return res.render(view, data);
96
109
  });
97
110
  }
111
+ static inertia(url, component, props) {
112
+ return this.get(url, (req, res) => {
113
+ return res.inertia(component, props);
114
+ });
115
+ }
98
116
  static resource(url, controller, option = { only: [], except: [] }) {
99
117
  RouteBuilder_1.RouteBuilder.startGroup();
100
118
  const methods = RouteBuilder_1.RouteBuilder.controllerMethods(url);
@@ -102,6 +120,7 @@ class Route {
102
120
  this.controller(controller);
103
121
  this.bindResourceMethods(acceptMethods || methods);
104
122
  RouteBuilder_1.RouteBuilder.endGroup();
123
+ return this;
105
124
  }
106
125
  static basePath(path) {
107
126
  this.routeBuilder.setBaseRoute(path);
@@ -18,9 +18,11 @@ export declare class RouteBuilder {
18
18
  static validateResourceOption(option: ResourceOption, methods: ObjectType): boolean | ObjectType;
19
19
  static setPrefix(prefix: string): void;
20
20
  private static replaceRouteParameters;
21
- static setMiddle(middleware: MiddlewareInput): number | RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>[] | undefined;
21
+ private static resolveMiddleware;
22
+ static setMiddle(middleware: MiddlewareInput): void;
23
+ static applyMiddlewareToRoute(index: number, middleware: MiddlewareInput): void;
22
24
  static setController(Controller: new (...args: any[]) => any): void;
23
- static buildRoute(httpMethod: HttpMethodType, url: string, callback: RouteHandler): void;
25
+ static buildRoute(httpMethod: HttpMethodType, url: string, callback: RouteHandler): number;
24
26
  static setServiceContainer(container: Application): void;
25
27
  protected static addRoute(url: string, method: HttpMethodType, callback: RouteHandler, middleware: RequestHandler | RequestHandler[]): any;
26
28
  protected static validateCallback(callback: RequestHandler | Array<any>): ExpressCallback;
@@ -1 +1 @@
1
- {"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Routes/RouteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAIL,cAAc,EACd,eAAe,EAEf,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,UAAU,EAEV,eAAe,EACf,UAAU,EACV,YAAY,EACb,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IACxD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwB;IACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAS;IACjC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkB;WAEzB,UAAU;WAKV,QAAQ;IAItB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAOpC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB;WAahD,YAAY,CAAC,GAAG,EAAE,MAAM;WAIxB,sBAAsB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,GAClB,OAAO,GAAG,UAAU;WAmBT,SAAS,CAAC,MAAM,EAAE,MAAM;IAItC,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAKvB,SAAS,CAAC,UAAU,EAAE,eAAe;WA4BrC,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;WAIrD,UAAU,CACtB,UAAU,EAAE,cAAc,EAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY;WA0BV,mBAAmB,CAAC,SAAS,EAAE,WAAW;IAIxD,SAAS,CAAC,MAAM,CAAC,QAAQ,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,GAC5C,GAAG;IASN,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAC/B,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GACpC,eAAe;IAwBlB,OAAO,CAAC,MAAM,CAAC,cAAc;WAgCf,aAAa,CAAC,GAAG,EAAE,kBAAkB;IAoCnD,WAAkB,SAAS,IAAI,UAAU,CAExC;CACF"}
1
+ {"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/Routes/RouteBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAIL,cAAc,EACd,eAAe,EAEf,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,UAAU,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACb,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IACxD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwB;IACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAS;IACjC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkB;WAEzB,UAAU;WAKV,QAAQ;IAItB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAOpC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB;WAahD,YAAY,CAAC,GAAG,EAAE,MAAM;WAIxB,sBAAsB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,GAClB,OAAO,GAAG,UAAU;WAmBT,SAAS,CAAC,MAAM,EAAE,MAAM;IAItC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAKrC,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAwBlB,SAAS,CAAC,UAAU,EAAE,eAAe;WAKrC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe;WAMjE,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;WAIrD,UAAU,CACtB,UAAU,EAAE,cAAc,EAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,GACrB,MAAM;WAkBK,mBAAmB,CAAC,SAAS,EAAE,WAAW;IAIxD,SAAS,CAAC,MAAM,CAAC,QAAQ,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,GAC5C,GAAG;IASN,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAC/B,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GACpC,eAAe;IAwBlB,OAAO,CAAC,MAAM,CAAC,cAAc;WAgCf,aAAa,CAAC,GAAG,EAAE,kBAAkB;IAoCnD,WAAkB,SAAS,IAAI,UAAU,CAExC;CACF"}
@@ -56,16 +56,15 @@ class RouteBuilder {
56
56
  const regex = /\{([^}]+)\}/g;
57
57
  return path.replace(regex, ":$1");
58
58
  }
59
- static setMiddle(middleware) {
59
+ static resolveMiddleware(middleware) {
60
60
  const Kernel = this.serviceContainer.resolve("HttpKernel");
61
61
  const middlewareAliases = Kernel.middlewareAliases;
62
- if (typeof middleware == "string") {
63
- const middlewareFn = middlewareAliases[middleware];
64
- return this.middleware.push(middlewareFn);
62
+ if (typeof middleware === "string") {
63
+ return [middlewareAliases[middleware]];
65
64
  }
66
65
  if (Array.isArray(middleware)) {
67
- const expressMiddleware = middleware.map((m) => {
68
- if (typeof m == "string") {
66
+ return middleware.map((m) => {
67
+ if (typeof m === "string") {
69
68
  if (middlewareAliases[m]) {
70
69
  return middlewareAliases[m];
71
70
  }
@@ -73,11 +72,17 @@ class RouteBuilder {
73
72
  }
74
73
  return m;
75
74
  });
76
- return (this.middleware = [...this.middleware, ...expressMiddleware]);
77
75
  }
78
- const expressMiddleware = middleware;
79
- this.middleware.push(expressMiddleware);
80
- return;
76
+ return [middleware];
77
+ }
78
+ static setMiddle(middleware) {
79
+ const resolved = this.resolveMiddleware(middleware);
80
+ this.middleware = [...this.middleware, ...resolved];
81
+ }
82
+ static applyMiddlewareToRoute(index, middleware) {
83
+ const resolved = this.resolveMiddleware(middleware);
84
+ const route = this.routes[index];
85
+ route.middlewares = [...route.middlewares, ...resolved];
81
86
  }
82
87
  static setController(Controller) {
83
88
  this.controller = Controller;
@@ -87,19 +92,13 @@ class RouteBuilder {
87
92
  const stackMiddleware = this.middlewareStack.flat();
88
93
  const currentMiddleware = this.middleware || [];
89
94
  const middleware = [...stackMiddleware, ...currentMiddleware];
90
- // We don't clear this.middleware here if we are inside a group,
91
- // but wait, if we are inside a group, the group middleware is in the stack.
92
- // The middleware set via .middleware() just before .get() (if any) is in this.middleware.
93
- // So we SHOULD clear this.middleware after using it for the current route,
94
- // because it applies only to this route (or group if startGroup was called).
95
- // If startGroup was called, this.middleware was moved to stack and cleared.
96
- // So here this.middleware contains only middleware specific to this single route definition.
97
95
  this.middleware = [];
98
96
  let handler = callback;
99
97
  if (RouteBuilder.controller && typeof callback == "string") {
100
98
  handler = [RouteBuilder.controller, callback];
101
99
  }
102
100
  this.addRoute(this.resolvePath(url), httpMethod, handler, middleware);
101
+ return this.routes.length - 1;
103
102
  }
104
103
  catch (error) {
105
104
  throw new AppError_1.AppError(error.message, error_1.ROUTE_BUILDER_ERROR);
@@ -165,4 +165,9 @@ export declare const extractQuery: (url: string) => {
165
165
  [k: string]: string;
166
166
  };
167
167
  export declare const JSInBuilTClass: (className: string) => boolean;
168
+ /**
169
+ * Defer
170
+ * @param callback
171
+ */
172
+ export declare const defer: (callback: () => any) => void;
168
173
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/util/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../jcc-express-mvc/lib/util/index.ts"],"names":[],"mappings":"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"}
package/lib/util/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.JSInBuilTClass = exports.extractQuery = exports.isModelInstance = exports.tap = exports.resolveModelBinding = exports.isSequelizeModel = exports.isMongooseModel = exports.findUserById = exports.pluralizeStr = exports.getJobClass = exports.cloudinaryUpload = exports.getModelFile = exports.asyncHandler = exports.capitalize = exports.saveImage = exports.jwtSubjectId = exports.jwtVerify = exports.jwtSign = exports.jwtTokenType = exports.verifyHash = exports.bcrypt = exports.getProvider = exports.getProviders = exports.getRoute = exports.getRequest = exports.getMiddleware = exports.getModel = exports.getApiController = exports.getController = exports.loadRoute = exports.loadRoutes = exports.rootPath = void 0;
6
+ exports.defer = exports.JSInBuilTClass = exports.extractQuery = exports.isModelInstance = exports.tap = exports.resolveModelBinding = exports.isSequelizeModel = exports.isMongooseModel = exports.findUserById = exports.pluralizeStr = exports.getJobClass = exports.cloudinaryUpload = exports.getModelFile = exports.asyncHandler = exports.capitalize = exports.saveImage = exports.jwtSubjectId = exports.jwtVerify = exports.jwtSign = exports.jwtTokenType = exports.verifyHash = exports.bcrypt = exports.getProvider = exports.getProviders = exports.getRoute = exports.getRequest = exports.getMiddleware = exports.getModel = exports.getApiController = exports.getController = exports.loadRoute = exports.loadRoutes = exports.rootPath = void 0;
7
7
  exports.authSessionCookieOptions = authSessionCookieOptions;
8
8
  exports.jwtLegacyAccessTokenRejected = jwtLegacyAccessTokenRejected;
9
9
  exports.checkJwtAccessTokenPayload = checkJwtAccessTokenPayload;
@@ -440,3 +440,18 @@ const JSInBuilTClass = (className) => {
440
440
  : false;
441
441
  };
442
442
  exports.JSInBuilTClass = JSInBuilTClass;
443
+ /**
444
+ * Defer
445
+ * @param callback
446
+ */
447
+ const defer = (callback) => {
448
+ response().on("finish", async () => {
449
+ try {
450
+ await callback();
451
+ }
452
+ catch (error) {
453
+ console.error(`Deferred task failed: ${error}`);
454
+ }
455
+ });
456
+ };
457
+ exports.defer = defer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jcc-express-mvc",
3
- "version": "1.8.22",
3
+ "version": "1.8.25",
4
4
  "description": "express mvc structure",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",