UNPKG

kawkab-frontend

Version:

Kawkab frontend is a frontend library for the Kawkab framework

91 lines (90 loc) • 3.39 kB
#!/usr/bin/env node import { Command } from 'commander'; import chalk from 'chalk'; import { makeRepositoryCommand } from './commands/makeRepository.js'; import { makeModelCommand } from './commands/makeModel.js'; import { makeStoreCommand } from './commands/makeStore.js'; import { makeComponentCommand } from './commands/makeComponent.js'; import { makePageCommand } from './commands/makePage.js'; import { makeModuleCommand } from './commands/makeModule.js'; import { makeHookCommand } from './commands/makeHook.js'; import { makeLayoutCommand } from './commands/makeLayout.js'; import { makeContextCommand } from './commands/makeContext.js'; import { makeTransCommand } from './commands/makeTrans.js'; import { makeServiceCommand } from './commands/makeService.js'; import { makeMiddlewareCommand } from './commands/makeMiddleware.js'; import { makeUtilCommand } from './commands/makeUtil.js'; import { makeValidationCommand } from './commands/makeValidation.js'; import { makeConfigCommand } from './commands/makeConfig.js'; import { makeEnumCommand } from './commands/makeEnum.js'; import { makeDocCommand } from './commands/makeDoc.js'; import { buildStaticCommand } from './commands/buildStatic.js'; import { devCommand } from './commands/dev.js'; import { buildCommand } from './commands/build.js'; import { startCommand } from './commands/start.js'; import { previewCommand } from './commands/preview.js'; import { envCommand } from './commands/env.js'; import { cleanCommand } from './commands/clean.js'; import { crossPlatformCommand } from './commands/crossPlatform.js'; import { syncCommand } from './commands/sync.js'; import { openCommand } from './commands/open.js'; console.log(chalk.cyan.bold('šŸš€ Kawkab Framework CLI\n')); const program = new Command(); program .name('kawkab-frontend') .description('CLI tool for Kawkab framework') .version('1.3.0-alpha.1'); // Register commands makeRepositoryCommand(program); makeModelCommand(program); makeStoreCommand(program); makeComponentCommand(program); makePageCommand(program); makeModuleCommand(program); makeHookCommand(program); makeLayoutCommand(program); makeContextCommand(program); makeTransCommand(program); makeServiceCommand(program); makeMiddlewareCommand(program); makeUtilCommand(program); makeValidationCommand(program); makeConfigCommand(program); makeEnumCommand(program); makeDocCommand(program); buildStaticCommand(program); devCommand(program); buildCommand(program); startCommand(program); previewCommand(program); envCommand(program); cleanCommand(program); crossPlatformCommand(program); syncCommand(program); openCommand(program); // Handle no command input -> show help if (process.argv.length <= 2) { program.outputHelp(); process.exit(0); } // Override exit behavior for clean help display program.exitOverride((err) => { if (err.code === 'commander.helpDisplayed' || err.code === 'commander.help') { process.exit(0); } process.exit(1); }); // Handle unknown commands with a friendly message program.on('command:*', () => { console.log('\nšŸ˜… Sorry, the command you entered is not recognized.'); console.log('Use --help to see the list of available commands.\n'); process.exit(0); // Exit with code 0 to avoid pnpm error message }); // Parse commands try { program.parse(process.argv); } catch (error) { process.exit(1); }