create-valaxy 0.18.6 → 0.18.8

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import T from"node:process";import a from"node:fs";import s from"node:path";import{fileURLToPath as B}from"node:url";import{execa as E}from"execa";import{red as F,dim as m,gray as H,blue as f,yellow as v,bold as P,green as p,cyan as $,reset as y}from"kolorist";import Q from"minimist";import h from"prompts";const W="0.18.6";function z(e){return e?.trim().replace(/\/+$/g,"")}function q(e){const o=a.readdirSync(e);return o.length===0||o.length===1&&o[0]===".git"}function O(e,o){a.statSync(e).isDirectory()?G(e,o):a.copyFileSync(e,o)}function G(e,o){a.mkdirSync(o,{recursive:!0});for(const n of a.readdirSync(e)){const g=s.resolve(e,n),i=s.resolve(o,n);O(g,i)}}function K(e){if(console.log(`
2
- ${F("Removing")} ${m(e)}`),!!a.existsSync(e))for(const o of a.readdirSync(e))o!==".git"&&a.rmSync(s.resolve(e,o),{recursive:!0,force:!0})}function R(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function M(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}function X(e){if(!e)return;const o=e.split(" ")[0].split("/");return{name:o[0],version:o[1]}}const _={name:"starter",display:"Starter",repo:"https://github.com/valaxyjs/valaxy-theme-starter"};async function Z(e){const o=_.name;let n=e.themeName||o;if(!n){const{theme:i}=await h({type:"text",name:"theme",message:"Theme name: valaxy-theme-",initial:o});n=i||o}const g=`valaxy-theme-${n.trim()}`;return console.log(` ${m("npx")} ${H("degit")} ${f(_.repo)} ${v(g)}`),await E("npx",["degit",_.repo,g],{stdio:"inherit"}),console.log(),console.log(` ${P("Check it")}:`),console.log(),console.log(`- Change ${P("author")} name in ${v("LICENSE")} & ${p("package.json")} & ${f(".github")}`),console.log(`- Change ${f("valaxy.config.ts")} theme: ${v("starter")} to ${$(`${n}`)}`),console.log(`- Rename ${v(`valaxy-theme-${n}`)} to ${$(`valaxy-theme-${n}`)}`),console.log(),console.log(` ${$("\u2728")}`),console.log(),`valaxy-theme-${n}`}const ee={_gitignore:".gitignore",_npmrc:".npmrc"},k=[{name:"blog",display:"Blog",desc:"For Most Users",message:"Project name:",initial:"valaxy-blog",color:$},{name:"theme",display:"Theme",desc:"For Theme Developers",message:"Theme name: valaxy-theme-",initial:"starter",prefix:"valaxy-theme-",color:p,customInit:async e=>Z(e).catch(o=>{console.error(o)})},{name:"addon",display:"Addon",desc:"For Addon Developers",message:"Addon name: valaxy-addon-",initial:"template",prefix:"valaxy-addon-",color:v}],j=k.map(e=>e.name),d=Q(T.argv.slice(2)),D=T.cwd(),oe="valaxy-blog",te=B(import.meta.url);async function ne(){console.log(),console.log(` ${P("\u{1F30C} Valaxy")} ${f(`v${W}`)}`),console.log();const e=z(d._[0]),o=d.template||d.t,n=d.y||d.yes,g=d.port||d.p;let i=e||oe;const x=()=>i==="."?s.basename(s.resolve()):i;let b,r=k[0];if(n)b={projectName:i,overwrite:!1,packageName:M(x())};else{r=(await h({type:o&&j.includes(o)?null:"select",name:"template",message:typeof o=="string"&&!j.includes(o)?y(`"${o}" isn't a valid template. Please choose from below: `):y("Select a type:"),initial:0,choices:k.map(t=>{const l=t.color;return{title:l(t.display||t.name)+m(` - ${t.desc}`),value:t}})})).template;try{b=await h([{type:o&&j.includes(o)?null:"select",name:"template",message:typeof o=="string"&&!j.includes(o)?y(`"${o}" isn't a valid template. Please choose from below: `):y("Select a type:"),initial:0,choices:k.map(t=>{const l=t.color;return{title:l(t.display||t.name)+m(` - ${t.desc}`),value:t}})},{type:e?null:"text",name:"projectName",message:y(r.message),initial:r.initial,onState:t=>{i=z(r.prefix?r.prefix+t.value:t.value)||r.initial}},{type:()=>!a.existsSync(i)||q(i)?null:"confirm",name:"overwrite",message:()=>`${i==="."?"Current directory":`Target directory "${i}"`} is not empty. Remove existing files and continue?`},{type:(t,{overwrite:l})=>{if(l===!1)throw new Error(`${F("\u2716")} Operation cancelled`);return null},name:"overwriteChecker"},{type:()=>R(x())?null:"text",name:"packageName",message:y("Package name:"),initial:()=>M(x()),validate:t=>R(t)||"Invalid package.json name"}],{onCancel:()=>{throw new Error(`${F("\u2716")} Operation cancelled`)}})}catch(t){console.log(t.message);return}}const{projectName:w,overwrite:U}=b,V=r.prefix?r.prefix+w:w,c=s.join(D,V);if(U?K(c):a.existsSync(c)||a.mkdirSync(c,{recursive:!0}),r.customInit)await r.customInit({themeName:w});else{const t=s.resolve(te,"../..",`template-${r.name}`),l=(u,S)=>{const L=s.join(c,ee[u]??u);S?a.writeFileSync(L,S):O(s.join(t,u),L)},Y=a.readdirSync(t);for(const u of Y.filter(S=>S!=="package.json"))l(u);const A=JSON.parse(a.readFileSync(s.join(t,"package.json"),"utf-8"));A.name=w||x(),l("package.json",`${JSON.stringify(A,null,2)}
3
- `)}console.log(` ${m("\u{1F4C1}")} ${m(c)}`),console.log(),console.log(m(" Scaffolding project in ")+i+m(" ..."));const I=X(T.env.npm_config_user_agent),C=I?I.name:"npm",J=s.relative(D,c);if(console.log(p(` Done.
4
- `)),r.name==="addon")return;let N;if(n?N=!1:{yes:N}=await h({type:"confirm",name:"yes",initial:"Y",message:"Install and start it now?"}),N){let t;if(n?t="pnpm":{agent:t}=await h({name:"agent",type:"select",message:"Choose the agent",choices:["npm","yarn","pnpm"].map(l=>({value:l,title:l})),initial:2}),!t)return;await E(t,["install"],{stdio:"inherit",cwd:c}),await E(t,g?["run","dev","--port",g]:["run","dev"],{stdio:"inherit",cwd:c})}else{switch(console.log(m(`
1
+ import C from"node:process";import a from"node:fs";import l from"node:path";import{fileURLToPath as B}from"node:url";import{execa as N}from"execa";import{red as T,dim as m,gray as H,blue as u,yellow as f,bold as E,green as g,cyan as v,reset as S}from"kolorist";import Q from"minimist";import $ from"prompts";const W="0.18.8";function L(e){return e?.trim().replace(/\/+$/g,"")}function q(e){const o=a.readdirSync(e);return o.length===0||o.length===1&&o[0]===".git"}function z(e,o){a.statSync(e).isDirectory()?G(e,o):a.copyFileSync(e,o)}function G(e,o){a.mkdirSync(o,{recursive:!0});for(const n of a.readdirSync(e)){const p=l.resolve(e,n),r=l.resolve(o,n);z(p,r)}}function K(e){if(console.log(`
2
+ ${T("Removing")} ${m(e)}`),!!a.existsSync(e))for(const o of a.readdirSync(e))o!==".git"&&a.rmSync(l.resolve(e,o),{recursive:!0,force:!0})}function O(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function R(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}function X(e){if(!e)return;const o=e.split(" ")[0].split("/");return{name:o[0],version:o[1]}}const F={name:"starter",display:"Starter",repo:"https://github.com/valaxyjs/valaxy-theme-starter"};async function Z(e){const o=F.name;let n=e.themeName||o;if(!n){const{theme:r}=await $({type:"text",name:"theme",message:"Theme name: valaxy-theme-",initial:o});n=r||o}const p=`valaxy-theme-${n.trim()}`;return console.log(` ${m("npx")} ${H("degit")} ${u(F.repo)} ${f(p)}`),await N("npx",["degit",F.repo,p],{stdio:"inherit"}),console.log(),console.log(` ${E("Check it")}:`),console.log(),console.log(`- Change ${E("author")} name in ${f("LICENSE")} & ${g("package.json")} & ${u(".github")}`),console.log(`- Change ${u("valaxy.config.ts")} theme: ${f("starter")} to ${v(`${n}`)}`),console.log(`- Rename ${f(`valaxy-theme-${n}`)} to ${v(`valaxy-theme-${n}`)}`),console.log(),console.log(` ${v("\u2728")}`),console.log(),`valaxy-theme-${n}`}const ee={_gitignore:".gitignore",_npmrc:".npmrc"},_=[{name:"blog",display:"Blog",desc:"For Most Users",message:"Project name:",initial:"valaxy-blog",color:v},{name:"theme",display:"Theme",desc:"For Theme Developers",message:"Theme name: valaxy-theme-",initial:"starter",prefix:"valaxy-theme-",color:g,customInit:async e=>Z(e).catch(o=>{console.error(o)})},{name:"addon",display:"Addon",desc:"For Addon Developers",message:"Addon name: valaxy-addon-",initial:"template",prefix:"valaxy-addon-",color:f}],M=_.map(e=>e.name),d=Q(C.argv.slice(2)),P=C.cwd(),oe="valaxy-blog",te=B(import.meta.url);async function ne(){console.log(),console.log(` ${E("\u{1F30C} Valaxy")} ${u(`v${W}`)}`),console.log();const e=L(d._[0]),o=d.template||d.t,n=d.y||d.yes,p=d.port||d.p;let r=e||oe;const h=()=>r==="."?l.basename(l.resolve()):r;let k,i=_[0];if(n)k={projectName:r,overwrite:!1,packageName:R(h())};else{i=(await $({type:o&&M.includes(o)?null:"select",name:"template",message:typeof o=="string"&&!M.includes(o)?S(`"${o}" isn't a valid template. Please choose from below: `):S("Select a type:"),initial:0,choices:_.map(t=>{const c=t.color;return{title:c(t.display||t.name)+m(` - ${t.desc}`),value:t}})})).template;try{k=await $([{type:e?null:"text",name:"projectName",message:S(i.message),initial:i.initial,onState:t=>{r=L(i.prefix?i.prefix+t.value:t.value)||i.initial}},{type:()=>!a.existsSync(r)||q(r)?null:"confirm",name:"overwrite",message:()=>`${r==="."?"Current directory":`Target directory "${r}"`} is not empty. Remove existing files and continue?`},{type:(t,{overwrite:c})=>{if(c===!1)throw new Error(`${T("\u2716")} Operation cancelled`);return null},name:"overwriteChecker"},{type:()=>O(h())?null:"text",name:"packageName",message:S("Package name:"),initial:()=>R(h()),validate:t=>O(t)||"Invalid package.json name"}],{onCancel:()=>{throw new Error(`${T("\u2716")} Operation cancelled`)}})}catch(t){console.log(t.message);return}}const{projectName:x,overwrite:U}=k,V=i.prefix?i.prefix+x:x,s=l.join(P,V);if(U?K(s):a.existsSync(s)||a.mkdirSync(s,{recursive:!0}),i.customInit)await i.customInit({themeName:x});else{const t=l.resolve(te,"../..",`template-${i.name}`),c=(y,w)=>{const A=l.join(s,ee[y]??y);w?a.writeFileSync(A,w):z(l.join(t,y),A)},Y=a.readdirSync(t);for(const y of Y.filter(w=>w!=="package.json"))c(y);const I=JSON.parse(a.readFileSync(l.join(t,"package.json"),"utf-8"));I.name=x||h(),c("package.json",`${JSON.stringify(I,null,2)}
3
+ `)}console.log(` ${m("\u{1F4C1}")} ${m(s)}`),console.log(),console.log(m(" Scaffolding project in ")+r+m(" ..."));const D=X(C.env.npm_config_user_agent),j=D?D.name:"npm",J=l.relative(P,s);if(console.log(g(` Done.
4
+ `)),i.name==="addon")return;let b;if(n?b=!1:{yes:b}=await $({type:"confirm",name:"yes",initial:"Y",message:"Install and start it now?"}),b){let t;if(n?t="pnpm":{agent:t}=await $({name:"agent",type:"select",message:"Choose the agent",choices:["npm","yarn","pnpm"].map(c=>({value:c,title:c})),initial:2}),!t)return;await N(t,["install"],{stdio:"inherit",cwd:s}),await N(t,p?["run","dev","--port",p]:["run","dev"],{stdio:"inherit",cwd:s})}else{switch(console.log(m(`
5
5
  start it later by:
6
- `)),c!==D&&console.log(` ${p("cd")} ${f(J)}`),C){case"yarn":console.log(` ${p("yarn")}`),console.log(` ${p("yarn")} dev`);break;default:console.log(` ${p(C)} install`),console.log(` ${p(C)} run dev`);break}console.log(),console.log(` ${$("\u2728")}`)}}ne().catch(e=>{console.error(e)});
6
+ `)),s!==P&&console.log(` ${g("cd")} ${u(J)}`),j){case"yarn":console.log(` ${g("yarn")}`),console.log(` ${g("yarn")} dev`);break;default:console.log(` ${g(j)} install`),console.log(` ${g(j)} run dev`);break}console.log(),console.log(` ${v("\u2728")}`)}}ne().catch(e=>{console.error(e)});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-valaxy",
3
3
  "type": "module",
4
- "version": "0.18.6",
4
+ "version": "0.18.8",
5
5
  "description": "Create Starter Template for Valaxy",
6
6
  "author": {
7
7
  "email": "me@yunyoujun.cn",
@@ -27,7 +27,7 @@
27
27
  "node": "^18.0.0 || >=20.0.0"
28
28
  },
29
29
  "dependencies": {
30
- "execa": "8.0.1",
30
+ "execa": "9.0.2",
31
31
  "kolorist": "^1.8.0",
32
32
  "minimist": "^1.2.8",
33
33
  "prompts": "^2.4.2"
@@ -12,8 +12,8 @@
12
12
  "serve": "vite preview"
13
13
  },
14
14
  "dependencies": {
15
- "valaxy": "0.18.6",
16
- "valaxy-theme-yun": "0.18.6"
15
+ "valaxy": "0.18.8",
16
+ "valaxy-theme-yun": "0.18.8"
17
17
  },
18
18
  "devDependencies": {
19
19
  "typescript": "^5.4.5"