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.
- package/dist/CacheService.d.ts +4 -4
- package/dist/CacheService.js +18 -20
- package/dist/CacheService.js.map +1 -1
- package/dist/FilterItem.d.ts +0 -1
- package/dist/FilterItem.js +0 -8
- package/dist/FilterItem.js.map +1 -1
- package/package.json +2 -2
- package/src/CacheService.ts +26 -20
- package/src/FilterItem.ts +0 -12
package/dist/CacheService.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
}
|
package/dist/CacheService.js
CHANGED
|
@@ -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,
|
|
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
|
|
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 (
|
|
28
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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);
|
package/dist/CacheService.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../src/CacheService.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
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"}
|
package/dist/FilterItem.d.ts
CHANGED
|
@@ -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;
|
package/dist/FilterItem.js
CHANGED
|
@@ -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;
|
package/dist/FilterItem.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
20
|
+
"@types/node": "^22.10.10",
|
|
21
21
|
"axios": "^1.7.9",
|
|
22
22
|
"buffer": "^6.0.3",
|
|
23
23
|
"moment": "^2.30.1",
|
package/src/CacheService.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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 (
|
|
32
|
-
|
|
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
|
-
|
|
48
|
-
setTimeout(() =>
|
|
49
|
-
{
|
|
50
|
-
|
|
51
|
-
|
|
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;
|