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.
@@ -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.12.11",
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": {