70 lines
2.9 KiB
TypeScript
70 lines
2.9 KiB
TypeScript
import { usePrivateKeyHash } from "../providers/AccountProvider/usePrivateKeyHash";
|
|
import { usePrivatePlain } from "../providers/AccountProvider/usePrivatePlain";
|
|
import { usePublicKey } from "../providers/AccountProvider/usePublicKey";
|
|
|
|
export enum ConsoleLogLevel {
|
|
INFO = "INFO",
|
|
ERROR = "ERROR",
|
|
WARN = "WARN"
|
|
}
|
|
|
|
export function useConsoleLogger(component: string) {
|
|
const privatePlain = usePrivatePlain();
|
|
const publicKey = usePublicKey();
|
|
const privateKey = usePrivateKeyHash();
|
|
|
|
const constructTechnicalDetails = () => {
|
|
let time = new Date().toISOString();
|
|
//console.groupCollapsed('Details');
|
|
console.log('%cPublic Key: %c%s', 'color: orange; font-weight: bold;', 'color: white;', publicKey.trim() != "" ? publicKey : '[EMPTY]');
|
|
console.log('%cPrivate Key Hash: %c%s', 'color: orange; font-weight: bold;', 'color: white;', privateKey.trim() != "" ? privateKey : '[EMPTY]');
|
|
console.log('%cPrivate Plain: %c%s', 'color: orange; font-weight: bold;', 'color: white;', privatePlain.trim() != "" ? privatePlain : '[EMPTY]');
|
|
//console.groupEnd();
|
|
//console.groupCollapsed('Trace');
|
|
console.info('%cTime: %c%s', 'color: green; font-weight: bold;', 'color: white;', time);
|
|
console.info('%cComponent:%c %s', 'color: red; font-weight: bold;', 'color: #7CFC00; font-weight: bold;', component);
|
|
console.trace('%cStack trace:', 'color: purple; font-weight: bold;');
|
|
//console.groupEnd();
|
|
}
|
|
|
|
const constructLogLevelColor = (logLevel : ConsoleLogLevel) => {
|
|
switch(logLevel){
|
|
case ConsoleLogLevel.INFO:
|
|
return 'color: white; background-color: #00B5FF;';
|
|
case ConsoleLogLevel.ERROR:
|
|
return 'color: white; background-color: red;';
|
|
case ConsoleLogLevel.WARN:
|
|
return 'color: black; background-color: yellow;';
|
|
default:
|
|
return 'color: black; background-color: white;';
|
|
}
|
|
}
|
|
|
|
const constructMessageDetails = (message: string, logLevel : ConsoleLogLevel) => {
|
|
return [
|
|
`%c ${logLevel} %c ${message}`,
|
|
constructLogLevelColor(logLevel),
|
|
'color: #fefefe; font-weight: normal;'
|
|
];
|
|
}
|
|
|
|
const error = (message : string) => {
|
|
console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.ERROR));
|
|
constructTechnicalDetails();
|
|
console.groupEnd();
|
|
}
|
|
|
|
const info = (message : string) => {
|
|
console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.INFO));
|
|
constructTechnicalDetails();
|
|
console.groupEnd();
|
|
}
|
|
|
|
const warn = (message : string) => {
|
|
console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.WARN));
|
|
constructTechnicalDetails();
|
|
console.groupEnd();
|
|
}
|
|
|
|
return {error, info, warn};
|
|
} |