env-creator 1.2.6 → 1.2.8

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.
Files changed (2) hide show
  1. package/dist/index.js +8 -8
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import r from"fs";import v from"path";import w from"readline";import x from"util";function o(s,t){return typeof x.styleText=="function"?x.styleText(s,t):t}function y(){console.log("Usage: env-creator <command> [options]"),console.log(" or: env <command> [options]"),console.log("Commands:"),console.log(" c, create [KEY=value...] Create a .env file (optionally with values)"),console.log(" cfj, create-from-json <json> [--env <name>] Create .env or .env.<name> from JSON"),console.log(" s, split --env <dev|prod> Create environment-specific file from .env"),console.log(" srt, sort [-g/--groups] [file] Sort keys alphabetically (default: .env). Use -g to sort inside existing groups."),console.log(" d, delete [file] Delete an environment file (default: .env)"),console.log(" gc, generate-constants [file] [--out <file>] Generate a JS file with env variable constants"),console.log("Options:"),console.log(" -h, --help Show this help message")}var n={SUCCESS:"green",WARN:"yellow",ERROR:"red"};var l=process.argv.slice(2);l.length===0&&(y(),process.exit(0));var h=l[0];(h==="--help"||h==="-h"||h==="help")&&(y(),process.exit(0));switch(h){case"c":case"create":{let s=v.join(process.cwd(),".env");if(r.existsSync(s))console.log(o(n.WARN,".env already exists"));else{let t=l.slice(1),g="";if(t.length>0){let i=t.filter(d=>d.includes("="));g=i.join(`
2
- `)+(i.length>0?`
3
- `:"")}r.writeFileSync(s,g),console.log(g?o(n.SUCCESS,"Created .env with specified fields"):o(n.SUCCESS,"Created empty .env"))}break}case"cfj":case"create-from-json":{let s=l[1];s||(console.error(o(n.ERROR,"Please provide a JSON file")),process.exit(1)),r.existsSync(s)||(console.error(o(n.ERROR,"JSON file not found")),process.exit(1));let t=l.indexOf("--env"),i=`.env${t!==-1&&l[t+1]?`.${l[t+1]}`:""}`;if(r.existsSync(i)){console.log(o(n.WARN,`${i} already exists`));break}let d=JSON.parse(r.readFileSync(s,"utf-8")),m="";for(let e in d)m+=`${e}=${d[e]}
4
- `;r.writeFileSync(i,m),console.log(o(n.SUCCESS,`Created ${i} from JSON`));break}case"s":case"split":{let s=l.indexOf("--env");(s===-1||!l[s+1])&&(console.error(o(n.ERROR,"Please specify environment with --env <dev|prod>")),process.exit(1));let t=l[s+1],g=v.join(process.cwd(),".env");r.existsSync(g)||(console.error(o(n.ERROR,".env file not found")),process.exit(1));let d=r.readFileSync(g,"utf-8").split(/\r?\n/).filter(e=>e.trim()!==""&&!e.startsWith("#")).map(e=>e.split("=")[0]+"=").join(`
5
- `),m=v.join(process.cwd(),`.env.${t}`);if(r.existsSync(m)){console.log(o(n.WARN,`.env.${t} already exists`));break}r.writeFileSync(m,d),console.log(o(n.SUCCESS,`Created .env.${t} with keys only`));break}case"srt":case"sort":{let s=l.includes("--groups")||l.includes("-g"),g=l.slice(1).find(p=>p!=="--groups"&&p!=="-g")||".env",i=v.join(process.cwd(),g);r.existsSync(i)||(console.error(o(n.ERROR,`File ${g} does not exist`)),process.exit(1));let d=r.readFileSync(i,"utf-8").split(/\r?\n/),m=d[d.length-1]===""?d.slice(0,-1):d,e=[];if(s){let p=[];for(let f of m)if(!f.startsWith("#")&&f.trim()!==""&&f.includes("="))p.push(f);else{if(p.length>0&&(p.sort((a,S)=>a.split("=")[0].trim().localeCompare(S.split("=")[0].trim())),e.push(...p),p=[],f.trim()!==""&&e.push("")),f.trim()===""&&e.length>0&&e[e.length-1].trim()==="")continue;e.push(f)}for(p.length>0&&(p.sort((f,c)=>f.split("=")[0].trim().localeCompare(c.split("=")[0].trim())),e.push(...p));e.length>0&&e[e.length-1].trim()==="";)e.pop()}else{let p=[],f=[];for(let c of m)!c.startsWith("#")&&c.trim()!==""&&c.includes("=")?(p.push({header:f,entry:c,key:c.split("=")[0].trim()}),f=[]):c.trim()!==""&&f.push(c);p.sort((c,a)=>c.key.localeCompare(a.key));for(let c of p)e.push(...c.header),e.push(c.entry);e.push(...f)}r.writeFileSync(i,e.join(`
1
+ import d from"fs";import u from"path";import $ from"readline";import C from"util";function s(o,n){return typeof C.styleText=="function"?C.styleText(o,n):n}function x(){console.log("Usage: env-creator <command> [options]"),console.log(" or: env <command> [options]"),console.log("Commands:"),console.log(" c, create [KEY=value...] Create a .env file (optionally with values)"),console.log(" cfj, create-from-json <json> [--env <name>] Create .env or .env.<name> from JSON"),console.log(" s, split --env <dev|prod> Create environment-specific file from .env"),console.log(" srt, sort [-g/--groups] [file] Sort keys alphabetically (default: .env). Use -g to sort inside existing groups."),console.log(" d, delete [file] Delete an environment file (default: .env)"),console.log(" gc, generate-constants [file] [--out <file>] Generate a JS file with env variable constants"),console.log("Options:"),console.log(" -h, --help Show this help message")}var t={SUCCESS:"green",WARN:"yellow",ERROR:"red"};import w from"fs";import O from"path";function R(o){let n=O.join(process.cwd(),".env");if(w.existsSync(n))console.log(s(t.WARN,".env already exists"));else{let m=o.slice(1),l="";if(m.length>0){let c=m.filter(g=>g.includes("="));l=c.join(`
2
+ `)+(c.length>0?`
3
+ `:"")}w.writeFileSync(n,l),console.log(l?s(t.SUCCESS,"Created .env with specified fields"):s(t.SUCCESS,"Created empty .env"))}}import y from"fs";function F(o){let n=o[1];n||(console.error(s(t.ERROR,"Please provide a JSON file")),process.exit(1)),y.existsSync(n)||(console.error(s(t.ERROR,"JSON file not found")),process.exit(1));let m=o.indexOf("--env"),c=`.env${m!==-1&&o[m+1]?`.${o[m+1]}`:""}`;if(y.existsSync(c)){console.log(s(t.WARN,`${c} already exists`));return}let g=JSON.parse(y.readFileSync(n,"utf-8")),e="";for(let r in g)e+=`${r}=${g[r]}
4
+ `;y.writeFileSync(c,e),console.log(s(t.SUCCESS,`Created ${c} from JSON`))}var p=process.argv.slice(2);p.length===0&&(x(),process.exit(0));var h=p[0];(h==="--help"||h==="-h"||h==="help")&&(x(),process.exit(0));switch(h){case"c":case"create":{R(p);break}case"cfj":case"create-from-json":{F(p);break}case"s":case"split":{let o=p.indexOf("--env");(o===-1||!p[o+1])&&(console.error(s(t.ERROR,"Please specify environment with --env <dev|prod>")),process.exit(1));let n=p[o+1],m=u.join(process.cwd(),".env");d.existsSync(m)||(console.error(s(t.ERROR,".env file not found")),process.exit(1));let c=d.readFileSync(m,"utf-8").split(/\r?\n/).filter(e=>e.trim()!==""&&!e.startsWith("#")).map(e=>e.split("=")[0]+"=").join(`
5
+ `),g=u.join(process.cwd(),`.env.${n}`);if(d.existsSync(g)){console.log(s(t.WARN,`.env.${n} already exists`));break}d.writeFileSync(g,c),console.log(s(t.SUCCESS,`Created .env.${n} with keys only`));break}case"srt":case"sort":{let o=p.includes("--groups")||p.includes("-g"),m=p.slice(1).find(r=>r!=="--groups"&&r!=="-g")||".env",l=u.join(process.cwd(),m);d.existsSync(l)||(console.error(s(t.ERROR,`File ${m} does not exist`)),process.exit(1));let c=d.readFileSync(l,"utf-8").split(/\r?\n/),g=c[c.length-1]===""?c.slice(0,-1):c,e=[];if(o){let r=[];for(let f of g)if(!f.startsWith("#")&&f.trim()!==""&&f.includes("="))r.push(f);else{if(r.length>0&&(r.sort((a,S)=>a.split("=")[0].trim().localeCompare(S.split("=")[0].trim())),e.push(...r),r=[],f.trim()!==""&&e.push("")),f.trim()===""&&e.length>0&&e[e.length-1].trim()==="")continue;e.push(f)}for(r.length>0&&(r.sort((f,i)=>f.split("=")[0].trim().localeCompare(i.split("=")[0].trim())),e.push(...r));e.length>0&&e[e.length-1].trim()==="";)e.pop()}else{let r=[],f=[];for(let i of g)!i.startsWith("#")&&i.trim()!==""&&i.includes("=")?(r.push({header:f,entry:i,key:i.split("=")[0].trim()}),f=[]):i.trim()!==""&&f.push(i);r.sort((i,a)=>i.key.localeCompare(a.key));for(let i of r)e.push(...i.header),e.push(i.entry);e.push(...f)}d.writeFileSync(l,e.join(`
6
6
  `)+`
7
- `),console.log(o(n.SUCCESS,`Sorted keys in ${g}`));break}case"d":case"delete":{let s=l[1]||".env",t=v.join(process.cwd(),s);r.existsSync(t)?(r.unlinkSync(t),console.log(o(n.SUCCESS,`Deleted ${s}`))):console.log(o(n.WARN,`File ${s} does not exist`));break}case"gc":case"generate-constants":{let s=l.indexOf("--out"),t=s!==-1&&l[s+1]?l[s+1]:"envConstants.js",i=(s!==-1?l.filter((a,S)=>S!==s&&S!==s+1):l)[1]||".env",d=v.join(process.cwd(),i);if(!r.existsSync(d)){let S=r.readdirSync(process.cwd()).filter(u=>u.startsWith(".env")&&!u.endsWith(".example"));S.length>0?(i=S[0],d=v.join(process.cwd(),i),console.log(o(n.WARN,`File ${l[1]||".env"} not found. Using ${i} instead.`))):(console.error(o(n.ERROR,`File ${i} does not exist and no fallback .env* files were found`)),process.exit(1))}let e=r.readFileSync(d,"utf-8").split(/\r?\n/).filter(a=>!a.startsWith("#")&&a.trim()!==""&&a.includes("=")).map(a=>a.split("=")[0].trim());if(e.length===0){console.log(o(n.WARN,`No variables found in ${i}`));break}let f=`export const ENV = {
7
+ `),console.log(s(t.SUCCESS,`Sorted keys in ${m}`));break}case"d":case"delete":{let o=p[1]||".env",n=u.join(process.cwd(),o);d.existsSync(n)?(d.unlinkSync(n),console.log(s(t.SUCCESS,`Deleted ${o}`))):console.log(s(t.WARN,`File ${o} does not exist`));break}case"gc":case"generate-constants":{let o=p.indexOf("--out"),n=o!==-1&&p[o+1]?p[o+1]:"envConstants.js",l=(o!==-1?p.filter((a,S)=>S!==o&&S!==o+1):p)[1]||".env",c=u.join(process.cwd(),l);if(!d.existsSync(c)){let S=d.readdirSync(process.cwd()).filter(v=>v.startsWith(".env")&&!v.endsWith(".example"));S.length>0?(l=S[0],c=u.join(process.cwd(),l),console.log(s(t.WARN,`File ${p[1]||".env"} not found. Using ${l} instead.`))):(console.error(s(t.ERROR,`File ${l} does not exist and no fallback .env* files were found`)),process.exit(1))}let e=d.readFileSync(c,"utf-8").split(/\r?\n/).filter(a=>!a.startsWith("#")&&a.trim()!==""&&a.includes("=")).map(a=>a.split("=")[0].trim());if(e.length===0){console.log(s(t.WARN,`No variables found in ${l}`));break}let f=`export const ENV = {
8
8
  ${e.map(a=>` ${a}: process.env.${a},`).join(`
9
9
  `)}
10
10
  };
11
- `,c=v.join(process.cwd(),t);if(r.existsSync(c)){let a=w.createInterface({input:process.stdin,output:process.stdout});a.question(`File ${t} already exists. Overwrite? (y/n) `,S=>{let u=S.trim().toLowerCase();u==="y"||u==="yes"?(r.writeFileSync(c,f),console.log(o(n.SUCCESS,`Overwrote ${t} from ${i}`))):console.log(o(n.WARN,"Action cancelled. File was not overwritten.")),a.close()})}else r.writeFileSync(c,f),console.log(o(n.SUCCESS,`Generated ${t} from ${i}`));break}default:console.error(o(n.ERROR,`Unknown command: "${h}"
12
- `)),y(),process.exit(1)}
11
+ `,i=u.join(process.cwd(),n);if(d.existsSync(i)){let a=$.createInterface({input:process.stdin,output:process.stdout});a.question(`File ${n} already exists. Overwrite? (y/n) `,S=>{let v=S.trim().toLowerCase();v==="y"||v==="yes"?(d.writeFileSync(i,f),console.log(s(t.SUCCESS,`Overwrote ${n} from ${l}`))):console.log(s(t.WARN,"Action cancelled. File was not overwritten.")),a.close()})}else d.writeFileSync(i,f),console.log(s(t.SUCCESS,`Generated ${n} from ${l}`));break}default:console.error(s(t.ERROR,`Unknown command: "${h}"
12
+ `)),x(),process.exit(1)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "env-creator",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "description": "A fast, lightweight CLI tool for managing and generating custom environment (`.env`) files",
5
5
  "type": "module",
6
6
  "bin": {