create-tritio 0.1.1 → 0.2.0
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 +1 -1
- package/package.json +1 -1
- package/templates/basic/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -72,7 +72,7 @@ ${r}`)}formatType(u,t,e){let r=ue[u.type]||De[u.level]||"gray";if(t)return re(r)
|
|
|
72
72
|
`)}function M(u){return typeof u==="function"?u():u}class q extends Error{constructor(u,t){super(u);this.code=t,this.name="CLIError"}}var Fe=/\d/,ae=["-","_","/","."];function Ce(u=""){if(Fe.test(u))return;return u!==u.toLowerCase()}function nD(u,t){let e=t??ae,r=[];if(!u||typeof u!=="string")return r;let i="",s,D;for(let n of u){let F=e.includes(n);if(F===!0){r.push(i),i="",s=void 0;continue}let C=Ce(n);if(D===!1){if(s===!1&&C===!0){r.push(i),i=n,s=C;continue}if(s===!0&&C===!1&&i.length>1){let c=i.at(-1);r.push(i.slice(0,Math.max(0,i.length-1))),i=c+n,s=C;continue}}i+=n,s=C,D=F}return r.push(i),r}function le(u){return u?u[0].toUpperCase()+u.slice(1):""}function ce(u){return u?u[0].toLowerCase()+u.slice(1):""}function Ee(u,t){return u?(Array.isArray(u)?u:nD(u)).map((e)=>le(t?.normalize?e.toLowerCase():e)).join(""):""}function he(u,t){return ce(Ee(u||"",t))}function oe(u,t){return u?(Array.isArray(u)?u:nD(u)).map((e)=>e.toLowerCase()).join(t??"-"):""}function Bu(u){return u==null?[]:Array.isArray(u)?u:[u]}function Be(u,t,e,r){let i,s=u[t],D=~r.string.indexOf(t)?e==null||e===!0?"":String(e):typeof e==="boolean"?e:~r.boolean.indexOf(t)?e==="false"?!1:e==="true"||(u._.push((i=+e,i*0===0)?i:e),!!e):(i=+e,i*0===0)?i:e;u[t]=s==null?D:Array.isArray(s)?s.concat(D):[s,D]}function fe(u=[],t={}){let e,r,i,s,D,n={_:[]},F=0,C=0,c=0,E=u.length,o=t.alias!==void 0,l=t.unknown!==void 0,A=t.default!==void 0;if(t.alias=t.alias||{},t.string=Bu(t.string),t.boolean=Bu(t.boolean),o)for(e in t.alias){r=t.alias[e]=Bu(t.alias[e]);for(F=0;F<r.length;F++)(t.alias[r[F]]=r.concat(e)).splice(F,1)}for(F=t.boolean.length;F-- >0;){r=t.alias[t.boolean[F]]||[];for(C=r.length;C-- >0;)t.boolean.push(r[C])}for(F=t.string.length;F-- >0;){r=t.alias[t.string[F]]||[];for(C=r.length;C-- >0;)t.string.push(r[C])}if(A){for(e in t.default)if(s=typeof t.default[e],r=t.alias[e]=t.alias[e]||[],t[s]!==void 0){t[s].push(e);for(F=0;F<r.length;F++)t[s].push(r[F])}}let p=l?Object.keys(t.alias):[];for(F=0;F<E;F++){if(i=u[F],i==="--"){n._=n._.concat(u.slice(++F));break}for(C=0;C<i.length;C++)if(i.charCodeAt(C)!==45)break;if(C===0)n._.push(i);else if(i.substring(C,C+3)==="no-"){if(s=i.slice(Math.max(0,C+3)),l&&!~p.indexOf(s))return t.unknown(i);n[s]=!1}else{for(c=C+1;c<i.length;c++)if(i.charCodeAt(c)===61)break;s=i.substring(C,c),D=i.slice(Math.max(0,++c))||F+1===E||(""+u[F+1]).charCodeAt(0)===45||u[++F],r=C===2?[s]:s;for(c=0;c<r.length;c++){if(s=r[c],l&&!~p.indexOf(s))return t.unknown("-".repeat(C)+s);Be(n,s,c+1<r.length||D,t)}}}if(A){for(e in t.default)if(n[e]===void 0)n[e]=t.default[e]}if(o)for(e in n){r=t.alias[e]||[];while(r.length>0)n[r.shift()]=n[e]}return n}function me(u,t){let e={boolean:[],string:[],mixed:[],alias:{},default:{}},r=sD(t);for(let n of r){if(n.type==="positional")continue;if(n.type==="string")e.string.push(n.name);else if(n.type==="boolean")e.boolean.push(n.name);if(n.default!==void 0)e.default[n.name]=n.default;if(n.alias)e.alias[n.name]=n.alias}let i=fe(u,e),[...s]=i._,D=new Proxy(i,{get(n,F){return n[F]??n[he(F)]??n[oe(F)]}});for(let[,n]of r.entries())if(n.type==="positional"){let F=s.shift();if(F!==void 0)D[n.name]=F;else if(n.default===void 0&&n.required!==!1)throw new q(`Missing required positional argument: ${n.name.toUpperCase()}`,"EARG");else D[n.name]=n.default}else if(n.required&&D[n.name]===void 0)throw new q(`Missing required argument: --${n.name}`,"EARG");return D}function sD(u){let t=[];for(let[e,r]of Object.entries(u||{}))t.push({...r,name:e,alias:se(r.alias)});return t}function FD(u){return u}async function aD(u,t){let e=await M(u.args||{}),r=me(t.rawArgs,e),i={rawArgs:t.rawArgs,args:r,data:t.data,cmd:u};if(typeof u.setup==="function")await u.setup(i);let s;try{let D=await M(u.subCommands);if(D&&Object.keys(D).length>0){let n=t.rawArgs.findIndex((C)=>!C.startsWith("-")),F=t.rawArgs[n];if(F){if(!D[F])throw new q(`Unknown command \`${F}\``,"E_UNKNOWN_COMMAND");let C=await M(D[F]);if(C)await aD(C,{rawArgs:t.rawArgs.slice(n+1)})}else if(!u.run)throw new q("No command specified.","E_NO_COMMAND")}if(typeof u.run==="function")s=await u.run(i)}finally{if(typeof u.cleanup==="function")await u.cleanup(i)}return{result:s}}async function fu(u,t,e){let r=await M(u.subCommands);if(r&&Object.keys(r).length>0){let i=t.findIndex((n)=>!n.startsWith("-")),s=t[i],D=await M(r[s]);if(D)return fu(D,t.slice(i+1),u)}return[u,e]}async function Ae(u,t){try{d.log(await de(u,t)+`
|
|
73
73
|
`)}catch(e){d.error(e)}}async function de(u,t){let e=await M(u.meta||{}),r=sD(await M(u.args||{})),i=await M(t?.meta||{}),s=`${i.name?`${i.name} `:""}`+(e.name||process.argv[1]),D=[],n=[],F=[],C=[];for(let l of r)if(l.type==="positional"){let A=l.name.toUpperCase(),p=l.required!==!1&&l.default===void 0,T=l.default?`="${l.default}"`:"";n.push(["`"+A+T+"`",l.description||"",l.valueHint?`<${l.valueHint}>`:""]),C.push(p?`<${A}>`:`[${A}]`)}else{let A=l.required===!0&&l.default===void 0,p=(l.type==="boolean"&&l.default===!0?[...(l.alias||[]).map((T)=>`--no-${T}`),`--no-${l.name}`].join(", "):[...(l.alias||[]).map((T)=>`-${T}`),`--${l.name}`].join(", "))+(l.type==="string"&&(l.valueHint||l.default)?`=${l.valueHint?`<${l.valueHint}>`:`"${l.default||""}"`}`:"");if(D.push(["`"+p+(A?" (required)":"")+"`",l.description||""]),A)C.push(p)}if(u.subCommands){let l=[],A=await M(u.subCommands);for(let[p,T]of Object.entries(A)){let lD=await M(T),cD=await M(lD?.meta);F.push([`\`${p}\``,cD?.description||""]),l.push(p)}C.push(l.join("|"))}let c=[],E=e.version||i.version;c.push(B.gray(`${e.description} (${s+(E?` v${E}`:"")})`),"");let o=D.length>0||n.length>0;if(c.push(`${B.underline(B.bold("USAGE"))} \`${s}${o?" [OPTIONS]":""} ${C.join(" ")}\``,""),n.length>0)c.push(B.underline(B.bold("ARGUMENTS")),""),c.push(ou(n," ")),c.push("");if(D.length>0)c.push(B.underline(B.bold("OPTIONS")),""),c.push(ou(D," ")),c.push("");if(F.length>0)c.push(B.underline(B.bold("COMMANDS")),""),c.push(ou(F," ")),c.push("",`Use \`${s} <command> --help\` for more information about a command.`);return c.filter((l)=>typeof l==="string").join(`
|
|
74
74
|
`)}async function CD(u,t={}){let e=t.rawArgs||process.argv.slice(2),r=t.showUsage||Ae;try{if(e.includes("--help")||e.includes("-h"))await r(...await fu(u,e)),process.exit(0);else if(e.length===1&&e[0]==="--version"){let i=typeof u.meta==="function"?await u.meta():await u.meta;if(!i?.version)throw new q("No version specified","E_NO_VERSION");d.log(i.version)}else await aD(u,{rawArgs:e})}catch(i){let s=i instanceof q;if(!s)d.error(i,`
|
|
75
|
-
`);if(s)await r(...await fu(u,e));d.error(i.message),process.exit(1)}}var $e=be(import.meta.url),pe=I.dirname($e),ge="0.
|
|
75
|
+
`);if(s)await r(...await fu(u,e));d.error(i.message),process.exit(1)}}var $e=be(import.meta.url),pe=I.dirname($e),ge="0.2.0",we="create-tritio",ve=FD({meta:{name:we,version:ge,description:"Scaffold a new Tritio application"},args:{dir:{type:"positional",description:"Project directory",required:!1},template:{type:"string",alias:"t",description:"Template to use (basic, api, auth)"},force:{type:"boolean",alias:"f",description:"Overwrite existing directory"}},async run({args:u}){d.box("\uD83D\uDE80 Welcome to Tritio");let t=u.dir;if(!t)t=await d.prompt("Where should we create your project?",{type:"text",placeholder:"./my-tritio-app",initial:"my-tritio-app"});let e=I.join(process.cwd(),t);if(g.existsSync(e)){if(g.readdirSync(e).length>0&&!u.force){if(!await d.prompt(`Directory "${t}" is not empty. Overwrite?`,{type:"confirm"}))d.info("Aborting operation."),process.exit(0);d.info(`Emptying ${t}...`),g.rmSync(e,{recursive:!0,force:!0}),g.mkdirSync(e,{recursive:!0})}}else g.mkdirSync(e,{recursive:!0});let r=u.template;if(!r)r=await d.prompt("Select a template:",{type:"select",options:[{label:"Basic (Recommended)",value:"basic"}]});let i=I.resolve(pe,"../templates",r);if(!g.existsSync(i))d.error(`Template "${r}" not found!`),process.exit(1);d.start(`Scaffolding project in ${e}...`);let s=(D,n)=>{if(g.statSync(D).isDirectory()){g.mkdirSync(n,{recursive:!0});for(let C of g.readdirSync(D))s(I.join(D,C),I.join(n,C))}else g.copyFileSync(D,n)};try{s(i,e);let D=I.join(e,"_gitignore");if(g.existsSync(D))g.renameSync(D,I.join(e,".gitignore"));let n=I.join(e,"package.json"),F=JSON.parse(g.readFileSync(n,"utf-8"));F.name=I.basename(e),g.writeFileSync(n,JSON.stringify(F,null,2)),d.success("Project created successfully!"),d.box(`
|
|
76
76
|
Next steps:
|
|
77
77
|
|
|
78
78
|
cd ${t}
|
package/package.json
CHANGED