namirasoft-core 1.4.52 → 1.4.54
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/BaseMetaTable.d.ts +1 -1
- package/dist/BaseMetaTable.js.map +1 -1
- package/dist/CacheService.d.ts +2 -0
- package/dist/CacheService.js +18 -11
- package/dist/CacheService.js.map +1 -1
- package/dist/IStorageSession.d.ts +6 -0
- package/dist/IStorageSession.js +18 -0
- package/dist/IStorageSession.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/BaseMetaTable.ts +1 -1
- package/src/CacheService.ts +23 -12
- package/src/IStorageSession.ts +17 -0
- package/src/index.ts +1 -0
package/dist/BaseMetaTable.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare class BaseMetaTable {
|
|
|
8
8
|
[name: string]: BaseMetaColumn;
|
|
9
9
|
};
|
|
10
10
|
constructor(database: BaseMetaDatabase | null, name: string, text: string);
|
|
11
|
-
forEachColumn<T, MC extends BaseMetaColumn>(handler: (
|
|
11
|
+
forEachColumn<T, MC extends BaseMetaColumn>(handler: (column: MC) => T | null): T | null;
|
|
12
12
|
getColumns<MC extends BaseMetaColumn>(): MC[];
|
|
13
13
|
hasColumn(name: string): boolean;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMetaTable.js","sourceRoot":"","sources":["../src/BaseMetaTable.ts"],"names":[],"mappings":";;;AAGA,MAAa,aAAa;IAMtB,YAAY,QAAiC,EAAE,IAAY,EAAE,IAAY;QADlE,YAAO,GAAuC,EAAE,CAAC;QAGpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,aAAa,CAA+B,
|
|
1
|
+
{"version":3,"file":"BaseMetaTable.js","sourceRoot":"","sources":["../src/BaseMetaTable.ts"],"names":[],"mappings":";;;AAGA,MAAa,aAAa;IAMtB,YAAY,QAAiC,EAAE,IAAY,EAAE,IAAY;QADlE,YAAO,GAAuC,EAAE,CAAC;QAGpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,aAAa,CAA+B,OAAiC;QAEzE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAC9B,CAAC;YACG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,GAAG,GAAG,OAAO,CAAC,OAAa,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,IAAI;gBACX,OAAO,GAAG,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,UAAU;QAEN,IAAI,GAAG,GAAS,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE;YAE1B,GAAG,CAAC,IAAI,CAAC,MAAY,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,CAAC,IAAY;QAElB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACtC,CAAC;CACJ;AArCD,sCAqCC"}
|
package/dist/CacheService.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Mutex } from "async-mutex";
|
|
1
2
|
import { IStorage } from "./IStorage";
|
|
2
3
|
export declare class CacheService<DataType> {
|
|
3
4
|
private name;
|
|
@@ -6,6 +7,7 @@ export declare class CacheService<DataType> {
|
|
|
6
7
|
private getVersion;
|
|
7
8
|
private getFromSource;
|
|
8
9
|
onExpired?: () => void;
|
|
10
|
+
runGetOn?: Mutex;
|
|
9
11
|
constructor(name: string, storage: IStorage, duration_minutes: number, getVersion: () => Promise<string>, getFromSource: () => Promise<DataType>);
|
|
10
12
|
get(): Promise<DataType>;
|
|
11
13
|
set(data: DataType, version?: string): Promise<void>;
|
package/dist/CacheService.js
CHANGED
|
@@ -20,17 +20,24 @@ class CacheService {
|
|
|
20
20
|
}
|
|
21
21
|
get() {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
let
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
let innerGet = () => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
let version = yield this.getVersion();
|
|
25
|
+
let value = this.storage.get(this.name, "");
|
|
26
|
+
if (value) {
|
|
27
|
+
let cache = JSON.parse(value);
|
|
28
|
+
if (cache.version == version)
|
|
29
|
+
if (new Date(cache.expires_at) > new Date())
|
|
30
|
+
return cache.data;
|
|
31
|
+
}
|
|
32
|
+
let ans = yield this.getFromSource();
|
|
33
|
+
yield this.set(ans, version);
|
|
34
|
+
return ans;
|
|
35
|
+
});
|
|
36
|
+
if (this.runGetOn)
|
|
37
|
+
return yield this.runGetOn.runExclusive(() => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return yield innerGet();
|
|
39
|
+
}));
|
|
40
|
+
return yield innerGet();
|
|
34
41
|
});
|
|
35
42
|
}
|
|
36
43
|
set(data, version) {
|
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":";;;;;;;;;;;;AAUA,MAAa,YAAY;IASrB,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;IACvC,CAAC;IACK,GAAG;;YAEL,IAAI,QAAQ,GAAG,GAAS,EAAE;gBAEtB,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,KAAK,EACT,CAAC;oBACG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA2B,CAAC;oBACxD,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO;wBACxB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE;4BACvC,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC9B,CAAC;gBACD,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC7B,OAAO,GAAG,CAAC;YACf,CAAC,CAAA,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ;gBACb,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAS,EAAE;oBAE/C,OAAO,MAAM,QAAQ,EAAE,CAAC;gBAC5B,CAAC,CAAA,CAAC,CAAC;YACP,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC5B,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;YAEnC,IAAI,IAAI,CAAC,SAAS,EAClB,CAAC;gBACG,IAAI,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACxD,IAAI,KAAK,IAAI,CAAC;oBACV,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;gBACrB,UAAU,CAAC,GAAG,EAAE;;oBAEZ,MAAA,IAAI,CAAC,SAAS,oDAAI,CAAC;gBACvB,CAAC,EAAE,KAAK,CAAC,CAAC;YACd,CAAC;QACL,CAAC;KAAA;IACD,GAAG;QAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ;AAjED,oCAiEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IStorageSession = void 0;
|
|
4
|
+
const IStorage_js_1 = require("./IStorage.js");
|
|
5
|
+
class IStorageSession extends IStorage_js_1.IStorage {
|
|
6
|
+
get(name, defaultValue) {
|
|
7
|
+
var _a;
|
|
8
|
+
return (_a = sessionStorage.getItem(name)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
9
|
+
}
|
|
10
|
+
set(name, value) {
|
|
11
|
+
sessionStorage.setItem(name, value);
|
|
12
|
+
}
|
|
13
|
+
del(name) {
|
|
14
|
+
sessionStorage.removeItem(name);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.IStorageSession = IStorageSession;
|
|
18
|
+
//# sourceMappingURL=IStorageSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IStorageSession.js","sourceRoot":"","sources":["../src/IStorageSession.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AAEzC,MAAa,eAAgB,SAAQ,sBAAQ;IAEhC,GAAG,CAAC,IAAY,EAAE,YAAoB;;QAE3C,OAAO,MAAA,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,YAAY,CAAC;IACxD,CAAC;IACQ,GAAG,CAAC,IAAY,EAAE,KAAa;QAEpC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACQ,GAAG,CAAC,IAAY;QAErB,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACJ;AAdD,0CAcC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export * from "./IStorageCookie";
|
|
|
28
28
|
export * from "./IStorageJsonFile";
|
|
29
29
|
export * from "./IStorageLocal";
|
|
30
30
|
export * from "./IStorageMemory";
|
|
31
|
+
export * from "./IStorageSession";
|
|
31
32
|
export * from "./NamingConvention";
|
|
32
33
|
export * from "./ObjectService";
|
|
33
34
|
export * from "./PackageService";
|
package/dist/index.js
CHANGED
|
@@ -44,6 +44,7 @@ __exportStar(require("./IStorageCookie"), exports);
|
|
|
44
44
|
__exportStar(require("./IStorageJsonFile"), exports);
|
|
45
45
|
__exportStar(require("./IStorageLocal"), exports);
|
|
46
46
|
__exportStar(require("./IStorageMemory"), exports);
|
|
47
|
+
__exportStar(require("./IStorageSession"), exports);
|
|
47
48
|
__exportStar(require("./NamingConvention"), exports);
|
|
48
49
|
__exportStar(require("./ObjectService"), exports);
|
|
49
50
|
__exportStar(require("./PackageService"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,+CAA6B;AAC7B,6CAA2B;AAC3B,iDAA+B;AAC/B,qDAAmC;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,mDAAiC;AACjC,4CAA0B;AAC1B,qDAAmC;AACnC,sDAAoC;AACpC,wDAAsC;AACtC,+CAA6B;AAC7B,mDAAiC;AACjC,kDAAgC;AAChC,+CAA6B;AAC7B,yDAAuC;AACvC,uDAAqC;AACrC,iDAA+B;AAC/B,kDAAgC;AAChC,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,oDAAkC;AAClC,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC;AAClC,6CAA2B;AAC3B,oDAAkC;AAClC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,+CAA6B;AAC7B,6CAA2B;AAC3B,iDAA+B;AAC/B,qDAAmC;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,mDAAiC;AACjC,4CAA0B;AAC1B,qDAAmC;AACnC,sDAAoC;AACpC,wDAAsC;AACtC,+CAA6B;AAC7B,mDAAiC;AACjC,kDAAgC;AAChC,+CAA6B;AAC7B,yDAAuC;AACvC,uDAAqC;AACrC,iDAA+B;AAC/B,kDAAgC;AAChC,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,oDAAkC;AAClC,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC;AAClC,6CAA2B;AAC3B,oDAAkC;AAClC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC"}
|
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.54",
|
|
12
12
|
"author": "Amir Abolhasani",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"main": "./dist/index.js",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@types/node": "^22.13.9",
|
|
21
|
+
"async-mutex": "^0.5.0",
|
|
21
22
|
"axios": "^1.8.1",
|
|
22
23
|
"buffer": "^6.0.3",
|
|
23
24
|
"moment": "^2.30.1",
|
package/src/BaseMetaTable.ts
CHANGED
|
@@ -13,7 +13,7 @@ export class BaseMetaTable
|
|
|
13
13
|
this.name = name;
|
|
14
14
|
this.text = text;
|
|
15
15
|
}
|
|
16
|
-
forEachColumn<T, MC extends BaseMetaColumn>(handler: (
|
|
16
|
+
forEachColumn<T, MC extends BaseMetaColumn>(handler: (column: MC) => T | null): T | null
|
|
17
17
|
{
|
|
18
18
|
for (const key in this.columns)
|
|
19
19
|
{
|
package/src/CacheService.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Mutex } from "async-mutex";
|
|
1
2
|
import { IStorage } from "./IStorage";
|
|
2
3
|
|
|
3
|
-
interface
|
|
4
|
+
interface CacheStorage<DataType>
|
|
4
5
|
{
|
|
5
6
|
version?: string;
|
|
6
7
|
expires_at: Date;
|
|
@@ -15,6 +16,7 @@ export class CacheService<DataType>
|
|
|
15
16
|
private getVersion: () => Promise<string>;
|
|
16
17
|
private getFromSource: () => Promise<DataType>;
|
|
17
18
|
public onExpired?: () => void;
|
|
19
|
+
public runGetOn?: Mutex;
|
|
18
20
|
constructor(name: string, storage: IStorage, duration_minutes: number, getVersion: () => Promise<string>, getFromSource: () => Promise<DataType>)
|
|
19
21
|
{
|
|
20
22
|
this.name = name;
|
|
@@ -25,18 +27,27 @@ export class CacheService<DataType>
|
|
|
25
27
|
}
|
|
26
28
|
async get(): Promise<DataType>
|
|
27
29
|
{
|
|
28
|
-
let
|
|
29
|
-
let value = this.storage.get(this.name, "");
|
|
30
|
-
if (value)
|
|
30
|
+
let innerGet = async () =>
|
|
31
31
|
{
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
let version = await this.getVersion();
|
|
33
|
+
let value = this.storage.get(this.name, "");
|
|
34
|
+
if (value)
|
|
35
|
+
{
|
|
36
|
+
let cache = JSON.parse(value) as CacheStorage<DataType>;
|
|
37
|
+
if (cache.version == version)
|
|
38
|
+
if (new Date(cache.expires_at) > new Date())
|
|
39
|
+
return cache.data;
|
|
40
|
+
}
|
|
41
|
+
let ans = await this.getFromSource();
|
|
42
|
+
await this.set(ans, version);
|
|
43
|
+
return ans;
|
|
44
|
+
};
|
|
45
|
+
if (this.runGetOn)
|
|
46
|
+
return await this.runGetOn.runExclusive(async () =>
|
|
47
|
+
{
|
|
48
|
+
return await innerGet();
|
|
49
|
+
});
|
|
50
|
+
return await innerGet();
|
|
40
51
|
}
|
|
41
52
|
async set(data: DataType, version?: string)
|
|
42
53
|
{
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IStorage } from "./IStorage.js";
|
|
2
|
+
|
|
3
|
+
export class IStorageSession extends IStorage
|
|
4
|
+
{
|
|
5
|
+
override get(name: string, defaultValue: string)
|
|
6
|
+
{
|
|
7
|
+
return sessionStorage.getItem(name) ?? defaultValue;
|
|
8
|
+
}
|
|
9
|
+
override set(name: string, value: string)
|
|
10
|
+
{
|
|
11
|
+
sessionStorage.setItem(name, value);
|
|
12
|
+
}
|
|
13
|
+
override del(name: string)
|
|
14
|
+
{
|
|
15
|
+
sessionStorage.removeItem(name);
|
|
16
|
+
}
|
|
17
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -28,6 +28,7 @@ export * from "./IStorageCookie";
|
|
|
28
28
|
export * from "./IStorageJsonFile";
|
|
29
29
|
export * from "./IStorageLocal";
|
|
30
30
|
export * from "./IStorageMemory";
|
|
31
|
+
export * from "./IStorageSession";
|
|
31
32
|
export * from "./NamingConvention";
|
|
32
33
|
export * from "./ObjectService";
|
|
33
34
|
export * from "./PackageService";
|