Skip to content

class trace

awekrx edited this page May 29, 2026 · 1 revision

class-trace

Import

import { classTrace } from '@dev-suite/decorators/class-trace'

Category

  • class

Use Case

Trace class construction lifecycle for debugging and operations visibility.

Replaces

  • Constructor-level console/log boilerplate
  • Repeated try/catch logging wrappers around new

Example 1

Without decorator

class KafkaConsumer {
  constructor(private readonly topic: string) {
    console.info('KafkaConsumer:init:start', { topic });
    try {
      this.connect();
      console.info('KafkaConsumer:init:ok', { topic });
    } catch (error) {
      console.error('KafkaConsumer:init:fail', { topic, error });
      throw error;
    }
  }

  private connect() {}
}

With decorator

import { classTrace } from '@dev-suite/decorators/class-trace';

@classTrace()
class KafkaConsumer {
  constructor(private readonly topic: string) {
    this.connect();
  }

  private connect() {}
}

Why better

  • Standardizes constructor trace shape
  • Keeps constructor focused on initialization logic

Example 2

Without decorator

class FileIngestWorker {
  constructor(private readonly source: string) {
    console.info('worker:start', { source });
    this.bootstrap();
    console.info('worker:ready', { source });
  }

  private bootstrap() {}
}

With decorator

import { classTrace } from '@dev-suite/decorators/class-trace';

@classTrace({ shouldIncludeArgs: true })
class FileIngestWorker {
  constructor(private readonly source: string) {
    this.bootstrap();
  }

  private bootstrap() {}
}

Why better

  • Consistent observability across worker classes
  • Optional args tracing without custom logger glue

Clone this wiki locally