Angular Modernizer
    Preparing search index...

    Service detection with caching and bulk operations. Wraps a ServicePatternRecognizer so that all analysis rules detect services the same way, and caches results by file path and class name.

    const detector = new ServiceDetector(recognizer);

    // Single detection
    const result = detector.detectService(classDecl);

    // Bulk detection
    const bulk = detector.detectServicesInFile(sourceFile);

    // Cache management
    detector.clearCache();
    Index

    Constructors

    Methods

    • Clear the detection cache.

      Call this when the AST has been modified and cached results may be stale.

      Returns void

      // After modifying files
      await project.save();
      detector.clearCache();
    • Detect if a class is a service with caching.

      Results are cached by file path + class name for performance.

      Parameters

      • classDecl: ClassDeclaration

        The class declaration to analyze

      Returns ServiceDetectionResult

      Service detection result with confidence

      const result = detector.detectService(classDecl);
      if (result.isService && result.confidence >= 0.7) {
      console.info(`High confidence service detected via ${result.detectionMethod}`);
      }
    • Detect all services in a source file (bulk operation).

      More efficient than detecting each class individually.

      Parameters

      • sourceFile: SourceFile

        The source file to analyze

      Returns BulkDetectionResult

      Bulk detection result with statistics

      const bulk = detector.detectServicesInFile(sourceFile);
      console.info(`Found ${bulk.serviceCount} services in ${bulk.detectionTimeMs}ms`);

      for (const [className, result] of bulk.results) {
      if (result.isService) {
      console.info(`${className}: ${result.detectionMethod} (${result.confidence})`);
      }
      }
    • Detect services in multiple source files (bulk operation).

      Parameters

      • sourceFiles: SourceFile[]

        Array of source files to analyze

      Returns BulkDetectionResult

      Bulk detection result with combined statistics

      const files = project.getSourceFiles();
      const bulk = detector.detectServicesInFiles(files);
      console.info(`Found ${bulk.serviceCount} services across ${files.length} files`);
    • Filter classes to only services.

      Parameters

      • classes: ClassDeclaration[]

        Array of class declarations

      Returns ClassDeclaration[]

      Array of service class declarations

      const allClasses = sourceFile.getClasses();
      const services = detector.filterServices(allClasses);
      console.info(`Found ${services.length} services out of ${allClasses.length} classes`);
    • Get detection statistics from cache.

      Returns { nonServiceEntries: number; serviceEntries: number; totalEntries: number }

      Statistics about cached detections

      • nonServiceEntries: number

        Cached results that are not services.

      • serviceEntries: number

        Cached results that are services.

      • totalEntries: number

        Cached results.

    • Simple check if a class is a service (cached).

      Parameters

      • classDecl: ClassDeclaration

        The class declaration to check

      Returns boolean

      True if detected as service