UNPKG

projen

Version:

CDK for software projects

1 lines 1.95 kB
var _=function(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1},S=function(e){if(-1===e.indexOf("\\"))return e;for(var r=e.length,a="",c=0,t=0;t<r;)if(92===e.charCodeAt(t)){if(t>c&&(a+=e.slice(c,t)),++t>=r){a+="\\",c=t;break}switch(e.charCodeAt(t)){case 110:a+="\n",t++;break;case 116:a+="\t",t++;break;case 114:a+="\r",t++;break;case 102:a+="\f",t++;break;case 117:if(t+4>=r)throw new Error("malformed escaped unicode characters '".concat(e.slice(t-1,t+5),"'"));var o=_(e.charCodeAt(t+1)),i=_(e.charCodeAt(t+2)),n=_(e.charCodeAt(t+3)),f=_(e.charCodeAt(t+4));if(o<0||i<0||n<0||f<0)throw new Error("malformed escaped unicode characters '".concat(e.slice(t-1,t+5),"'"));a+=String.fromCharCode(o<<12|i<<8|n<<4|f),t+=5;break;default:a+=e.charAt(t),t++}c=t}else t++;return c<r&&(a+=e.slice(c,r)),a},H=function(e,r,a){for(;r<a;){var c=e.charCodeAt(r);if(32!==c&&9!==c&&12!==c)break;r++}return r},q=function(e){for(var r="string"==typeof e?e:e.toString(),a={},c=(r.length>0&&65279===r.charCodeAt(0)?r.slice(1):r).split(/\r\n|\r|\n/),t=c.length,o=0;o<t;){var i=c[o],n=i.length,f=H(i,0,n);if(f>=n)o++;else{var s=i.charCodeAt(f);if(35!==s&&33!==s){for(var d=0,h=n-1;h>=0&&92===i.charCodeAt(h);h--)d++;var l=d%2==1,v=void 0,C=void 0;if(l){var A=(f>0?i.slice(f):i).slice(0,-1),u=[A];for(C=-1!==A.indexOf("\\");l&&o+1<t;){var g=c[++o],b=g.length,k=H(g,0,b);d=0;for(var p=b-1;p>=k&&92===g.charCodeAt(p);p--)d++;var m=(l=d%2==1)?g.slice(k,b-1):g.slice(k);!C&&-1!==m.indexOf("\\")&&(C=!0),u.push(m)}v=u.join("")}else C=-1!==(v=f>0?i.slice(f):i).indexOf("\\");for(var w=v.length,x=0,_=!1;x<w;){var O=v.charCodeAt(x);if(92!==O){if(!_&&(61===O||58===O||32===O||9===O||12===O))break;_=!1,x++}else _=!_,x++}var q=x;if(q<w){var E=v.charCodeAt(q);(32===E||9===E||12===E)&&((q=H(v,q,w))<w&&(E=v.charCodeAt(q))),q<w&&(61===E||58===E)&&(q++,q=H(v,q,w))}var j=v.slice(0,x),y=v.slice(q);a[C?S(j):j]=C?S(y):y,o++}else o++}}return a};export{q as getProperties};