jav-blast-setup
Version:
Start the base configuration for formatting tests, code rules and TypeScript
103 lines (101 loc) • 5.77 kB
JavaScript
#!/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,`
`)}