@launchql/cli
Version:
LaunchQL CLI
70 lines (67 loc) • 2.52 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../utils");
const deps_1 = __importDefault(require("./migrate/deps"));
// Migrate subcommands
const init_1 = __importDefault(require("./migrate/init"));
const list_1 = __importDefault(require("./migrate/list"));
const status_1 = __importDefault(require("./migrate/status"));
const subcommandMap = {
init: init_1.default,
status: status_1.default,
list: list_1.default,
deps: deps_1.default
};
const migrateUsageText = `
LaunchQL Migrate Commands:
launchql migrate init Initialize migration tracking in database
launchql migrate status Show current migration status
launchql migrate list List all changes (deployed and pending)
launchql migrate deps Show change dependencies
Options:
--help, -h Show this help message
--cwd Working directory (default: current directory)
`;
exports.default = async (argv, prompter, options) => {
let { first: subcommand, newArgv } = (0, utils_1.extractFirst)(argv);
// Show usage if explicitly requested
if (argv.help || argv.h || subcommand === 'help') {
console.log(migrateUsageText);
process.exit(0);
}
// Prompt if no subcommand provided
if (!subcommand) {
const answer = await prompter.prompt(argv, [
{
type: 'autocomplete',
name: 'subcommand',
message: 'What migrate operation do you want to perform?',
options: Object.keys(subcommandMap).map(cmd => ({
name: cmd,
value: cmd,
description: getSubcommandDescription(cmd)
}))
}
]);
subcommand = answer.subcommand;
}
const subcommandFn = subcommandMap[subcommand];
if (!subcommandFn) {
console.error(`Unknown migrate subcommand: ${subcommand}`);
console.log(migrateUsageText);
process.exit(1);
}
await subcommandFn(newArgv, prompter, options);
};
function getSubcommandDescription(cmd) {
const descriptions = {
init: 'Initialize migration tracking in database',
status: 'Show current migration status',
list: 'List all changes (deployed and pending)',
deps: 'Show change dependencies'
};
return descriptions[cmd] || '';
}
;