@pitifulhawk/flash-up
Version:
Interactive project scaffolder for modern web applications
172 lines • 4.23 kB
TypeScript
export declare enum ProjectLanguage {
TYPESCRIPT = "typescript",
JAVASCRIPT = "javascript"
}
export declare enum Framework {
REACT = "react",
NEXTJS = "nextjs",
EXPRESS = "express"
}
export declare enum PackageManager {
NPM = "npm",
PNPM = "pnpm",
YARN = "yarn",
BUN = "bun"
}
export declare enum AddOnCategory {
STYLING = "styling",
STATE_MANAGEMENT = "state-management",
CLIENT_ROUTING = "client-routing",
DATA_FETCHING = "data-fetching",
LINTING = "linting",
TESTING = "testing",
AUTHENTICATION = "authentication",
DATABASE = "database",
INPUT_VALIDATION = "input-validation",
DOCKER = "docker"
}
export declare enum CSSFramework {
TAILWIND = "tailwind",
BOOTSTRAP = "bootstrap",
NONE = "none"
}
export declare enum UILibrary {
SHADCN = "shadcn",
CHAKRA = "chakra",
ACETERNITY = "aceternity",
NONE = "none"
}
export declare enum HTTPClient {
AXIOS = "axios",
FETCH = "fetch"
}
export declare enum StateManagement {
ZUSTAND = "zustand",
REDUX_TOOLKIT = "redux-toolkit"
}
export declare enum TestingFramework {
VITEST = "vitest",
JEST = "jest"
}
export declare enum Database {
POSTGRESQL = "postgresql",
MONGODB = "mongodb"
}
export declare enum ORM {
PRISMA = "prisma",
SEQUELIZE = "sequelize",
MONGOOSE = "mongoose"
}
export declare enum InputValidation {
ZOD = "zod",
JOI = "joi"
}
export declare enum AddOn {
TAILWIND = "tailwind",
ESLINT_PRETTIER = "eslint-prettier"
}
export interface EnhancedAddOnConfig {
categories: AddOnCategory[];
cssFramework?: CSSFramework;
uiLibrary?: UILibrary;
stateManagement?: StateManagement;
httpClient?: HTTPClient;
testingFramework?: TestingFramework;
database?: Database;
orm?: ORM;
inputValidation?: InputValidation;
includeLinting: boolean;
includeAuthentication: boolean;
includeClientRouting: boolean;
includeDocker: boolean;
}
export interface ProjectConfig {
name: string;
language: ProjectLanguage;
framework: Framework;
packageManager: PackageManager;
addOns: EnhancedAddOnConfig;
targetPath: string;
legacyAddOns?: AddOn[];
}
export interface PackageManagerConfig {
name: PackageManager;
installCmd: string;
addCmd: string;
removeCmd: string;
runCmd: string;
createCmd: string;
}
export interface FrameworkTemplate {
framework: Framework;
displayName: string;
description: string;
createCommand: (projectName: string, packageManager: PackageManager, language?: ProjectLanguage) => string;
defaultDependencies?: string[];
defaultDevDependencies?: string[];
}
export interface AddOnConfig {
addOn: AddOn;
displayName: string;
description: string;
dependencies?: string[];
devDependencies?: string[];
templateFiles?: string[];
postInstallCommands?: string[];
}
export interface CleanupOperation {
filesToDelete: string[];
directoriesToDelete: string[];
filesToReplace: {
[filePath: string]: string;
};
}
export interface FrameworkCleanupConfig {
framework: Framework;
operations: CleanupOperation;
}
export interface EnhancedAddOnInstallConfig {
id: string;
displayName: string;
description: string;
dependencies?: string[];
devDependencies?: string[];
templateFiles?: string[];
postInstallCommands?: string[];
compatibleFrameworks: Framework[];
requiredCSSFramework?: CSSFramework;
}
export interface CommandResult {
exitCode: number;
stdout: string;
stderr: string;
success: boolean;
}
export interface FileOperationResult {
success: boolean;
error?: string;
path: string;
}
export interface TemplateFile {
source: string;
target: string;
merge?: boolean;
}
export interface ValidationResult {
valid: boolean;
error?: string;
}
export interface ProgressStep {
id: string;
description: string;
completed: boolean;
error?: string;
}
export interface CLIOptions {
name?: string;
framework?: Framework;
packageManager?: PackageManager;
skipPrompts?: boolean;
verbose?: boolean;
}
//# sourceMappingURL=index.d.ts.map