perf-audit-cli
Version:
CLI tool for continuous performance monitoring and analysis
97 lines • 2.32 kB
TypeScript
export interface BundleBudget {
max: string;
warning: string;
}
export interface LighthouseBudget {
min: number;
warning?: number;
}
export interface MetricBudget {
max: number;
warning: number;
}
export interface ClientConfig {
outputPath: string;
}
export interface ServerConfig {
outputPath: string;
}
export interface ProjectConfig {
client: ClientConfig;
server: ServerConfig;
}
export interface BundleBudgetConfig {
bundles: {
[key: string]: BundleBudget;
};
}
export interface BudgetConfig {
client: BundleBudgetConfig;
server: BundleBudgetConfig;
lighthouse?: {
performance: LighthouseBudget;
accessibility?: LighthouseBudget;
bestPractices?: LighthouseBudget;
seo?: LighthouseBudget;
};
metrics: {
fcp: MetricBudget;
lcp: MetricBudget;
cls: MetricBudget;
tti: MetricBudget;
};
}
export interface AnalysisConfig {
target: 'client' | 'server' | 'both';
gzip: boolean;
ignorePaths: string[];
}
export interface ReportConfig {
formats: Array<'console' | 'json' | 'html'>;
outputDir: string;
}
export interface PerfAuditConfig {
project: ProjectConfig;
budgets: BudgetConfig;
analysis: AnalysisConfig;
reports: ReportConfig;
plugins?: import('./plugin.ts').PluginConfig[];
}
export interface BundleInfo {
name: string;
size: number;
gzipSize?: number;
delta?: number;
status: 'ok' | 'warning' | 'error';
type?: 'client' | 'server';
}
export interface PerformanceMetrics {
performance: number;
accessibility?: number;
bestPractices?: number;
seo?: number;
metrics: {
fcp: number;
lcp: number;
cls: number;
tti: number;
};
}
export interface AuditResult {
timestamp: string;
serverBundles: BundleInfo[];
clientBundles: BundleInfo[];
lighthouse?: PerformanceMetrics;
recommendations: string[];
budgetStatus: 'ok' | 'warning' | 'error';
analysisType: 'client' | 'server' | 'both';
}
export interface CIContext {
isCI: boolean;
provider: 'github' | 'gitlab' | 'jenkins' | 'unknown';
branch?: string;
commitHash?: string;
pullRequestId?: string;
buildNumber?: string;
}
//# sourceMappingURL=config.d.ts.map