import { GeneratorContext, ProjectOptions } from '../utils/types'; import { BaseGenerator } from './baseGenerator'; export default class ProjectGenerator extends BaseGenerator { constructor(options: ProjectOptions, context?: GeneratorContext, cwd?: string); private extendJSON; /** * Returns template path for primary; if it doesn't exist, returns fallback path. * Used so reactinternalapp/reactexternalapp can omit shared files and fall back to standard. */ private templatePathWithFallback; /** * Returns the appropriate template path based on whether TypeScript is enabled. * TypeScript-specific templates are organized in a typescript/ subdirectory. * Only files that have TypeScript-specific variants are looked up there. */ private getTemplatePath; /** * Generates TypeScript configuration file if TypeScript is enabled. */ private generateTypeScriptConfig; /** * Generates ESLint configuration file with appropriate template for JS or TS. */ private generateEslintConfig; /** * Generates VSCode settings with TypeScript-specific configuration if needed. */ private generateVSCodeSettings; /** * Copies project root level files with TypeScript-specific variants when applicable. */ private copyProjectFiles; validateOptions(): void; generate(): Promise; private registerChange; private _createHuskyConfig; private makeEmptyFolders; }