2 lines
1.3 KiB
JavaScript
2 lines
1.3 KiB
JavaScript
var o=-3,R=-2,g=-1;function l(t){let e=t.map(c).sort(m),s=0;for(let a=1;a<e.length;a++){let r=e[a],n=e[s];r.start>n.end+1?e[++s]=r:r.end>n.end&&(n.end=r.end,n.index=Math.min(n.index,r.index))}e.length=s+1;let i=[...e].sort(f).map(d);return i.type=t.type,i}function c(t,e){return{end:t.end,index:e,start:t.start}}function d(t){return{end:t.end,start:t.start}}function f(t,e){return t.index-e.index}function m(t,e){return t.start-e.start}var u=class extends Array{constructor(){super(...arguments);this.type=""}toArray(){let e=Array.from(this);return e.type=this.type,e}};function p(t,e){let s=new u;for(let i of t){let a=i.split("-"),r=Number.parseInt(a[0],10),n=Number.parseInt(a[1],10);Number.isNaN(r)?(r=e-n,n=e-1):Number.isNaN(n)&&(n=e-1),n>e-1&&(n=e-1),!(Number.isNaN(r)||Number.isNaN(n)||r>n||r<0)&&s.push({end:n,start:r})}return s}function x(t,e,s){let i=!0;if(s&&"throwError"in s&&s.throwError===!1&&(i=!1),!Number.isInteger(t)){if(i)throw new TypeError("Argument 'size' must be an integer.");return o}if(typeof e!="string"){if(i)throw new TypeError("Argument 'header' must be a string.");return o}let a=e.indexOf("=");if(a===-1)return R;let r=e.slice(a+1).split(","),n=p(r,t);return n.length<1?g:(n.type=e.slice(0,a),s&&s.combine?l(n):n)}export{o as ERROR_INVALID_ARGUMENT,R as ERROR_STRING_IS_NOT_HEADER,g as ERROR_UNSATISFIABLE_RESULT,u as Ranges,x as parseRange};
|