UNPKG

properties-file

Version:

.properties file parser, editor, formatter and Webpack loader.

1 lines 6.31 kB
"use strict";var __extends=this&&this.__extends||function(){var e=function(r,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])},e(r,n)};return function(r,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function t(){this.constructor=r}e(r,n),r.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}}(),__read=this&&this.__read||function(e,r){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var t,i,o=n.call(e),s=[];try{for(;(void 0===r||r-- >0)&&!(t=o.next()).done;)s.push(t.value)}catch(e){i={error:e}}finally{try{t&&!t.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s},__spreadArray=this&&this.__spreadArray||function(e,r,n){if(n||2===arguments.length)for(var t,i=0,o=r.length;i<o;i++)!t&&i in r||(t||(t=Array.prototype.slice.call(r,0,i)),t[i]=r[i]);return e.concat(t||Array.prototype.slice.call(r))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PropertiesEditor=exports.DEFAULT_COMMENT_DELIMITER=exports.DEFAULT_SEPARATOR=void 0;var escape_1=require("../escape"),properties_1=require("../properties");exports.DEFAULT_SEPARATOR="=",exports.DEFAULT_COMMENT_DELIMITER="#";var PropertiesEditor=function(e){function r(r){var n=e.call(this,r)||this;return n.needsLineParsing=!1,n}return __extends(r,e),r.prototype.parseLinesIfNeeded=function(){this.needsLineParsing&&(this.parseLines(),this.needsLineParsing=!1)},r.prototype.insert=function(e,r,n){var t,i,o,s=(null==n?void 0:n.escapeUnicode)||!1,a=(null==n?void 0:n.separator)?" "===n.separator?" ":" ".concat(n.separator," "):" ".concat(exports.DEFAULT_SEPARATOR," ").replace(" "," "),c=null==n?void 0:n.referenceKey,l=(null==n?void 0:n.position)||"after";c&&this.parseLinesIfNeeded();var p=e.split(/\r?\n/).map((function(e){return(0,escape_1.escapeKey)(e,s)})).join("\\\n"),d=r.split(/\r?\n/).map((function(e){return(0,escape_1.escapeValue)(e,s)})).join("\\\n"),u="".concat((null==n?void 0:n.commentDelimiter)||exports.DEFAULT_COMMENT_DELIMITER," "),_=void 0===(null==n?void 0:n.comment)?"":"".concat("".concat(u).concat(n.comment).split(/\r?\n/).join("\n".concat(u)),"\n"),v="".concat(_).concat(p).concat(a).concat(d).split(/\n/);if(void 0===c)return(t=this.lines).push.apply(t,__spreadArray([],__read(v),!1)),this.needsLineParsing=!0,!0;var y=__spreadArray([],__read(this.collection),!1).reverse().find((function(e){return e.key===c}));if(y){var f="after"===l?y.endingLineNumber:null!==(o=null===(i=y.previousProperty)||void 0===i?void 0:i.endingLineNumber)&&void 0!==o?o:0;return this.lines=__spreadArray(__spreadArray(__spreadArray([],__read(this.lines.slice(0,f)),!1),__read(v),!1),__read(this.lines.slice(f)),!1),this.needsLineParsing=!0,!0}return!1},r.prototype.insertComment=function(e,r){var n,t,i,o=null==r?void 0:r.referenceKey,s=(null==r?void 0:r.position)||"after";o&&this.parseLinesIfNeeded();var a="".concat((null==r?void 0:r.commentDelimiter)||exports.DEFAULT_COMMENT_DELIMITER," "),c="".concat(a).concat(e).replace(/\r?\n/g,"\n".concat(a)).split(/\n/);if(void 0===o)return(n=this.lines).push.apply(n,__spreadArray([],__read(c),!1)),this.needsLineParsing=!0,!0;var l=__spreadArray([],__read(this.collection),!1).reverse().find((function(e){return e.key===o}));if(l){var p="after"===s?l.endingLineNumber:null!==(i=null===(t=l.previousProperty)||void 0===t?void 0:t.endingLineNumber)&&void 0!==i?i:0;return this.lines=__spreadArray(__spreadArray(__spreadArray([],__read(this.lines.slice(0,p)),!1),__read(c),!1),__read(this.lines.slice(p)),!1),this.needsLineParsing=!0,!0}return!1},r.prototype.delete=function(e,r){var n,t;void 0===r&&(r=!0),this.parseLinesIfNeeded();var i=__spreadArray([],__read(this.collection),!1).reverse().find((function(r){return r.key===e}));if(i){var o=r?null!==(t=null===(n=i.previousProperty)||void 0===n?void 0:n.endingLineNumber)&&void 0!==t?t:0:i.startingLineNumber-1,s=i.endingLineNumber;return this.lines=__spreadArray(__spreadArray([],__read(this.lines.slice(0,o)),!1),__read(this.lines.slice(s)),!1),this.needsLineParsing=!0,!0}return!1},r.prototype.getKeyWithNewlines=function(e){return 0===e.newlinePositions.length?e.key:__spreadArray([],__read(e.key),!1).reduce((function(r,n,t){return"".concat(r).concat(e.newlinePositions.includes(t)?"\n":"").concat(n)}),"")},r.prototype.getValueWithNewlines=function(e){return 0===e.newlinePositions.length||void 0===e.valuePosition?e.value:__spreadArray([],__read(e.value),!1).reduce((function(r,n,t){return"".concat(r).concat(e.newlinePositions.includes(t+e.valuePosition)?"\n":"").concat(n)}),"")},r.prototype.update=function(e,r){var n,t,i,o;this.parseLinesIfNeeded();var s=__spreadArray([],__read(this.collection),!1).reverse().find((function(r){return r.key===e}));if(!s||!r)return!1;var a=r.escapeUnicode||!1,c=r.separator?" "===r.separator?" ":" ".concat(r.separator," "):s.separator||" ".concat(exports.DEFAULT_SEPARATOR," ").replace(" "," "),l=(null!==(n=r.newKey)&&void 0!==n?n:this.getKeyWithNewlines(s)).split(/\r?\n/).map((function(e){return(0,escape_1.escapeKey)(e,a)})).join("\\\n"),p=(null!==(t=r.newValue)&&void 0!==t?t:this.getValueWithNewlines(s)).split(/\r?\n/).map((function(e){return(0,escape_1.escapeValue)(e,a)})).join("\\\n"),d="".concat(r.commentDelimiter||exports.DEFAULT_COMMENT_DELIMITER," "),u=void 0===r.newComment?"":"".concat("".concat(d).concat(r.newComment).split(/\r?\n/).join("\n".concat(d)),"\n"),_="".concat(u).concat(l).concat(c).concat(p).split(/\n/);return this.lines=__spreadArray(__spreadArray(__spreadArray([],__read(this.lines.slice(0,void 0===r.newComment?s.startingLineNumber-1:null!==(o=null===(i=s.previousProperty)||void 0===i?void 0:i.endingLineNumber)&&void 0!==o?o:0)),!1),__read(_),!1),__read(this.lines.slice(s.endingLineNumber)),!1),this.needsLineParsing=!0,!0},r.prototype.upsert=function(e,r,n){return this.parseLinesIfNeeded(),this.keyLineNumbers[e]?this.update(e,{newValue:r,newComment:null==n?void 0:n.comment,commentDelimiter:null==n?void 0:n.commentDelimiter,separator:null==n?void 0:n.separator,escapeUnicode:null==n?void 0:n.escapeUnicode}):this.insert(e,r,n)},r}(properties_1.Properties);exports.PropertiesEditor=PropertiesEditor;