fake-it-til-you-git
Version:
A modern CLI tool to generate fake Git commit history for your GitHub/GitLab profile
101 lines • 2.81 kB
TypeScript
export interface AuthorConfig {
name: string;
email: string;
}
export interface DateRangeConfig {
startDate: string;
endDate: string;
}
export interface CommitsConfig {
maxPerDay: number;
distribution: 'uniform' | 'random' | 'gaussian' | 'custom' | 'pattern';
messageStyle: 'default' | 'lorem' | 'emoji';
pattern?: PatternConfig;
}
export interface PatternConfig {
type?: 'preset' | 'custom' | 'text';
preset?: string;
custom?: string;
text?: string;
scale?: number;
intensity?: 'low' | 'medium' | 'high';
repeat?: number;
centerX?: number;
centerY?: number;
}
export interface OptionsConfig {
preview: boolean;
push: boolean;
verbose: boolean;
dev: boolean;
repositoryPath: string;
yes: boolean;
}
export interface Config {
author: AuthorConfig;
dateRange: DateRangeConfig;
commits: CommitsConfig;
options: OptionsConfig;
seed?: string;
}
export interface PartialConfig {
author?: Partial<AuthorConfig>;
dateRange?: Partial<DateRangeConfig>;
commits?: Partial<CommitsConfig>;
options?: Partial<OptionsConfig>;
seed?: string;
}
export interface CliOptions {
days?: string;
commits?: string;
startDate?: string;
endDate?: string;
distribution?: string;
messageStyle?: string;
authorName?: string;
authorEmail?: string;
preview?: boolean;
config?: string;
push?: boolean;
seed?: string;
verbose?: boolean;
dev?: boolean;
repoPath?: string;
yes?: boolean;
pattern?: string;
customPattern?: string;
patternText?: string;
patternScale?: string;
patternIntensity?: string;
patternRepeat?: string;
}
/**
* Load configuration from a JSON file
* @param configPath - Path to the configuration file
* @returns Parsed configuration object or null if file doesn't exist
*/
export declare function loadConfigFromFile(configPath: string): Promise<PartialConfig | null>;
/**
* Convert CLI options to partial config format
* @param cliOptions - Options from CLI
* @returns Partial configuration object
*/
export declare function cliOptionsToConfig(cliOptions: CliOptions): PartialConfig;
/**
* Apply default values to configuration
* @param config - Partial configuration object
* @returns Complete configuration with defaults applied
*/
export declare function applyDefaults(config: PartialConfig): Config;
/**
* Load and merge configuration from file and CLI options
* @param cliOptions - CLI options
* @returns Complete validated configuration
*/
export declare function loadConfig(cliOptions: CliOptions): Promise<Config>;
/**
* Get default configuration
* @returns Default configuration object
*/
export declare function getDefaultConfig(): Config;
//# sourceMappingURL=config.d.ts.map