zkyc
Version:
Discord command handler.
87 lines (83 loc) • 4.53 kB
JavaScript
const prompts = require("prompts");
const fs = require("fs");
const path = require("path");
const generate = require("./templateGenerator.js");
const generateProject = require("./projectGenerator.js");
const { selection, projectName, commandName, templates, prefix, defaultPrefix, botToken, commandDescription, events } = require("./utils/questions.js");
let answersOptions, answersProjectName, answersTemplate, answersCommandName, answersNewEvent, answersPrefix, answersDefaultPrefix, answersBotToken, answersCommandDescription;
let zkycConfigData
(async () => {
await prompts(selection).then(answers => {
answersOptions = answers;
});
if (answersOptions.selection == "newProject") {
prompts(projectName).then(answers => {
answersProjectName = answers;
prompts(templates).then(answers => {
answersTemplate = answers;
if (answersTemplate.templates == 0) {
prompts(prefix).then(answers => {
answersPrefix = answers;
prompts(botToken).then(answers => {
answersBotToken = answers;
const projectDir = path.join(process.cwd(), answersProjectName.projectName);
const projectName = answersProjectName.projectName;
const projectTemplate = answersTemplate.templates;
const projectToken = answersBotToken.token;
const projectPrefix = answersPrefix.prefix;
generateProject.generateNoneTemplate(projectDir, projectName, projectTemplate, projectToken, projectPrefix);
});
});
} else if (answersTemplate.templates == 1) {
prompts(defaultPrefix).then(answers => {
answersDefaultPrefix = answers;
prompts(botToken).then(answers => {
answersBotToken = answers;
const projectDir = path.join(process.cwd(), answersProjectName.projectName);
const projectName = answersProjectName.projectName;
const projectTemplate = answersTemplate.templates;
const projectToken = answersBotToken.token;
const projectDefaultPrefix = answersDefaultPrefix.defaultPrefix;
generateProject.generatePerServerPrefixTemplate(projectDir, projectName, projectTemplate, projectToken, projectDefaultPrefix);
});
});
} else if (answersTemplate.templates == 2) {
console.log("This feature is not done yet.");
}
})
});
} else if (answersOptions.selection == "newCommand") {
prompts(commandName).then(answers => {
answersCommandName = answers;
prompts(commandDescription).then(answers => {
answersCommandDescription = answers;
const zkycConfigPath = path.join(process.cwd(), "zkyc.json");
fs.exists(zkycConfigPath, (exists) => {
if (exists) {
const projectPath = process.cwd();
const name = answersCommandName.commandName;
const description = answersCommandDescription.commandDescription;
generate.generateCommand(projectPath, name, description);
} else {
console.log("You need to be in a zkyc project to generate a command.");
}
})
})
});
} else if (answersOptions.selection == "newEvent") {
prompts(events).then(answers => {
answersNewEvent = answers;
const zkycConfigPath = path.join(process.cwd(), "zkyc.json");
fs.exists(zkycConfigPath, (exists) => {
if (exists) {
const projectPath = process.cwd();
const name = answersNewEvent.events;
generate.generateEvent(projectPath, name);
} else {
console.log("You need to be in a zkyc project to generate a command.");
}
})
});
};
})();