core-mb 1.1.6 → 1.1.8
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/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/logging.helper.d.ts +2 -23
- package/dist/logging.helper.js +14 -29
- package/dist/uuid.helper.d.ts +13 -0
- package/dist/uuid.helper.js +26 -0
- package/package.json +4 -2
- package/src/index.ts +2 -1
- package/src/logging.helper.ts +44 -59
- package/src/uuid.helper.ts +23 -0
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/logging.helper.d.ts
CHANGED
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
|
|
3
|
-
(...data: any[]): void;
|
|
4
|
-
(message?: any, ...optionalParams: any[]): void;
|
|
5
|
-
};
|
|
6
|
-
error: {
|
|
7
|
-
(...data: any[]): void;
|
|
8
|
-
(message?: any, ...optionalParams: any[]): void;
|
|
9
|
-
};
|
|
10
|
-
warn: {
|
|
11
|
-
(...data: any[]): void;
|
|
12
|
-
(message?: any, ...optionalParams: any[]): void;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
export declare class Logger {
|
|
16
|
-
private context;
|
|
17
|
-
constructor(context: string);
|
|
18
|
-
private formatMessage;
|
|
19
|
-
info(message: string, method?: string): void;
|
|
20
|
-
warn(message: string, method?: string): void;
|
|
21
|
-
error(message: string, method?: string): void;
|
|
22
|
-
}
|
|
23
|
-
export { baseLogger as logger };
|
|
1
|
+
declare let logger: any;
|
|
2
|
+
export { logger };
|
package/dist/logging.helper.js
CHANGED
|
@@ -1,59 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logger =
|
|
3
|
+
exports.logger = void 0;
|
|
4
4
|
const winston_1 = require("winston");
|
|
5
|
-
// Keep your existing getDate() logic
|
|
6
5
|
function getDate() {
|
|
7
6
|
const today = new Date();
|
|
8
|
-
|
|
7
|
+
const formatted = today.toISOString().slice(0, 10);
|
|
8
|
+
return formatted;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
let logger;
|
|
11
|
+
if (typeof window === 'undefined') {
|
|
12
|
+
exports.logger = logger = (0, winston_1.createLogger)({
|
|
13
13
|
level: "info",
|
|
14
14
|
format: winston_1.format.combine(winston_1.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.format.printf(({ level, message, timestamp, ...meta }) => {
|
|
15
15
|
return `${timestamp} [${level.toUpperCase()}]: ${message} ${Object.keys(meta).length ? JSON.stringify(meta) : ""}`;
|
|
16
16
|
})),
|
|
17
17
|
transports: [
|
|
18
|
+
// Console output
|
|
18
19
|
new winston_1.transports.Console(),
|
|
20
|
+
// File for info
|
|
19
21
|
new winston_1.transports.File({
|
|
20
22
|
filename: `logs/info-${getDate()}.log`,
|
|
21
23
|
level: "info",
|
|
22
24
|
}),
|
|
25
|
+
// File for warnings
|
|
23
26
|
new winston_1.transports.File({
|
|
24
27
|
filename: `logs/warning-${getDate()}.log`,
|
|
25
28
|
level: "warn",
|
|
26
29
|
}),
|
|
30
|
+
// File for errors
|
|
27
31
|
new winston_1.transports.File({
|
|
28
32
|
filename: `logs/error-${getDate()}.log`,
|
|
29
33
|
level: "error",
|
|
30
34
|
}),
|
|
31
35
|
],
|
|
32
|
-
})
|
|
33
|
-
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
exports.logger = logger = {
|
|
34
40
|
info: console.log,
|
|
35
41
|
error: console.error,
|
|
36
42
|
warn: console.warn,
|
|
37
43
|
};
|
|
38
|
-
exports.logger = baseLogger;
|
|
39
|
-
// === Class-aware Logger wrapper ===
|
|
40
|
-
class Logger {
|
|
41
|
-
constructor(context) {
|
|
42
|
-
this.context = context;
|
|
43
|
-
}
|
|
44
|
-
formatMessage(message, method) {
|
|
45
|
-
return method
|
|
46
|
-
? `[${this.context}:${method}] ${message}`
|
|
47
|
-
: `[${this.context}] ${message}`;
|
|
48
|
-
}
|
|
49
|
-
info(message, method) {
|
|
50
|
-
baseLogger.info(this.formatMessage(message, method));
|
|
51
|
-
}
|
|
52
|
-
warn(message, method) {
|
|
53
|
-
baseLogger.warn(this.formatMessage(message, method));
|
|
54
|
-
}
|
|
55
|
-
error(message, method) {
|
|
56
|
-
baseLogger.error(this.formatMessage(message, method));
|
|
57
|
-
}
|
|
58
44
|
}
|
|
59
|
-
exports.Logger = Logger;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate UUID v4
|
|
3
|
+
*/
|
|
4
|
+
export declare const uuid: () => string;
|
|
5
|
+
/**
|
|
6
|
+
* Generate UUID without hyphens (32 chars)
|
|
7
|
+
*/
|
|
8
|
+
export declare const uuidCompact: () => string;
|
|
9
|
+
/**
|
|
10
|
+
* Generate UUID with prefix
|
|
11
|
+
* Example: EXP_550e8400-e29b-41d4-a716-446655440000
|
|
12
|
+
*/
|
|
13
|
+
export declare const uuidWithPrefix: (prefix: string) => string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uuidWithPrefix = exports.uuidCompact = exports.uuid = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
/**
|
|
6
|
+
* Generate UUID v4
|
|
7
|
+
*/
|
|
8
|
+
const uuid = () => {
|
|
9
|
+
return (0, uuid_1.v4)();
|
|
10
|
+
};
|
|
11
|
+
exports.uuid = uuid;
|
|
12
|
+
/**
|
|
13
|
+
* Generate UUID without hyphens (32 chars)
|
|
14
|
+
*/
|
|
15
|
+
const uuidCompact = () => {
|
|
16
|
+
return (0, uuid_1.v4)().replace(/-/g, "");
|
|
17
|
+
};
|
|
18
|
+
exports.uuidCompact = uuidCompact;
|
|
19
|
+
/**
|
|
20
|
+
* Generate UUID with prefix
|
|
21
|
+
* Example: EXP_550e8400-e29b-41d4-a716-446655440000
|
|
22
|
+
*/
|
|
23
|
+
const uuidWithPrefix = (prefix) => {
|
|
24
|
+
return `${prefix}_${(0, uuid_1.v4)()}`;
|
|
25
|
+
};
|
|
26
|
+
exports.uuidWithPrefix = uuidWithPrefix;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "core-mb",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Core utility functions for the MB ecosystem in TypeScript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"typescript"
|
|
20
20
|
],
|
|
21
21
|
"author": "Marco Bytes",
|
|
22
|
-
"license": "
|
|
22
|
+
"license": "MIT",
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|
|
25
25
|
"url": "git+https://github.com/marcojourney/core-mb.git"
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/jest": "^30.0.0",
|
|
33
33
|
"@types/node": "^20.19.11",
|
|
34
|
+
"@types/uuid": "^8.3.2",
|
|
34
35
|
"dotenv": "^17.2.1",
|
|
35
36
|
"jest": "^30.0.5",
|
|
36
37
|
"jest-html-reporter": "^4.3.0",
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
"dependencies": {
|
|
42
43
|
"class-transformer": "^0.5.1",
|
|
43
44
|
"class-validator": "^0.14.2",
|
|
45
|
+
"uuid": "^8.3.2",
|
|
44
46
|
"winston": "^3.17.0"
|
|
45
47
|
}
|
|
46
48
|
}
|
package/src/index.ts
CHANGED
package/src/logging.helper.ts
CHANGED
|
@@ -1,68 +1,53 @@
|
|
|
1
1
|
import { createLogger, format, transports } from "winston";
|
|
2
2
|
|
|
3
|
-
// Keep your existing getDate() logic
|
|
4
3
|
function getDate() {
|
|
5
4
|
const today = new Date();
|
|
6
|
-
|
|
5
|
+
const formatted = today.toISOString().slice(0, 10);
|
|
6
|
+
return formatted;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})
|
|
21
|
-
),
|
|
22
|
-
transports: [
|
|
23
|
-
new transports.Console(),
|
|
24
|
-
new transports.File({
|
|
25
|
-
filename: `logs/info-${getDate()}.log`,
|
|
26
|
-
level: "info",
|
|
27
|
-
}),
|
|
28
|
-
new transports.File({
|
|
29
|
-
filename: `logs/warning-${getDate()}.log`,
|
|
30
|
-
level: "warn",
|
|
31
|
-
}),
|
|
32
|
-
new transports.File({
|
|
33
|
-
filename: `logs/error-${getDate()}.log`,
|
|
34
|
-
level: "error",
|
|
35
|
-
}),
|
|
36
|
-
],
|
|
9
|
+
let logger;
|
|
10
|
+
|
|
11
|
+
if (typeof window === 'undefined') {
|
|
12
|
+
logger = createLogger({
|
|
13
|
+
level: "info",
|
|
14
|
+
format: format.combine(
|
|
15
|
+
format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
|
16
|
+
format.printf(({ level, message, timestamp, ...meta }) => {
|
|
17
|
+
return `${timestamp} [${level.toUpperCase()}]: ${message} ${
|
|
18
|
+
Object.keys(meta).length ? JSON.stringify(meta) : ""
|
|
19
|
+
}`;
|
|
37
20
|
})
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
21
|
+
),
|
|
22
|
+
transports: [
|
|
23
|
+
// Console output
|
|
24
|
+
new transports.Console(),
|
|
25
|
+
|
|
26
|
+
// File for info
|
|
27
|
+
new transports.File({
|
|
28
|
+
filename: `logs/info-${getDate()}.log`,
|
|
29
|
+
level: "info",
|
|
30
|
+
}),
|
|
31
|
+
|
|
32
|
+
// File for warnings
|
|
33
|
+
new transports.File({
|
|
34
|
+
filename: `logs/warning-${getDate()}.log`,
|
|
35
|
+
level: "warn",
|
|
36
|
+
}),
|
|
37
|
+
|
|
38
|
+
// File for errors
|
|
39
|
+
new transports.File({
|
|
40
|
+
filename: `logs/error-${getDate()}.log`,
|
|
41
|
+
level: "error",
|
|
42
|
+
}),
|
|
43
|
+
],
|
|
44
|
+
});
|
|
45
|
+
} else {
|
|
46
|
+
logger = {
|
|
47
|
+
info: console.log,
|
|
48
|
+
error: console.error,
|
|
49
|
+
warn: console.warn,
|
|
50
|
+
};
|
|
65
51
|
}
|
|
66
52
|
|
|
67
|
-
|
|
68
|
-
export { baseLogger as logger };
|
|
53
|
+
export { logger };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from "uuid";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Generate UUID v4
|
|
5
|
+
*/
|
|
6
|
+
export const uuid = (): string => {
|
|
7
|
+
return uuidv4();
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generate UUID without hyphens (32 chars)
|
|
12
|
+
*/
|
|
13
|
+
export const uuidCompact = (): string => {
|
|
14
|
+
return uuidv4().replace(/-/g, "");
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Generate UUID with prefix
|
|
19
|
+
* Example: EXP_550e8400-e29b-41d4-a716-446655440000
|
|
20
|
+
*/
|
|
21
|
+
export const uuidWithPrefix = (prefix: string): string => {
|
|
22
|
+
return `${prefix}_${uuidv4()}`;
|
|
23
|
+
};
|