namirasoft-core 1.4.42 → 1.4.44

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.
@@ -1,12 +1,12 @@
1
1
  import { IStorage } from "./IStorage";
2
2
  export declare class CacheService<DataType> {
3
3
  private name;
4
- private duration_minutes;
5
4
  private storage;
5
+ private duration_minutes;
6
+ private getVersion;
6
7
  private getFromSource;
7
- private onExpired;
8
- constructor(name: string, duration_minutes: number, storage: IStorage, getFromSource: () => Promise<DataType>, onExpired: () => void);
8
+ constructor(name: string, storage: IStorage, duration_minutes: number, getVersion: () => Promise<string>, getFromSource: () => Promise<DataType>);
9
9
  get(): Promise<DataType>;
10
- set(data: DataType): void;
10
+ set(data: DataType, version?: string): Promise<void>;
11
11
  del(): void;
12
12
  }
@@ -11,39 +11,37 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CacheService = void 0;
13
13
  class CacheService {
14
- constructor(name, duration_minutes, storage, getFromSource, onExpired) {
14
+ constructor(name, storage, duration_minutes, getVersion, getFromSource) {
15
15
  this.name = name;
16
- this.duration_minutes = duration_minutes;
17
16
  this.storage = storage;
17
+ this.duration_minutes = duration_minutes;
18
+ this.getVersion = getVersion;
18
19
  this.getFromSource = getFromSource;
19
- this.onExpired = onExpired;
20
20
  }
21
21
  get() {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
- let ans;
23
+ let version = yield this.getVersion();
24
24
  let value = this.storage.get(this.name, "");
25
25
  if (value) {
26
26
  let cache = JSON.parse(value);
27
- if (new Date(cache.expires_at) > new Date())
28
- return cache.data;
27
+ if (cache.version == version)
28
+ if (new Date(cache.expires_at) > new Date())
29
+ return cache.data;
29
30
  }
30
- ans = yield this.getFromSource();
31
- this.set(ans);
31
+ let ans = yield this.getFromSource();
32
+ yield this.set(ans, version);
32
33
  return ans;
33
34
  });
34
35
  }
35
- set(data) {
36
- let expires_at = new Date();
37
- expires_at.setMinutes(expires_at.getMinutes() + this.duration_minutes);
38
- let value = JSON.stringify({ data, expires_at });
39
- this.storage.set(this.name, value);
40
- let sleep = expires_at.getTime() - new Date().getTime();
41
- if (sleep <= 0)
42
- sleep = 5 * 1000;
43
- setTimeout(() => {
44
- if (this.onExpired)
45
- this.onExpired();
46
- }, sleep);
36
+ set(data, version) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ if (!version)
39
+ version = yield this.getVersion();
40
+ let expires_at = new Date();
41
+ expires_at.setMinutes(expires_at.getMinutes() + this.duration_minutes);
42
+ let value = JSON.stringify({ data, version, expires_at });
43
+ this.storage.set(this.name, value);
44
+ });
47
45
  }
48
46
  del() {
49
47
  this.storage.del(this.name);
@@ -1 +1 @@
1
- {"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../src/CacheService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAa,YAAY;IAOrB,YAAY,IAAY,EAAE,gBAAwB,EAAE,OAAiB,EAAE,aAAsC,EAAE,SAAqB;QAEhI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACK,GAAG;;YAEL,IAAI,GAAa,CAAC;YAClB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,KAAK,EACT,CAAC;gBACG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA4B,CAAC;gBACzD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE;oBACvC,OAAO,KAAK,CAAC,IAAI,CAAC;YAC1B,CAAC;YACD,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IACD,GAAG,CAAC,IAAc;QAEd,IAAI,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnC,IAAI,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,KAAK,IAAI,CAAC;YACV,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;QACrB,UAAU,CAAC,GAAG,EAAE;YAEZ,IAAI,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IACD,GAAG;QAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ;AAjDD,oCAiDC"}
1
+ {"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../src/CacheService.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,MAAa,YAAY;IAQrB,YAAY,IAAY,EAAE,OAAiB,EAAE,gBAAwB,EAAE,UAAiC,EAAE,aAAsC;QAE5I,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IAEvC,CAAC;IACK,GAAG;;YAEL,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,KAAK,EACT,CAAC;gBACG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA4B,CAAC;gBACzD,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO;oBACxB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE;wBACvC,OAAO,KAAK,CAAC,IAAI,CAAC;YAC9B,CAAC;YACD,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IACK,GAAG,CAAC,IAAc,EAAE,OAAgB;;YAEtC,IAAI,CAAC,OAAO;gBACR,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC5B,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAUvC,CAAC;KAAA;IACD,GAAG;QAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ;AAtDD,oCAsDC"}
@@ -11,7 +11,6 @@ export declare class FilterItem {
11
11
  static decode(value: string): FilterItem[] | null;
12
12
  static stringify(filters: FilterItem[] | null): string;
13
13
  static parse(item: string | null): FilterItem[];
14
- static test(filters: FilterItem[] | null, object: any): boolean;
15
14
  constructor(table: BaseMetaTable, column: BaseMetaColumn, not: boolean, operator: FilterItemOperator, ...values: string[]);
16
15
  getCommand(): string;
17
16
  isAllColumns(): boolean;
@@ -55,14 +55,6 @@ class FilterItem {
55
55
  }
56
56
  return ans;
57
57
  }
58
- static test(filters, object) {
59
- if (filters) {
60
- if (object)
61
- return true;
62
- return false;
63
- }
64
- return true;
65
- }
66
58
  constructor(table, column, not, operator, ...values) {
67
59
  this.table = table;
68
60
  this.column = column;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterItem.js","sourceRoot":"","sources":["../src/FilterItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilterItem.js","sourceRoot":"","sources":["../src/FilterItem.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.42",
11
+ "version": "1.4.44",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -17,7 +17,7 @@
17
17
  "build": ""
18
18
  },
19
19
  "dependencies": {
20
- "@types/node": "^22.10.5",
20
+ "@types/node": "^22.10.10",
21
21
  "axios": "^1.7.9",
22
22
  "buffer": "^6.0.3",
23
23
  "moment": "^2.30.1",
@@ -2,6 +2,7 @@ import { IStorage } from "./IStorage";
2
2
 
3
3
  interface NSCachStorage<DataType>
4
4
  {
5
+ version?: string;
5
6
  expires_at: Date;
6
7
  data: DataType;
7
8
  }
@@ -9,47 +10,52 @@ interface NSCachStorage<DataType>
9
10
  export class CacheService<DataType>
10
11
  {
11
12
  private name: string;
12
- private duration_minutes: number;
13
13
  private storage: IStorage;
14
+ private duration_minutes: number;
15
+ private getVersion: () => Promise<string>;
14
16
  private getFromSource: () => Promise<DataType>;
15
- private onExpired: () => void;
16
- constructor(name: string, duration_minutes: number, storage: IStorage, getFromSource: () => Promise<DataType>, onExpired: () => void)
17
+ // private onExpired: () => void;
18
+ constructor(name: string, storage: IStorage, duration_minutes: number, getVersion: () => Promise<string>, getFromSource: () => Promise<DataType>)
17
19
  {
18
20
  this.name = name;
19
- this.duration_minutes = duration_minutes;
20
21
  this.storage = storage;
22
+ this.duration_minutes = duration_minutes;
23
+ this.getVersion = getVersion;
21
24
  this.getFromSource = getFromSource;
22
- this.onExpired = onExpired;
25
+ // this.onExpired = onExpired;
23
26
  }
24
27
  async get(): Promise<DataType>
25
28
  {
26
- let ans: DataType;
29
+ let version = await this.getVersion();
27
30
  let value = this.storage.get(this.name, "");
28
31
  if (value)
29
32
  {
30
33
  let cache = JSON.parse(value) as NSCachStorage<DataType>;
31
- if (new Date(cache.expires_at) > new Date())
32
- return cache.data;
34
+ if (cache.version == version)
35
+ if (new Date(cache.expires_at) > new Date())
36
+ return cache.data;
33
37
  }
34
- ans = await this.getFromSource();
35
- this.set(ans);
38
+ let ans = await this.getFromSource();
39
+ await this.set(ans, version);
36
40
  return ans;
37
41
  }
38
- set(data: DataType)
42
+ async set(data: DataType, version?: string)
39
43
  {
44
+ if (!version)
45
+ version = await this.getVersion();
40
46
  let expires_at = new Date();
41
47
  expires_at.setMinutes(expires_at.getMinutes() + this.duration_minutes);
42
- let value = JSON.stringify({ data, expires_at });
48
+ let value = JSON.stringify({ data, version, expires_at });
43
49
  this.storage.set(this.name, value);
44
50
  //
45
- let sleep = expires_at.getTime() - new Date().getTime();
46
- if (sleep <= 0)
47
- sleep = 5 * 1000;
48
- setTimeout(() =>
49
- {
50
- if (this.onExpired)
51
- this.onExpired();
52
- }, sleep);
51
+ // let sleep = expires_at.getTime() - new Date().getTime();
52
+ // if (sleep <= 0)
53
+ // sleep = 5 * 1000;
54
+ // setTimeout(() =>
55
+ // {
56
+ // if (this.onExpired)
57
+ // this.onExpired();
58
+ // }, sleep);
53
59
  }
54
60
  del()
55
61
  {
package/src/FilterItem.ts CHANGED
@@ -73,18 +73,6 @@ export class FilterItem
73
73
  }
74
74
  return ans;
75
75
  }
76
- public static test(filters: FilterItem[] | null, object: any): boolean
77
- {
78
- if (filters)
79
- {
80
- // todo
81
- if (object)
82
- return true;
83
- return false;
84
- // todo
85
- }
86
- return true;
87
- }
88
76
  constructor(table: BaseMetaTable, column: BaseMetaColumn, not: boolean, operator: FilterItemOperator, ...values: string[])
89
77
  {
90
78
  this.table = table;