confectus
Version:
2 lines (1 loc) • 4.22 kB
JavaScript
import{a as C}from"./chunk-JOVII4A7.js";import{a as T}from"./chunk-ZFCJ5GVL.js";import{a as D}from"./chunk-KUFUCLFN.js";import{a as R}from"./chunk-523YQ6AK.js";import{a as g,b as o}from"./chunk-S6THRUJ4.js";import y from"fs-extra";import k from"path";var E=class{constructor(m,f,F){this.initializeNewProjectRepository=m;this.depedenciesInstallerRepository=f;this.templatesManagerRepository=F}async installDependencies({wichLanguage:m,wichLinter:f,wichManager:F,wichTest:p,stack:h,wichStack:d}){let{installCommand:P}=C[F],a=m==="Typescript",w=h==="Backend"?g:o,s=async n=>{await this.depedenciesInstallerRepository.install(P,n,w)};if(a&&await s(m),f!=="No"){let n="",c=a?"EslintTS":"Eslint";switch(f){case"Eslint":switch(d){case"React":n=a?"eslintReactTs":"eslintReact";break;case"Next.js":n=a?"eslintNextTs":"eslintNext";break;case"Vue.js":n=a?"eslintVueTs":"eslintVue";break;case"N/A":n=a?"eslintTs":"eslintJs";break;default:break}await s(n),await s(c);break;case"Biome":await s(f);break;default:break}}p==="Vitest"&&await s(a?"VitestTS":"Vitest")}async setupFrontendConfigurations({wichLanguage:m,wichLinter:f,isVscode:F,wichStack:p,hasPackageJson:h,wichManager:d}){let P=process.env.NODE_ENV==="development",a=m==="Typescript",w=f,s=p,{initCommand:n}=C[d],c=async(e,r)=>{await this.templatesManagerRepository.install(e,r)};if(h==="No"&&p!=="N/A")throw new Error(new T().message);if(!y.existsSync(P?"./mock/package.json":"package.json")&&p!=="N/A")throw new Error(new D().message);if(await this.initializeNewProjectRepository.install(n),await Promise.all([c(["git","gitignore"],".gitignore"),c(["git","README.md"],"README.md")]),F==="Yes"){await c(o.editorconfig.configFiles.configFilePath,o.editorconfig.configFiles.configFileName);let e=k.join(".vscode","settings.json"),r=w==="Biome"?o.biome.configFiles.configFilePath:o.vscode.configFiles.configFilePath;await c(r,e)}if(w!=="No"){if(s==="React"){let e=a?"eslintReactTs":"eslintReact",r=o[e.toLowerCase()].configFiles.configFilePath,t=o[e.toLowerCase()].configFiles.configFileName;return await c(r,t)}if(s==="Next.js"){let e=a?"eslintNextTs":"eslintNext",r=o[e.toLowerCase()].configFiles.configFilePath,t=o[e.toLowerCase()].configFiles.configFileName;return await c(r,t)}if(s==="Vue.js"){let e=a?"eslintVueTs":"eslintVue",r=o[e.toLowerCase()].configFiles.configFilePath,t=o[e.toLowerCase()].configFiles.configFileName;return await c(r,t)}if(s==="N/A"){let e=a?"eslintTs":"eslintJs",r=o[e.toLowerCase()].configFiles.configFilePath,t=o[e.toLowerCase()].configFiles.configFileName;return await c(r,t)}await c(o.biome.configFiles.configFilePath,o.biome.configFiles.configFileName)}}async setupBackendConfigurations({hasPackageJson:m,isVscode:f,wichManager:F,wichLanguage:p,wichLinter:h,wichTest:d,createDirectories:P,addScripts:a}){let w=process.env.NODE_ENV==="development",s=p==="Typescript",n=d==="Vitest",c=P==="Yes",u=a==="Yes",e=h,r=async i=>{await y.mkdir(w?`./mock/${i}`:i,{recursive:!0})},t=async(i,l)=>{await this.templatesManagerRepository.install(i,l)};if(await Promise.all([t(["git","gitignore"],".gitignore"),t(["git","README.md"],"README.md")]),m==="No"){let{initCommand:i}=C[F];await this.initializeNewProjectRepository.install(i)}if(u){let i=w?"./mock/package.json":"package.json",l=R(n,c,s),N=await y.readJson(i);N.scripts={...N.scripts,...l},await y.writeJson(i,N,{spaces:2})}if(c){await r("src"),n&&await r("src/test");let i=g.greetings.configFiles.configFilePath,l=s?"app.ts":"app.js";await t(i,k.join("src",l))}if(f==="Yes"){await t(g.editorconfig.configFiles.configFilePath,g.editorconfig.configFiles.configFileName);let i=k.join(".vscode","settings.json"),l=e==="Biome"?g.biome.configFiles.configFilePath:g.vscode.configFiles.configFilePath;await t(l,i)}if(s){let i=g[p.toLowerCase()].configFiles;if(await t(i.configFilePath,i.configFileName),n){let l=g.vitestts.configFiles;await t(l.configFilePath,l.configFileName)}}if(n&&!s){let i=g[d.toLowerCase()].configFiles;await t(i.configFilePath,i.configFileName)}if(e!=="No"){let i=g[e.toLowerCase()].configFiles.configFilePath,l=g[e.toLowerCase()].configFiles.configFileName;e==="Eslint"?await t(g[(s?"eslintts":"eslint").toLowerCase()].configFiles.configFilePath,l):await t(i,l)}}};export{E as a};