UNPKG

turbocommons-ts

Version:

General purpose library that implements frequently used and generic software development tasks

1 lines 3.07 kB
"use strict";var __extends=this&&this.__extends||function(){var t=function(r,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var i in r)r.hasOwnProperty(i)&&(t[i]=r[i])})(r,i)};return function(r,i){function n(){this.constructor=r}t(r,i),r.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.JavaPropertiesObject=void 0;var HashMapObject_1=require("./HashMapObject"),StringUtils_1=require("../utils/StringUtils"),ArrayUtils_1=require("../utils/ArrayUtils"),ValidationManager_1=require("../managers/ValidationManager"),EncodingUtils_1=require("../utils/EncodingUtils"),JavaPropertiesObject=function(t){function r(r){void 0===r&&(r="");var i=t.call(this)||this;if(!StringUtils_1.StringUtils.isString(r))throw new Error("value must be a string");if(""===r)return i;if(r.length<2||"="===r.substr(0,1)||r.indexOf("=")<0&&r.indexOf(":")<0)throw new Error("invalid properties format");for(var n="",e="",s=!1,a=0,o=StringUtils_1.StringUtils.getLines(r,[/\s+/g,/ *#.*| *!.*/g]);a<o.length;a++){var l=o[a];if(l=StringUtils_1.StringUtils.trimLeft(l),s)e+=EncodingUtils_1.EncodingUtils.unicodeEscapedCharsToUtf8(l);else{var g=StringUtils_1.StringUtils.replace(l,["\\=","\\:"],"xx"),c=Math.min((g+"=").indexOf("="),(g+":").indexOf(":"));"\\"===(n=l.substring(0,c).trim()).substr(n.length-1,1)&&(n+=" "),n=StringUtils_1.StringUtils.replace(n,["\\\\","\\ ","\\#","\\!","\\=","\\:"],["\\"," ","#","!","=",":"]),e=StringUtils_1.StringUtils.trimLeft(l.substring(c+1,l.length))}"\\"==(e=StringUtils_1.StringUtils.replace(e,["\\\\","\\ ","\\r\\n","\\n","\\t"],["\\u005C"," ","\r\n","\n","\t"])).substr(e.length-1)?(e=e.substring(0,e.length-1),s=!0):(s=!1,e=EncodingUtils_1.EncodingUtils.unicodeEscapedCharsToUtf8(e)),i._data.hasOwnProperty(n)||i._keys.push(n),i._data[n]=e}return i._length=i._keys.length,i}return __extends(r,t),r.isJavaProperties=function(t){try{return new r(t).length()>=0}catch(i){try{return null!=t&&t instanceof r}catch(t){return!1}}},r.prototype.isEqualTo=function(t,i){void 0===i&&(i=!1);var n=null;try{n=new r(t)}catch(i){try{t instanceof r&&(n=t)}catch(t){}}if(null==n)throw new Error("properties does not contain valid java properties data");var e=this.getKeys(),s=n.getKeys();if(e.length!=s.length||i&&!ArrayUtils_1.ArrayUtils.isEqualTo(e,s))return!1;for(var a=new ValidationManager_1.ValidationManager,o=0,l=e;o<l.length;o++){var g=l[o];if(!i&&!n.isKey(g))return!1;if(!a.isEqualTo(this.get(g),n.get(g)))return!1}return!0},r.prototype.toString=function(){for(var t=[],r=this.getKeys(),i=r.length,n=0;n<i;n++){var e=StringUtils_1.StringUtils.replace(r[n],["\\"," ","#","!","=",":"],["\\\\","\\ ","\\#","\\!","\\=","\\:"]),s=StringUtils_1.StringUtils.replace(this.get(r[n]),["\\"," ","\r\n","\n","\t"],["\\\\","\\ ","\\r\\n","\\n","\\t"]);t.push(e+"="+EncodingUtils_1.EncodingUtils.utf8ToUnicodeEscapedChars(s))}return t.join("\r\n")},r}(HashMapObject_1.HashMapObject);exports.JavaPropertiesObject=JavaPropertiesObject;