UNPKG

@launchql/cli

Version:
54 lines (53 loc) 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = runModuleSetup; const core_1 = require("@launchql/core"); const logger_1 = require("@launchql/logger"); const types_1 = require("@launchql/types"); const log = new logger_1.Logger('module-init'); async function runModuleSetup(argv, prompter) { const { email, username } = (0, types_1.getGitConfigInfo)(); const { cwd = process.cwd() } = argv; const project = new core_1.LaunchQLPackage(cwd); if (!project.workspacePath) { log.error('Not inside a LaunchQL workspace.'); throw types_1.errors.NOT_IN_WORKSPACE({}); } if (!project.isInsideAllowedDirs(cwd) && !project.isInWorkspace()) { log.error('You must be inside one of the workspace packages.'); throw types_1.errors.NOT_IN_WORKSPACE_MODULE({}); } const availExtensions = project.getAvailableModules(); const moduleQuestions = [ { name: 'MODULENAME', message: 'Enter the module name', required: true, type: 'text', }, { name: 'extensions', message: 'Which extensions?', options: availExtensions, type: 'checkbox', allowCustomOptions: true, required: true, }, ]; const answers = await prompter.prompt(argv, moduleQuestions); const modName = (0, core_1.sluggify)(answers.MODULENAME); const extensions = answers.extensions .filter((opt) => opt.selected) .map((opt) => opt.name); project.initModule({ ...argv, ...answers, name: modName, // @ts-ignore USERFULLNAME: username, USEREMAIL: email, extensions }); log.success(`Initialized module: ${modName}`); return { ...argv, ...answers }; }