import { INgxConsoleLoggerConfig } from '../interfaces/i-ngx-console-logger-config';

export const ngxConsoleLoggerConfigDefaultPrefixMinPad = 5;

export const ngxConsoleLoggerConfigDefault: INgxConsoleLoggerConfig = {
  debug: 'green',
  info: 'blue',
  error: 'red',
  warn: 'orange',

  // NG hooks
  ngOnChanges: ['orange', 'ngOnChange'],
  ngOnInit: ['orange', 'ngOnInit'],
  ngDoCheck: ['orange', 'ngDoCheck'],
  ngOnDestroy: ['orange', 'ngOnDestroy'],

  // Create
  create: ['lightgreen', 'CREATE'],
  createComponent: ['lightgreen', 'CREATE - Component'],
  createDirective: ['lightgreen', 'CREATE - Directive'],
  createService: ['lightgreen', 'CREATE - Service'],
  createPipe: ['lightgreen', 'CREATE - Pipe'],
  createGuard: ['lightgreen', 'CREATE - Guard'],
  createResolver: ['lightgreen', 'CREATE - Resolver'],

  // Performance logs
  perf: ['darkturquoise', 'PERF'],
  perfComponent: ['darkturquoise', 'PERF - Component'],
  perfCD: ['darkturquoise', 'PERF - CD'],
  perfDom: ['darkturquoise', 'PERF - Dom'],

  // Network logs
  network: ['blue', 'HTTP'],
  networkRequest: ['blue', 'HTTP - Request'],
  networkResponse: ['blue', 'HTTP - Response'],
  networkError: ['red', 'HTTP - Error'],
  networkCreate: ['green', 'HTTP - Create'],

  // NG types
  resolve: 'brown',
  guard: 'sandybrown',
  validator: 'plum',
  pipe: 'brown',
  callback: 'violet',
  state: 'blueviolet', // Redux style or BehaviorSubject, as you want

  // Specific logs for NGXS, Akita
  action: ['#8f72cf', '@ACTION'], // to log inside Action method
  select: ['#84467c', '@SELECT'], // to log inside select method
  errorState: ['#cf3c04', '@ERROR'], // to log error in Store
  effect: ['8F72CF', '@EFFECT'], // to log inside effect method (even if using @Effet is not advised)

  // Tests
  tu: ['green', 'TU'],
  ti: ['green', 'TI'],
  te2e: ['green', 'E2E'],

  // Colors
  pink: ['#FF40BD;', '####'],
  red: ['red', '####'], // red without the console.error() stacktrace
  orange: ['orange', '####'],
  green: ['springgreen', '####'],
  blue: ['cadetblue', '####'],
  violet: ['blueviolet', '####']
};
