UNPKG

@pitifulhawk/flash-up

Version:

Interactive project scaffolder for modern web applications

172 lines 4.23 kB
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