create-tona 0.0.7 → 0.0.9

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 CHANGED
@@ -56,7 +56,7 @@ Options:
56
56
  --interactive / --no-interactive force interactive / non-interactive mode
57
57
 
58
58
  Available templates:
59
- ${st(`js JavaScript`)}
60
- ${ot(`ts TypeScript`)}`,lt=[`js`,`ts`],ut={_gitignore:`.gitignore`},Z=`tona-theme`;function dt([e,...t],n){let{status:r,error:i}=it.default.sync(e,t,n);r!=null&&r>0&&process.exit(r),i&&(console.error(`\n${e} ${t.join(` `)} error!`),console.error(i),process.exit(1))}function ft(e,t){if(process.env._VITE_TEST_CLI){q.step(`Installing dependencies with ${t}... (skipped in test)`);return}q.step(`Installing dependencies with ${t}...`),dt(xt(t),{stdio:`inherit`,cwd:e})}function pt(e,t){if(process.env._VITE_TEST_CLI){q.step(`Starting dev server... (skipped in test)`);return}q.step(`Starting dev server...`),dt(St(t,`dev`),{stdio:`inherit`,cwd:e})}async function mt(){let e=Y._[0]?Q(String(Y._[0])):void 0,i=Y.template,a=Y.overwrite,o=Y.immediate,s=Y.interactive;if(Y.help){console.log(ct);return}let c=s??process.stdin.isTTY,l=bt(process.env.npm_config_user_agent),u=()=>Ve(`Operation cancelled`),d=e;if(!d)if(c){let e=await Re({message:`Project name:`,defaultValue:Z,placeholder:Z,validate:e=>e.length===0||Q(e).length>0?void 0:`Invalid project name`});if(P(e))return u();d=Q(e)}else d=Z;if(t.existsSync(d)&&!vt(d)){let e=a?`yes`:void 0;if(!e)if(c){let t=await Be({message:(d===`.`?`Current directory`:`Target directory "${d}"`)+` is not empty. Please choose how to proceed:`,options:[{label:`Cancel operation`,value:`no`},{label:`Remove existing files and continue`,value:`yes`},{label:`Ignore files and continue`,value:`ignore`}]});if(P(t))return u();e=t}else e=`no`;if(e===`yes`)yt(d);else if(e===`no`){u();return}}let f=n.basename(n.resolve(d));if(!gt(f))if(c){let e=await Re({message:`Package name:`,defaultValue:$(f),placeholder:$(f),validate(e){if(!gt(e))return`Invalid package.json name`}});if(P(e))return u();f=e}else f=$(f);let p=i,m=!1;if(i&&!lt.includes(i)&&(p=void 0,m=!0),!p)if(c){let e=await Be({message:m?`"${i}" isn't a valid template. Please choose from below: `:`Select a template:`,options:[{label:st(`JavaScript`),value:`js`},{label:ot(`TypeScript`),value:`ts`}]});if(P(e))return u();p=e}else p=`ts`;let h=l?l.name:`npm`,g=o;if(g===void 0)if(c){let e=await ze({message:`Install with ${h} and start now?`});if(P(e))return u();g=e}else g=!1;let _=n.join(X,d);t.mkdirSync(_,{recursive:!0}),q.step(`Scaffolding project in ${_}...`);let v=n.resolve(r(import.meta.url),`../..`,`template-${p}`),y=(e,r)=>{let i=n.join(_,ut[e]??e);if(r)t.writeFileSync(i,r);else if(e===`index.html`){let r=n.join(v,e),a=t.readFileSync(r,`utf-8`).replace(/<title>.*?<\/title>/,`<title>${f}</title>`);t.writeFileSync(i,a)}else ht(n.join(v,e),i)},b=t.readdirSync(v);for(let e of b.filter(e=>e!==`package.json`))y(e);let x=JSON.parse(t.readFileSync(n.join(v,`package.json`),`utf-8`));if(x.name=f,y(`package.json`,JSON.stringify(x,null,2)+`
59
+ ${ot(`ts TypeScript`)}
60
+ ${st(`js JavaScript`)}`,lt=[`js`,`ts`],ut={_gitignore:`.gitignore`},Z=`tona-theme`;function dt([e,...t],n){let{status:r,error:i}=it.default.sync(e,t,n);r!=null&&r>0&&process.exit(r),i&&(console.error(`\n${e} ${t.join(` `)} error!`),console.error(i),process.exit(1))}function ft(e,t){if(process.env._VITE_TEST_CLI){q.step(`Installing dependencies with ${t}... (skipped in test)`);return}q.step(`Installing dependencies with ${t}...`),dt(xt(t),{stdio:`inherit`,cwd:e})}function pt(e,t){if(process.env._VITE_TEST_CLI){q.step(`Starting dev server... (skipped in test)`);return}q.step(`Starting dev server...`),dt(St(t,`dev`),{stdio:`inherit`,cwd:e})}async function mt(){let e=Y._[0]?Q(String(Y._[0])):void 0,i=Y.template,a=Y.overwrite,o=Y.immediate,s=Y.interactive;if(Y.help){console.log(ct);return}let c=s??process.stdin.isTTY,l=bt(process.env.npm_config_user_agent),u=()=>Ve(`Operation cancelled`),d=e;if(!d)if(c){let e=await Re({message:`Project name:`,defaultValue:Z,placeholder:Z,validate:e=>e.length===0||Q(e).length>0?void 0:`Invalid project name`});if(P(e))return u();d=Q(e)}else d=Z;if(t.existsSync(d)&&!vt(d)){let e=a?`yes`:void 0;if(!e)if(c){let t=await Be({message:(d===`.`?`Current directory`:`Target directory "${d}"`)+` is not empty. Please choose how to proceed:`,options:[{label:`Cancel operation`,value:`no`},{label:`Remove existing files and continue`,value:`yes`},{label:`Ignore files and continue`,value:`ignore`}]});if(P(t))return u();e=t}else e=`no`;if(e===`yes`)yt(d);else if(e===`no`){u();return}}let f=n.basename(n.resolve(d));if(!gt(f))if(c){let e=await Re({message:`Package name:`,defaultValue:$(f),placeholder:$(f),validate(e){if(!gt(e))return`Invalid package.json name`}});if(P(e))return u();f=e}else f=$(f);let p=i,m=!1;if(i&&!lt.includes(i)&&(p=void 0,m=!0),!p)if(c){let e=await Be({message:m?`"${i}" isn't a valid template. Please choose from below: `:`Select a template:`,options:[{label:ot(`TypeScript`),value:`ts`},{label:st(`JavaScript`),value:`js`}]});if(P(e))return u();p=e}else p=`ts`;let h=l?l.name:`npm`,g=o;if(g===void 0)if(c){let e=await ze({message:`Install with ${h} and start now?`});if(P(e))return u();g=e}else g=!1;let _=n.join(X,d);t.mkdirSync(_,{recursive:!0}),q.step(`Scaffolding project in ${_}...`);let v=n.resolve(r(import.meta.url),`../..`,`template-${p}`),y=(e,r)=>{let i=n.join(_,ut[e]??e);if(r)t.writeFileSync(i,r);else if(e===`index.html`){let r=n.join(v,e),a=t.readFileSync(r,`utf-8`).replace(/<title>.*?<\/title>/,`<title>${f}</title>`);t.writeFileSync(i,a)}else ht(n.join(v,e),i)},b=t.readdirSync(v);for(let e of b.filter(e=>e!==`package.json`))y(e);let x=JSON.parse(t.readFileSync(n.join(v,`package.json`),`utf-8`));if(x.name=f,y(`package.json`,JSON.stringify(x,null,2)+`
61
61
  `),g)ft(_,h),pt(_,h);else{let e=``,t=n.relative(X,_);e+=`Done. Now run:
62
62
  `,_!==X&&(e+=`\n cd ${t.includes(` `)?`"${t}"`:t}`),e+=`\n ${xt(h).join(` `)}`,e+=`\n ${St(h,`dev`).join(` `)}`,He(e)}}function Q(e){return e.trim().replace(/\/+$/g,``)}function ht(e,n){t.statSync(e).isDirectory()?_t(e,n):t.copyFileSync(e,n)}function gt(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function $(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/^[._]/,``).replace(/[^a-z\d\-~]+/g,`-`)}function _t(e,r){t.mkdirSync(r,{recursive:!0});for(let i of t.readdirSync(e))ht(n.resolve(e,i),n.resolve(r,i))}function vt(e){let n=t.readdirSync(e);return n.length===0||n.length===1&&n[0]===`.git`}function yt(e){if(t.existsSync(e))for(let r of t.readdirSync(e))r!==`.git`&&t.rmSync(n.resolve(e,r),{recursive:!0,force:!0})}function bt(e){if(!e)return;let t=e.split(` `)[0].split(`/`);return{name:t[0],version:t[1]}}function xt(e){return e===`yarn`?[e]:[e,`install`]}function St(e,t){return e===`yarn`||e===`pnpm`||e===`bun`?[e,t]:e===`deno`?[e,`task`,t]:[e,`run`,t]}mt().catch(e=>{console.error(e)});export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-tona",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "guangzan",
@@ -2,7 +2,12 @@ import { createTheme } from 'tona'
2
2
  import './style.css'
3
3
 
4
4
  function myPlugin() {
5
- console.log('Hello Tona!')
5
+ const h1 = document.createElement('h1')
6
+ h1.textContent = 'hello Tona!'
7
+ h1.className = 'tona-h1'
8
+
9
+ const body = document.querySelector('body')
10
+ body.prepend(h1)
6
11
  }
7
12
 
8
13
  createTheme().use(myPlugin)
@@ -0,0 +1,3 @@
1
+ .tona-h1 {
2
+ color: red;
3
+ }
@@ -2,7 +2,12 @@ import { createTheme } from 'tona'
2
2
  import './style.css'
3
3
 
4
4
  function myPlugin() {
5
- console.log('Hello Tona!')
5
+ const h1 = document.createElement('h1')
6
+ h1.textContent = 'hello Tona!'
7
+ h1.className = 'tona-h1'
8
+
9
+ const body = document.querySelector('body') as HTMLBodyElement
10
+ body.prepend(h1)
6
11
  }
7
12
 
8
13
  createTheme().use(myPlugin)
@@ -0,0 +1,3 @@
1
+ .tona-h1 {
2
+ color: red;
3
+ }