@launchql/cli
Version:
LaunchQL CLI
49 lines (44 loc) • 1.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@launchql/core");
const extensionUsageText = `
LaunchQL Extension Command:
lql extension [OPTIONS]
Manage module dependencies.
Options:
--help, -h Show this help message
--cwd <directory> Working directory (default: current directory)
Examples:
lql extension Manage dependencies for current module
`;
exports.default = async (argv, prompter, _options) => {
// Show usage if explicitly requested
if (argv.help || argv.h) {
console.log(extensionUsageText);
process.exit(0);
}
const { cwd = process.cwd() } = argv;
const project = new core_1.LaunchQLPackage(cwd);
if (!project.isInModule()) {
throw new Error('You must run this command inside a LaunchQL module.');
}
const info = project.getModuleInfo();
const installed = project.getRequiredModules();
const available = project.getAvailableModules();
const filtered = available.filter(name => name !== info.extname);
const questions = [
{
name: 'extensions',
message: 'Which modules does this one depend on?',
type: 'checkbox',
allowCustomOptions: true,
options: filtered,
default: installed
}
];
const answers = await prompter.prompt(argv, questions);
const selected = answers.extensions
.filter(opt => opt.selected)
.map(opt => opt.name);
project.setModuleDependencies(selected);
};
;