projen
Version:
CDK for software projects
1 lines • 1.19 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"unescapeContent",{enumerable:!0,get:function(){return unescapeContent}});var _characters=require("../characters.js"),hexValue=function(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1},unescapeContent=function(e){if(-1===e.indexOf("\\"))return e;for(var r=e.length,a="",c=0,t=0;t<r;)if(e.charCodeAt(t)===_characters.CH_BACKSLASH){if(t>c&&(a+=e.slice(c,t)),++t>=r){a+="\\",c=t;break}switch(e.charCodeAt(t)){case _characters.CH_LOWER_N:a+="\n",t++;break;case _characters.CH_LOWER_T:a+="\t",t++;break;case _characters.CH_LOWER_R:a+="\r",t++;break;case _characters.CH_LOWER_F:a+="\f",t++;break;case _characters.CH_LOWER_U:if(t+4>=r)throw new Error("malformed escaped unicode characters '".concat(e.slice(t-1,t+5),"'"));var n=hexValue(e.charCodeAt(t+1)),s=hexValue(e.charCodeAt(t+2)),o=hexValue(e.charCodeAt(t+3)),h=hexValue(e.charCodeAt(t+4));if(n<0||s<0||o<0||h<0)throw new Error("malformed escaped unicode characters '".concat(e.slice(t-1,t+5),"'"));a+=String.fromCharCode(n<<12|s<<8|o<<4|h),t+=5;break;default:a+=e.charAt(t),t++}c=t}else t++;return c<r&&(a+=e.slice(c,r)),a};