UNPKG

jav-blast-setup

Version:

Start the base configuration for formatting tests, code rules and TypeScript

103 lines (101 loc) 5.77 kB
#!/usr/bin/env node "use strict";var t=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports);var q=t(n=>{"use strict";var Q=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});n.createFile=n.createFolder=n.validRoute=n.readFile=void 0;var d=Q(require("node:fs")),T=e=>d.default.readFileSync(e,"utf-8");n.readFile=T;var X=e=>d.default.existsSync(e);n.validRoute=X;var Y=e=>{d.default.mkdirSync(e)};n.createFolder=Y;var Z=(e,o)=>{d.default.writeFileSync(`${e}`,o)};n.createFile=Z});var h=t(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.options=i.packageJsonReadOptions=i.fileIndex=i.packageFile=void 0;i.packageFile="package.json";i.fileIndex="initial";i.packageJsonReadOptions=["scripts","nodemonConfig","devDependencies"];i.options={initFile:"-i"}});var R=t(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.fileInit=void 0;m.fileInit='console.log("Hello Setup!.");'});var J=t(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.biome=void 0;p.biome=`{ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", "organizeImports": { "enabled": true }, "linter": { "enabled": true, "rules": { "recommended": true } }, "files": { "ignore": [ "./.vscode/**", "./.husky/**", "./build/**" ] } }`});var I=t(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.extensions=void 0;f.extensions=`{ "recommendations": [ "usernamehw.errorlens", "biomejs.biome" ] } `});var S=t(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.gitignore=void 0;g.gitignore=`node_modules/ build/ `});var w=t(v=>{"use strict";Object.defineProperty(v,"__esModule",{value:!0});v.packageJson=void 0;v.packageJson=`{ "scripts": { "prepare": "husky", "start": "ts-node ./src/app/index.ts", "dev": "nodemon", "test": "vitest", "test:run": "vitest run", "lint": "biome check .", "lint:fix": "biome check . --write", "build": "tsc" }, "nodemonConfig": { "watch": [ "src" ], "ignore": [ "src/**/*.spec.ts" ], "ext": "ts", "exec": "ts-node ./src/app/index.ts" }, "devDependencies": { "@biomejs/biome": "1.9.4", "husky": "9.1.7", "nodemon": "3.1.9", "ts-node": "10.9.2", "typescript": "5.7.2", "vitest": "2.1.8" } }`});var $=t(_=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0});_.preCommit=void 0;_.preCommit="npm run lint"});var D=t(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.settings=void 0;b.settings=`{ "editor.wordWrap": "on", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": true }, "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, "[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, "[json]": { "editor.defaultFormatter": "biomejs.biome" } } `});var B=t(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.tsconfig=void 0;y.tsconfig=`{ "compilerOptions": { "target": "ES2022", "outDir": "build/", "module": "CommonJS", "esModuleInterop": true, "noImplicitAny": true, "removeComments": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true }, "include": ["src/**/*.ts"], "exclude": ["node_modules", "**/*.test.ts"] } `});var E=t(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.viteConfig=void 0;j.viteConfig=`/// <reference types="vitest" /> import { defineConfig } from "vitest/config"; export default defineConfig({ test: { coverage: { reporter: ['text', 'json', 'html'], // change this property to the desired output }, }, }) `});var A=t(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.map=void 0;var ee=R(),te=J(),oe=I(),ne=S(),ie=w(),re=$(),se=D(),ae=B(),ce=E();k.map=[{name:"package",route:"",finalName:"package.json",content:ie.packageJson},{name:"tsconfig",route:"",finalName:"tsconfig.json",content:ae.tsconfig},{name:"vite.config",route:"",finalName:"vitest.config.mts",content:ce.viteConfig},{name:"extensions",route:".vscode/",finalName:"extensions.json",content:oe.extensions},{name:"settings",route:".vscode/",finalName:"settings.json",content:se.settings},{name:"pre-commit",route:".husky/",finalName:"pre-commit",content:re.preCommit},{name:"gitignore",route:"",finalName:".gitignore",content:ne.gitignore},{name:"biome",route:"",finalName:"biome.json",content:te.biome,devFinalName:"dev.biome.json"},{name:"initial",route:"src/app/",finalName:"index.ts",content:ee.fileInit}]});var L=t(s=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});s.manageContentPackageJson=s.splitRouteByPath=void 0;var ue=h(),le=e=>/\//gi.test(e)?e.split("/").filter(o=>o!==""):[];s.splitRouteByPath=le;var de=({newContent:e,content:o})=>{try{let r=JSON.parse(o),a=JSON.parse(e);for(let c of ue.packageJsonReadOptions)r[c]={...r[c]??{},...a[c]};return JSON.stringify(r,null," ")}catch{return"{}"}};s.manageContentPackageJson=de});Object.defineProperty(exports,"__esModule",{value:!0});var u=q(),P=h(),me=A(),U=L();try{let e=process.argv,{PWD:o}=process.env,r=process.env.DEV_URL??"",a=o+r,c=e.includes(P.options.initFile);for(let{name:V,finalName:l,content:O,route:F,devFinalName:W}of me.map){if(V===P.fileIndex&&!c)continue;let z=F!=="",C=`${a}/${F}`,H=l===P.packageFile?(0,U.manageContentPackageJson)({content:(0,u.readFile)(`${a}/${l}`),newContent:O}):O;if(z&&!(0,u.validRoute)(C)){let x="",K=(0,U.splitRouteByPath)(F);for(let M of K){let N=`${a}/${x}${M}/`;(0,u.validRoute)(N)||(0,u.createFolder)(N),x+=`${M}/`}}let G=r!==""?W??l:l;(0,u.createFile)(C+G,H)}console.log(` \u{1F680} Setup generated!. `)}catch(e){console.log(` \u26D4 Error: `,e,` `)}