All files / src/utils JavaPackageInference.ts

100% Statements 10/10
100% Branches 11/11
100% Functions 2/2
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33      4x           9x                 9x 2x     7x 7x 7x   7x 5x     2x    
import * as path from "node:path";
import type { JavaProjectStructure } from "./JavaProjectDetector";
 
export const DEFAULT_OUTPUT_DIRECTORY = "swing/components/";
 
export function resolveOutputDirectory(
  configuredDir: string,
  projectStructure?: JavaProjectStructure,
): string {
  return configuredDir !== DEFAULT_OUTPUT_DIRECTORY
    ? configuredDir
    : (projectStructure?.suggestedOutputFolder ?? configuredDir);
}
 
export function inferJavaPackage(
  outputDir: string,
  projectStructure?: JavaProjectStructure,
): string | undefined {
  if (!projectStructure) {
    return undefined;
  }
 
  const normalizedSourceRoot = projectStructure.sourceRoot.replace(/[/\\]/g, path.sep);
  const normalizedOutputDir = outputDir.replace(/[/\\]/g, path.sep);
  const relativePath = path.relative(normalizedSourceRoot, normalizedOutputDir);
 
  if (relativePath && !relativePath.startsWith("..") && relativePath !== "") {
    return relativePath.replace(/[/\\]/g, ".");
  }
 
  return undefined;
}