UNPKG

projen

Version:

CDK for software projects

1 lines 2.31 kB
function _class_call_check(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _create_class(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),e}import{formatNormalized as formatNormalizedImpl}from"./normalize.js";import{parseDocument}from"./parse.js";var BOM="\ufeff";export var Properties=function(){"use strict";function e(r){_class_call_check(this,e);var t=parseDocument(r);this.hasBom=t.hasBom,this.eolCharacter=t.eolCharacter,this.nodes=t.nodes}return _create_class(e,[{key:"getProperties",value:function(){return this.nodes.filter(function(e){return"property"===e.type})}},{key:"getComments",value:function(){return this.nodes.filter(function(e){return"comment"===e.type})}},{key:"getBlankLines",value:function(){return this.nodes.filter(function(e){return"blank"===e.type})}},{key:"toObject",value:function(){for(var e={},r=0,t=this.nodes;r<t.length;r++){var n=t[r];"property"===n.type&&(e[n.key]=n.value)}return e}},{key:"getPropertyNodes",value:function(e){return this.nodes.filter(function(r){return"property"===r.type&&r.key===e})}},{key:"getEffectiveProperty",value:function(e){for(var r=this.nodes.length-1;r>=0;r--){var t=this.nodes[r];if("property"===t.type&&t.key===e)return t}}},{key:"getKeyCollisions",value:function(){for(var e={},r=0,t=this.nodes;r<t.length;r++){var n=t[r];if("property"===n.type){var o=e[n.key];void 0===o?e[n.key]=[n]:o.push(n)}}for(var i=[],a=0,s=Object.keys(e);a<s.length;a++){var u=s[a],f=e[u];void 0!==f&&f.length>1&&i.push({key:u,nodes:f})}return i}},{key:"getLeadingNodes",value:function(e){for(var r=-1,t=this.nodes.length-1;t>=0;t--){var n=this.nodes[t];if("property"===n.type&&n.key===e){r=t;break}}if(r<=0)return[];for(var o=[],i=r-1;i>=0;i--){var a=this.nodes[i];if("property"===a.type)break;o.unshift(a)}return o}},{key:"format",value:function(e){if(!e){for(var r=this.eolCharacter,t=[],n=0,o=this.nodes;n<o.length;n++){var i=o[n];"property"===i.type?t.push(i.rawLines.join(r)):t.push(i.rawLine)}return(this.hasBom?BOM:"")+t.join(r)}return formatNormalizedImpl(this.nodes,this.hasBom,this.eolCharacter,e)}}]),e}();