kawkab-frontend
Version:
Kawkab frontend is a frontend library for the Kawkab framework
91 lines (90 loc) ⢠3.39 kB
JavaScript
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);
}