UNPKG

@atomist/sdm-pack-sloc

Version:

Extension Pack for an Atomist SDM to integrate code metrics

85 lines (84 loc) 2.26 kB
import { Project, ProjectFile } from "@atomist/automation-client"; export interface Language { name: string; /** * First extension must be definitive one to pass to SLOC */ extensions: string[]; } /** * Statistics about a particular language. See sloc API for further information */ export interface CodeStats { language: Language; /** * Total number of lines */ total: number; /** * Number of lines of source code */ source: number; /** * Number of comment lines */ comment: number; single: number; block: number; } export interface FileReport { stats: CodeStats; file: ProjectFile; } export interface LanguageStats { language: Language; stats: CodeStats; } /** * Report about a project's files in a given language */ export declare class LanguageReport implements LanguageStats { language: Language; fileReports: FileReport[]; constructor(language: Language, fileReports: FileReport[]); /** * Return stats for each language * @return {CodeStats[]} */ readonly stats: CodeStats; } /** * Consolidate the given stats for a particular language * @param {Language} language * @param {CodeStats[]} stats * @return {CodeStats} */ export declare function consolidate(language: Language, stats: CodeStats[]): CodeStats; /** * Report about lines of code in various languages. */ export declare class LanguagesReport { languageReports: LanguageReport[]; constructor(languageReports: LanguageReport[]); readonly languagesScanned: Language[]; /** * Return only the found languages * @return {CodeStats[]} */ readonly relevantLanguageReports: LanguageReport[]; } export interface LanguageReportRequest { language: Language; /** * Narrow down search--eg to exclude test */ glob?: string; } /** * Use the sloc library to compute code statistics * @param {Project} p * @param {string} request * @return {Promise<LanguageReport>} */ export declare function reportForLanguage(p: Project, request: LanguageReportRequest): Promise<LanguageReport>; export declare function reportForLanguages(p: Project, requests?: LanguageReportRequest[]): Promise<LanguagesReport>;