UNPKG

@vulppi/env

Version:
8 lines (7 loc) 1.44 kB
"use strict";var p=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(n,r)=>{for(var t in r)p(n,t,{get:r[t],enumerable:!0})},I=(n,r,t,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of v(r))!f.call(n,s)&&s!==t&&p(n,s,{get:()=>r[s],enumerable:!(e=E(r,s))||e.enumerable});return n};var L=n=>I(p({},"__esModule",{value:!0}),n);var R={};g(R,{COMMENT_LINE_START:()=>l,PROPERTY_LINE_START:()=>m,PROPERTY_LINE_VALIDATION:()=>T,parseEnvToList:()=>$,parseListToEnv:()=>_});module.exports=L(R);var l=/^\s*#/,m=/^[a-zA-Z0-9_]+=.*/,T=/^[a-zA-Z0-9_]+=.*/m;function $(n){let r=n.split(` `),t=[],e=-1,s=[],i="";return r.forEach(o=>{if(l.test(o)){s.push(o.replace(l,"").trim());return}if(!m.test(o)){i&&(t[e].value+=` `+o,/["']\s*$/.test(o)&&i===o.trim().at(-1)&&(i="",t[e].value=t[e].value.trim().replace(/^["']/g,"").replace(/["']$/g,"")));return}let[u,a]=o.split("=").map(c=>c.trim());e++,t[e]=t[e]||{key:"",value:"",description:""},t[e].key=u,t[e].value=a,/^\s*['"]/.test(a)&&(!/["']\s*$/.test(a)||a.trim().at(-1)!==a.trim().at(0))&&(i=a[0]),s.length>0&&(t[e].description=s.join(` `),s=[])}),t}function _(n){return n.map(({key:r,value:t,description:e=""},s)=>{if(!r)throw new Error(`Element '${s}' is missing a key`);if(!t)throw new Error(`Element '${s}' is missing a value`);let i=`${r}=${t}`;return e?`# ${e.replace(/\n/g,` # `)} ${i}`:i}).join(` `)}