@quasarbright/projection
Version:
A static site generator that creates a beautiful, interactive gallery to showcase your coding projects. Features search, filtering, tags, responsive design, and an admin UI.
71 lines • 2.4 kB
TypeScript
/**
* Options passed from command-line for deployment
*/
export interface DeployOptions {
branch?: string;
message?: string;
remote?: string;
dir?: string;
noBuild?: boolean;
dryRun?: boolean;
force?: boolean;
help?: boolean;
}
/**
* Complete deployment configuration after merging all sources
*/
export interface DeploymentConfig {
repositoryUrl: string;
homepage: string | null;
baseUrl: string;
branch: string;
buildDir: string;
remote: string;
}
/**
* Loads and merges deployment configuration from multiple sources:
* 1. Command-line options (highest priority)
* 2. Projection config file
* 3. Auto-detected values from Git
* 4. Default values (lowest priority)
*/
export declare class DeploymentConfigLoader {
/**
* Load complete deployment configuration
* @param cwd Current working directory
* @param options Command-line options
* @returns Promise resolving to complete deployment configuration
* @throws ProjectionError if Git repository is not properly configured
*/
static load(cwd: string, options?: DeployOptions): Promise<DeploymentConfig>;
/**
* Get repository URL from Git remote
* @param cwd Current working directory
* @param remote Git remote name
* @returns Promise resolving to repository URL or null if not found
*/
private static getRepositoryUrl;
/**
* Extract repository name from Git remote URL
* Supports both HTTPS and SSH URLs
* @param repositoryUrl Git remote URL
* @returns Repository name (e.g., 'my-portfolio')
* @example
* extractRepoName('https://github.com/user/my-portfolio.git') // 'my-portfolio'
* extractRepoName('git@github.com:user/my-portfolio.git') // 'my-portfolio'
*/
static extractRepoName(repositoryUrl: string): string;
/**
* Generate GitHub Pages URL from repository URL
* @param repositoryUrl Git remote URL
* @returns GitHub Pages URL
* @example
* generateGitHubPagesUrl('https://github.com/user/my-portfolio.git')
* // Returns: 'https://user.github.io/my-portfolio'
*
* generateGitHubPagesUrl('git@github.com:user/my-portfolio.git')
* // Returns: 'https://user.github.io/my-portfolio'
*/
static generateGitHubPagesUrl(repositoryUrl: string): string;
}
//# sourceMappingURL=deployment-config.d.ts.map