diginext-utils 3.12.11 → 3.13.1
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/cached/CacheManager.d.ts +21 -0
- package/dist/cached/CacheManager.js +119 -0
- package/dist/cached/CacheManager.js.map +1 -0
- package/dist/string/formatBytes.d.ts +1 -0
- package/dist/string/formatBytes.js +18 -0
- package/dist/string/formatBytes.js.map +1 -0
- package/esm/cached/CacheManager.d.ts +21 -0
- package/esm/cached/CacheManager.js +113 -0
- package/esm/cached/CacheManager.js.map +1 -0
- package/esm/string/formatBytes.d.ts +1 -0
- package/esm/string/formatBytes.js +15 -0
- package/esm/string/formatBytes.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface CacheEntry {
|
|
2
|
+
value: any;
|
|
3
|
+
lastAccessed: number;
|
|
4
|
+
maxAge: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ICacheManager {
|
|
7
|
+
maxCacheSize?: number;
|
|
8
|
+
}
|
|
9
|
+
export default class CacheManager {
|
|
10
|
+
private cache;
|
|
11
|
+
private MAX_CACHE_SIZE;
|
|
12
|
+
constructor(props?: ICacheManager);
|
|
13
|
+
get(id: string, updateLastAccessed?: boolean): any | undefined;
|
|
14
|
+
add(id: string, value: any, maxAge?: number): void;
|
|
15
|
+
private evictEntryOutdate;
|
|
16
|
+
private evictMaxAgeEntry;
|
|
17
|
+
update(id: string, value: Partial<CacheEntry>): void;
|
|
18
|
+
getRoughSize(): string;
|
|
19
|
+
private getRoughSizeOfObject;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const formatBytes_1 = __importDefault(require("../string/formatBytes"));
|
|
7
|
+
class CacheManager {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
this.MAX_CACHE_SIZE = 1000;
|
|
10
|
+
this.cache = new Map();
|
|
11
|
+
this.MAX_CACHE_SIZE = (props === null || props === void 0 ? void 0 : props.maxCacheSize) || 1000;
|
|
12
|
+
}
|
|
13
|
+
get(id, updateLastAccessed = true) {
|
|
14
|
+
try {
|
|
15
|
+
const entry = this.cache.get(id);
|
|
16
|
+
if (entry) {
|
|
17
|
+
const { lastAccessed, maxAge } = entry;
|
|
18
|
+
if (Date.now() - lastAccessed > maxAge) {
|
|
19
|
+
this.cache.delete(id);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (updateLastAccessed)
|
|
23
|
+
entry.lastAccessed = Date.now(); // Update last accessed time
|
|
24
|
+
return entry.value;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
throw new Error(`Access Cache failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
add(id, value, maxAge = Number.MAX_VALUE) {
|
|
33
|
+
try {
|
|
34
|
+
this.evictEntryOutdate();
|
|
35
|
+
this.cache.set(id, {
|
|
36
|
+
value,
|
|
37
|
+
lastAccessed: Date.now(),
|
|
38
|
+
maxAge,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
throw new Error(`Add To Cache failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
evictEntryOutdate() {
|
|
46
|
+
const oldestId = this.evictMaxAgeEntry();
|
|
47
|
+
if (this.cache.size >= this.MAX_CACHE_SIZE && oldestId) {
|
|
48
|
+
this.cache.delete(oldestId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
evictMaxAgeEntry() {
|
|
52
|
+
const now = Date.now();
|
|
53
|
+
//
|
|
54
|
+
let oldestId = null;
|
|
55
|
+
let oldestAccess = Number.MAX_VALUE;
|
|
56
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
57
|
+
if (entry.maxAge != Number.MAX_VALUE && now - entry.lastAccessed > entry.maxAge) {
|
|
58
|
+
this.cache.delete(key);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
if (entry.lastAccessed < oldestAccess) {
|
|
62
|
+
oldestAccess = entry.lastAccessed;
|
|
63
|
+
oldestId = key;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return oldestId;
|
|
68
|
+
}
|
|
69
|
+
update(id, value) {
|
|
70
|
+
try {
|
|
71
|
+
const now = Date.now();
|
|
72
|
+
const entry = this.cache.get(id);
|
|
73
|
+
if (entry) {
|
|
74
|
+
Object.assign(entry, value);
|
|
75
|
+
entry.lastAccessed = now;
|
|
76
|
+
this.cache.set(id, entry);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new Error(`Update Cache failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Function to get rough size of the Map
|
|
84
|
+
getRoughSize() {
|
|
85
|
+
let size = 0;
|
|
86
|
+
this.cache.forEach((value, key) => {
|
|
87
|
+
size += this.getRoughSizeOfObject(key);
|
|
88
|
+
size += this.getRoughSizeOfObject(value);
|
|
89
|
+
});
|
|
90
|
+
return (0, formatBytes_1.default)(size);
|
|
91
|
+
}
|
|
92
|
+
// Helper function to get rough size of an object
|
|
93
|
+
getRoughSizeOfObject(object) {
|
|
94
|
+
const objectList = new Set();
|
|
95
|
+
const stack = [object];
|
|
96
|
+
let bytes = 0;
|
|
97
|
+
while (stack.length) {
|
|
98
|
+
const value = stack.pop();
|
|
99
|
+
if (typeof value === "boolean") {
|
|
100
|
+
bytes += 4;
|
|
101
|
+
}
|
|
102
|
+
else if (typeof value === "string") {
|
|
103
|
+
bytes += value.length * 2;
|
|
104
|
+
}
|
|
105
|
+
else if (typeof value === "number") {
|
|
106
|
+
bytes += 8;
|
|
107
|
+
}
|
|
108
|
+
else if (typeof value === "object" && value !== null && !objectList.has(value)) {
|
|
109
|
+
objectList.add(value);
|
|
110
|
+
for (const i in value) {
|
|
111
|
+
stack.push(value[i]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return bytes;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.default = CacheManager;
|
|
119
|
+
//# sourceMappingURL=CacheManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/cached/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function formatBytes(bytes: number): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function formatBytes(bytes) {
|
|
4
|
+
//
|
|
5
|
+
try {
|
|
6
|
+
if (bytes === 0)
|
|
7
|
+
return "0 Bytes";
|
|
8
|
+
const k = 1024;
|
|
9
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
|
|
10
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
11
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
throw new Error(`Format Bytes failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = formatBytes;
|
|
18
|
+
//# sourceMappingURL=formatBytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatBytes.js","sourceRoot":"","sources":["../../src/string/formatBytes.ts"],"names":[],"mappings":";;AAAA,SAAwB,WAAW,CAAC,KAAa;IAChD,EAAE;IACF,IAAI;QACH,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACxE;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;KACpG;AACF,CAAC;AAXD,8BAWC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface CacheEntry {
|
|
2
|
+
value: any;
|
|
3
|
+
lastAccessed: number;
|
|
4
|
+
maxAge: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ICacheManager {
|
|
7
|
+
maxCacheSize?: number;
|
|
8
|
+
}
|
|
9
|
+
export default class CacheManager {
|
|
10
|
+
private cache;
|
|
11
|
+
private MAX_CACHE_SIZE;
|
|
12
|
+
constructor(props?: ICacheManager);
|
|
13
|
+
get(id: string, updateLastAccessed?: boolean): any | undefined;
|
|
14
|
+
add(id: string, value: any, maxAge?: number): void;
|
|
15
|
+
private evictEntryOutdate;
|
|
16
|
+
private evictMaxAgeEntry;
|
|
17
|
+
update(id: string, value: Partial<CacheEntry>): void;
|
|
18
|
+
getRoughSize(): string;
|
|
19
|
+
private getRoughSizeOfObject;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import formatBytes from "../string/formatBytes";
|
|
2
|
+
export default class CacheManager {
|
|
3
|
+
constructor(props) {
|
|
4
|
+
this.MAX_CACHE_SIZE = 1000;
|
|
5
|
+
this.cache = new Map();
|
|
6
|
+
this.MAX_CACHE_SIZE = (props === null || props === void 0 ? void 0 : props.maxCacheSize) || 1000;
|
|
7
|
+
}
|
|
8
|
+
get(id, updateLastAccessed = true) {
|
|
9
|
+
try {
|
|
10
|
+
const entry = this.cache.get(id);
|
|
11
|
+
if (entry) {
|
|
12
|
+
const { lastAccessed, maxAge } = entry;
|
|
13
|
+
if (Date.now() - lastAccessed > maxAge) {
|
|
14
|
+
this.cache.delete(id);
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
if (updateLastAccessed)
|
|
18
|
+
entry.lastAccessed = Date.now(); // Update last accessed time
|
|
19
|
+
return entry.value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw new Error(`Access Cache failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
add(id, value, maxAge = Number.MAX_VALUE) {
|
|
28
|
+
try {
|
|
29
|
+
this.evictEntryOutdate();
|
|
30
|
+
this.cache.set(id, {
|
|
31
|
+
value,
|
|
32
|
+
lastAccessed: Date.now(),
|
|
33
|
+
maxAge,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error(`Add To Cache failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
evictEntryOutdate() {
|
|
41
|
+
const oldestId = this.evictMaxAgeEntry();
|
|
42
|
+
if (this.cache.size >= this.MAX_CACHE_SIZE && oldestId) {
|
|
43
|
+
this.cache.delete(oldestId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
evictMaxAgeEntry() {
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
//
|
|
49
|
+
let oldestId = null;
|
|
50
|
+
let oldestAccess = Number.MAX_VALUE;
|
|
51
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
52
|
+
if (entry.maxAge != Number.MAX_VALUE && now - entry.lastAccessed > entry.maxAge) {
|
|
53
|
+
this.cache.delete(key);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
if (entry.lastAccessed < oldestAccess) {
|
|
57
|
+
oldestAccess = entry.lastAccessed;
|
|
58
|
+
oldestId = key;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return oldestId;
|
|
63
|
+
}
|
|
64
|
+
update(id, value) {
|
|
65
|
+
try {
|
|
66
|
+
const now = Date.now();
|
|
67
|
+
const entry = this.cache.get(id);
|
|
68
|
+
if (entry) {
|
|
69
|
+
Object.assign(entry, value);
|
|
70
|
+
entry.lastAccessed = now;
|
|
71
|
+
this.cache.set(id, entry);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error(`Update Cache failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Function to get rough size of the Map
|
|
79
|
+
getRoughSize() {
|
|
80
|
+
let size = 0;
|
|
81
|
+
this.cache.forEach((value, key) => {
|
|
82
|
+
size += this.getRoughSizeOfObject(key);
|
|
83
|
+
size += this.getRoughSizeOfObject(value);
|
|
84
|
+
});
|
|
85
|
+
return formatBytes(size);
|
|
86
|
+
}
|
|
87
|
+
// Helper function to get rough size of an object
|
|
88
|
+
getRoughSizeOfObject(object) {
|
|
89
|
+
const objectList = new Set();
|
|
90
|
+
const stack = [object];
|
|
91
|
+
let bytes = 0;
|
|
92
|
+
while (stack.length) {
|
|
93
|
+
const value = stack.pop();
|
|
94
|
+
if (typeof value === "boolean") {
|
|
95
|
+
bytes += 4;
|
|
96
|
+
}
|
|
97
|
+
else if (typeof value === "string") {
|
|
98
|
+
bytes += value.length * 2;
|
|
99
|
+
}
|
|
100
|
+
else if (typeof value === "number") {
|
|
101
|
+
bytes += 8;
|
|
102
|
+
}
|
|
103
|
+
else if (typeof value === "object" && value !== null && !objectList.has(value)) {
|
|
104
|
+
objectList.add(value);
|
|
105
|
+
for (const i in value) {
|
|
106
|
+
stack.push(value[i]);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return bytes;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=CacheManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/cached/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function formatBytes(bytes: number): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default function formatBytes(bytes) {
|
|
2
|
+
//
|
|
3
|
+
try {
|
|
4
|
+
if (bytes === 0)
|
|
5
|
+
return "0 Bytes";
|
|
6
|
+
const k = 1024;
|
|
7
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
|
|
8
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
9
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
throw new Error(`Format Bytes failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=formatBytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatBytes.js","sourceRoot":"","sources":["../../src/string/formatBytes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAa;IAChD,EAAE;IACF,IAAI;QACH,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACxE;IAAC,OAAO,KAAK,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;KACpG;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "diginext-utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"readme": "README.md",
|
|
6
6
|
"homepage": "https://wearetopgroup.com",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"mocha": "^10.0.0",
|
|
58
58
|
"nodemon": "^3.0.1",
|
|
59
59
|
"rimraf": "^5.0.1",
|
|
60
|
+
"prettier": "^3.0.0",
|
|
60
61
|
"typescript": "^4.5.3"
|
|
61
62
|
},
|
|
62
63
|
"nodemonConfig": {
|