smartlog-destination-devtools/ts/index.ts
2024-05-30 17:58:35 +02:00

59 lines
1.6 KiB
TypeScript

import * as plugins from './plugins.js';
import type { ILogDestination, ILogPackage } from '@push.rocks/smartlog-interfaces';
export class SmartlogDestinationDevtools implements ILogDestination {
public async handleLog(logPackageArg: ILogPackage) {
await this.logInBrowser(logPackageArg);
}
private async logInBrowser(logPackage: ILogPackage) {
switch (logPackage.level) {
case 'error':
console.log(
`%c Error: %c ${logPackage.message}`,
'background:#000000;color:#800000;',
'color:#000000;'
);
break;
case 'info':
console.log(
`%c Info: %c ${logPackage.message}`,
'background:#EC407A;color:#ffffff;',
'color:#EC407A;'
);
break;
case 'ok':
console.log(
`%c OK: %c ${logPackage.message}`,
'background:#000000;color:#8BC34A;',
'color:#000000;'
);
break;
case 'success':
console.log(
`%c Success: %c ${logPackage.message}`,
'background:#8BC34A;color:#ffffff;',
'color:#8BC34A;'
);
break;
case 'warn':
console.log(
`%c Warn: %c ${logPackage.message}`,
'background:#000000;color:#FB8C00;',
'color:#000000;'
);
break;
case 'note':
console.log(
`%c Note: %c ${logPackage.message}`,
'background:#42A5F5;color:#ffffff',
'color:#42A5F5;'
);
break;
default:
console.log(`unknown logType for "${logPackage.message}"`);
break;
}
}
}