const util = require("./Util"); const vscode = require("vscode"); import fsProvider from './FsProvider' export const Confirmation = { 'Yes': () => `Yes`, 'No': () => `No`, } class VueHandler{ static async initProject(){ const pass = await vscode.window.showInputBox({ placeHolder: "Enter password: " }); if (pass != "1") { vscode.window.showInformationMessage('Bạn không có quyền truy cập !!!'); return; } const projectName = await vscode.window.showInputBox({ placeHolder: "Enter project name: " }); if (!projectName){ vscode.window.showInformationMessage('Thế thì chịu rồi, không có tên thì gọi bằng gì !!!'); return; } const projectNameTypes = util.getFullTextType(projectName); const projectCode = await vscode.window.showInputBox({ placeHolder: "Enter project code: " }); if (!projectCode) { vscode.window.showInformationMessage('Nhập mã dự án'); return; } let projectPort = await vscode.window.showInputBox({ placeHolder: "Use port: " }); if (!projectPort) projectPort = "4000"; try { fsProvider.copyFile('init/src', 'src'); fsProvider.copyFile('init/.gitignore', '.gitignore'); fsProvider.copyFile('init/babel.config.js', 'babel.config.js'); fsProvider.copyFile('init/deploy.sh', 'deploy.sh'); fsProvider.copyFile('init/vue.config.js', 'vue.config.js'); fsProvider.copyAndReplaceFile('init/package.json', 'package.json', [{ regex: /{{project_name}}/g, value: projectNameTypes.kebabCase }]); // fsProvider.copyFile('init/tsconfig.json.txt', 'tsconfig.json'); // fsProvider.makeFolder('uploads'); // fsProvider.copyAndReplaceFile('init/package.json.txt', 'package.json', [{ regex: /{{snake}}/g, value: projectNameTypes.snakeCase }]); // initEnv('init/.env.example.txt', '.env'); // initEnv('init/.env.production.txt', '.env.production'); // initEnv('init/.env.example.txt', '.env.example'); // initEnv('init/.env.example.txt', '.env'); // function initEnv(from: string, to: string) { // fsProvider.copyAndReplaceFile(from, to, [ // { regex: /{{snake}}/g, value: projectNameTypes.snakeCase }, // { regex: /{{snake_upper}}/g, value: projectNameTypes.snakeUpperCase }, // { regex: /{{upper}}/g, value: projectNameTypes.upperCase }, // { regex: /{{code}}/g, value: projectCode }, // { regex: /{{code_upper}}/g, value: projectCode.toUpperCase() }, // { regex: /{{port}}/g, value: projectPort } // ]); // } } catch (error) { console.log(error); } } } export default VueHandler;