sicua
Version:
A tool for analyzing project structure and dependencies
68 lines (67 loc) • 1.93 kB
TypeScript
/**
* Project Metadata Detector - Extracts project metadata from package.json and configuration files
*/
export interface PackageJsonMetadata {
name?: string;
version?: string;
description?: string;
private?: boolean;
scripts?: Record<string, string>;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
engines?: {
node?: string;
npm?: string;
};
}
export interface FrameworkInfo {
react?: string;
nextjs?: string;
typescript?: string;
nodejs?: string;
}
export interface DevelopmentTools {
buildTools: Record<string, string>;
linting: Record<string, string>;
testing: Record<string, string>;
bundlers: Record<string, string>;
}
export interface UIAndStyling {
cssFrameworks: Record<string, string>;
uiLibraries: Record<string, string>;
iconLibraries: Record<string, string>;
}
export interface StateManagement {
libraries: Record<string, string>;
}
export interface ConfigurationFiles {
nextConfig: boolean;
tsConfig: boolean;
eslintConfig: boolean;
prettierConfig: boolean;
jestConfig: boolean;
vitestConfig: boolean;
playwrightConfig: boolean;
cypressConfig: boolean;
}
export interface ProjectMetadata {
packageInfo: {
name?: string;
version?: string;
description?: string;
private?: boolean;
hasScripts: boolean;
scriptCount: number;
};
framework: FrameworkInfo;
developmentTools: DevelopmentTools;
uiAndStyling: UIAndStyling;
stateManagement: StateManagement;
configurationFiles: ConfigurationFiles;
}
/**
* Detects project metadata from package.json and configuration files
* @param projectRoot Root directory of the project
* @returns ProjectMetadata object with all detected information
*/
export declare function detectProjectMetadata(projectRoot: string): ProjectMetadata;