@kunver/new 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import G from"fs";import H from"path";import{input as K,select as y}from"@inquirer/prompts";import
|
|
2
|
+
import G from"fs";import H from"path";import{input as K,select as y}from"@inquirer/prompts";import i from"chalk";import{join as h}from"path";import{fileURLToPath as _}from"url";import B from"path";import{execa as S}from"execa";import u from"chalk";import $ from"ora";async function c(e,t,a){let r;switch(e){case"pnpm":r=`cd ${t} && pnpm install`;break;case"npm":r=`cd ${t} && npm install`;break;case"bun":r=`cd ${t} && bun install`;break;default:r=`cd ${t} && pnpm install`}let o=$("Installing dependencies with "+u.blue(e)).start();try{return await S(r,{shell:!0,cwd:a}),o.succeed("Installed dependencies for "+u.blue(t)),!0}catch{return o.fail("Failed to install dependencies for "+u.blue(t)),!1}}import A from"fs-extra";import I from"ora";async function p(e,t){let a=I("Copying template folder...").start();try{return await A.copy(e,t),a.succeed("Copied template folder"),!0}catch{return a.fail("Failed to copy template folder"),!1}}import{spawn as E}from"child_process";import b from"ora";import s from"chalk";import{execa as O}from"execa";async function l(e,t){let a=b("Approving builds for "+s.blue(e)).start();try{return new Promise(r=>{let o=E("pnpm",["approve-builds"],{cwd:`${t}/${e}`,stdio:["pipe","inherit","inherit"],shell:!0});setTimeout(()=>{o.stdin?.write(`a
|
|
3
3
|
`),setTimeout(()=>{o.stdin?.write(`y
|
|
4
|
-
`),o.stdin?.end()},1e3)},2e3),o.on("close",n=>{n===0?(a.succeed("Approved builds for "+s.blue(e)),r(!0)):(a.fail("Failed to approve builds for "+s.blue(e)),r(!1))}),o.on("error",n=>{a.fail("Failed to approve builds for "+s.blue(e)),console.error(n),r(!1)})})}catch(r){return a.fail("Failed to approve builds for "+s.blue(e)),console.error(r),!1}}async function m(e,t){let a=`cd ${e} && bun pm trust --all`,r=
|
|
4
|
+
`),o.stdin?.end()},1e3)},2e3),o.on("close",n=>{n===0?(a.succeed("Approved builds for "+s.blue(e)),r(!0)):(a.fail("Failed to approve builds for "+s.blue(e)),r(!1))}),o.on("error",n=>{a.fail("Failed to approve builds for "+s.blue(e)),console.error(n),r(!1)})})}catch(r){return a.fail("Failed to approve builds for "+s.blue(e)),console.error(r),!1}}async function m(e,t){let a=`cd ${e} && bun pm trust --all`,r=b("Approving builds for "+s.blue(e)).start();try{return await O(a,{shell:!0,cwd:t}),r.succeed("Approved builds for "+s.blue(e)),!0}catch{return r.fail("Failed to approve builds for "+s.blue(e)),!1}}var C=_(import.meta.url),D=B.dirname(C);async function k(e){let{name:t,packageManager:a,cwd:r=process.cwd()}=e,o=h(D,"templates","react-ts-tw");try{if(!await p(o,h(r,t)))throw new Error("Failed to copy template folder");if(!await c(a,t,r))throw new Error("Failed to install dependencies");return a==="pnpm"?await l(t,r):a==="bun"&&await m(t,r),!0}catch(n){throw console.error("Error creating React project:",n),n}}import{join as g}from"path";import{fileURLToPath as W}from"url";import J from"path";import z from"chalk";import{select as L}from"@inquirer/prompts";import{join as R}from"path";import x from"fs";async function j(e,t,a){let r=R(a,t,"package.json"),o=JSON.parse(x.readFileSync(r,"utf-8"));e==="bun"?o.scripts.manager=`bun manager.cjs ${e}`:o.scripts.manager=`node manager.cjs ${e}`,x.writeFileSync(r,JSON.stringify(o,null,2))}var U=["react - !not ready","vue - !not ready","svelte","vanilla - !not ready","solid - !not ready"],X=W(import.meta.url),v=J.dirname(X);async function M(e){let{name:t,packageManager:a,cwd:r=process.cwd(),selectedFramework:o}=e;try{let n=o||await L({message:z.bold.magenta("Select a framework for WXT"),choices:U,default:"svelte"}),f=g(v,"templates","wxt-svelte");n==="svelte"&&(f=g(v,"templates","wxt-svelte")),await p(f,g(r,t))&&(await j(a,t,r),await c(a,t,r),a==="pnpm"?await l(t,r):a==="bun"&&await m(t,r))}catch(n){console.error(n)}}import{execa as q}from"execa";import d from"chalk";async function T(e,t,a){console.log(d.white("Opening "+d.blue(e)+" in "+d.green(a)));try{return await q(`${a} ${e}`,{shell:!0,cwd:t}),!0}catch(r){return console.error(d.red("Failed to open project in editor:"),r),!1}}var F=["react-ts-tw","next-ts - !not ready","wxt","cpp-cmake - !not ready"],P=["bun","pnpm","npm"];async function w(e){switch(e.projectType){case"react-ts-tw":await k({name:e.name,packageManager:e.packageManager});break;case"next-ts - !not ready":console.log("next-ts",e.packageManager,e.name);break;case"wxt":await M({name:e.name,packageManager:e.packageManager});break;case"cpp-cmake - !not ready":console.log("cpp-cmake",e.packageManager,e.name);break;default:console.log("Invalid project type",e.projectType);break}e.openInEditor!=="no"&&await T(e.name,process.cwd(),e.openInEditor)}var Q=await K({message:i.bold.blue("Enter a project name"),default:i.gray("my-project"),validate:e=>!e||e.trim().length<2?i.red("Project name must be at least 2 characters"):/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)?G.existsSync(H.resolve(process.cwd(),e))?i.red("A folder with that name already exists"):!0:i.red("Only lowercase letters, numbers, and single hyphens allowed. No spaces or special characters.")}),V=await y({message:i.bold.green("Select a package manager"),choices:P,default:"bun"}),Y=await y({message:i.bold.yellow("Select a project type"),default:"react-ts-tw",choices:F}),Z=await y({message:i.bold.cyan("Open in editor?"),choices:["no","windsurf","cursor","code"],default:"no"}),N={projectType:Y,packageManager:V,name:Q,openInEditor:Z};await w(N);
|