UNPKG

@vulppi/env

Version:
8 lines (7 loc) 881 B
"use strict";(()=>{var p=/^\s*#/,u=/^[a-zA-Z0-9_]+=.*/,c=/^[a-zA-Z0-9_]+=.*/m;function E(a){let o=a.split(` `),t=[],e=-1,r=[],s="";return o.forEach(n=>{if(p.test(n)){r.push(n.replace(p,"").trim());return}if(!u.test(n)){s&&(t[e].value+=` `+n,/["']\s*$/.test(n)&&s===n.trim().at(-1)&&(s="",t[e].value=t[e].value.trim().replace(/^["']/g,"").replace(/["']$/g,"")));return}let[l,i]=n.split("=").map(m=>m.trim());e++,t[e]=t[e]||{key:"",value:"",description:""},t[e].key=l,t[e].value=i,/^\s*['"]/.test(i)&&(!/["']\s*$/.test(i)||i.trim().at(-1)!==i.trim().at(0))&&(s=i[0]),r.length>0&&(t[e].description=r.join(` `),r=[])}),t}function v(a){return a.map(({key:o,value:t,description:e=""},r)=>{if(!o)throw new Error(`Element '${r}' is missing a key`);if(!t)throw new Error(`Element '${r}' is missing a value`);let s=`${o}=${t}`;return e?`# ${e.replace(/\n/g,` # `)} ${s}`:s}).join(` `)}})();