logger.ts 724 B

123456789101112131415161718192021222324
  1. /* eslint-disable no-console */
  2. import { CliLogLevel } from './types';
  3. let logLevel: CliLogLevel = 'info';
  4. export function setLogLevel(level: CliLogLevel = 'info') {
  5. logLevel = level;
  6. }
  7. export function log(
  8. message?: string,
  9. options?: { level?: CliLogLevel; newline?: 'before' | 'after' | 'both' },
  10. ) {
  11. const { level = 'info' } = options || {};
  12. if (logLevel !== 'silent' && (logLevel === 'verbose' || level === 'info')) {
  13. if (options?.newline === 'before' || options?.newline === 'both') {
  14. console.log();
  15. }
  16. console.log(' ' + (message ?? ''));
  17. if (options?.newline === 'after' || options?.newline === 'both') {
  18. console.log();
  19. }
  20. }
  21. }