Socket
Socket
Sign inDemoInstall

circularr

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

circularr - npm Package Compare versions

Comparing version 0.2.0 to 0.2.1

2

index.d.ts

@@ -14,2 +14,4 @@ export default class Circularr<T> {

trim(): Circularr<T>;
at(index: number): T | undefined;
wrapAt(index: number): T | undefined;
}

4

index.js

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;class Circularr{constructor(a){this.data=Array(a),this.index=0}static from(a){const b=new Circularr(a.length);for(let c=0;c<a.length;++c)b.data[c]=a[c];return b}get length(){return this.data.length}*[Symbol.iterator](){for(let a=0;a<this.data.length;++a)yield this.data[(a+this.index)%this.data.length]}fill(a){for(let b=0;b<this.data.length;++b)this.data[b]=a;return this.index=0,this}clear(){return this.data=Array(this.data.length),this.index=0,this}shift(a){const b=this.data[this.index];return this.data[this.index]=a,this.index=(this.index+1)%this.data.length,b}unshift(a){this.index=(this.index+this.data.length-1)%this.data.length;const b=this.data[this.index];return this.data[this.index]=a,b}slice(a,b){return Circularr.from([...this].slice(a,b))}trim(){const a=[...this];let b=0,c=a.length;for(let c=0;c<a.length&&!(a[c]!==void 0);++c)++b;for(let b=a.length-1;0<=b&&!(a[b]!==void 0);--b)--c;return Circularr.from(a.slice(b,c))}}exports.default=Circularr;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJDaXJjdWxhcnIiLCJjb25zdHJ1Y3RvciIsImxlbmd0aCIsImRhdGEiLCJBcnJheSIsImluZGV4IiwiZnJvbSIsInNvdXJjZSIsImMiLCJpIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJmaWxsIiwidmFsdWUiLCJjbGVhciIsInNoaWZ0IiwicmV0dXJuVmFsdWUiLCJ1bnNoaWZ0Iiwic2xpY2UiLCJiZWdpbkluZGV4IiwiZW5kSW5kZXgiLCJ0cmltIl0sIm1hcHBpbmdzIjoiMkZBQWUsS0FBTUEsQ0FBQUEsU0FBYyxDQUlqQ0MsV0FBVyxDQUFFQyxDQUFGLENBQWtCLENBQzNCLEtBQUtDLElBQUwsQ0FBZ0JDLEtBQWhCLENBQXlCRixDQUF6QixDQUQyQixDQUUzQixLQUFLRyxLQUFMLENBQWEsQ0FDZCxDQUVELE1BQU9DLENBQUFBLElBQVAsQ0FBaUJDLENBQWpCLENBQTRDLENBQzFDLEtBQU1DLENBQUFBLENBQUMsQ0FBRyxHQUFJUixDQUFBQSxTQUFKLENBQWlCTyxDQUFNLENBQUNMLE1BQXhCLENBQVYsQ0FDQSxJQUFLLEdBQUlPLENBQUFBLENBQUMsQ0FBRyxDQUFiLENBQWdCQSxDQUFDLENBQUdGLENBQU0sQ0FBQ0wsTUFBM0IsQ0FBbUMsRUFBRU8sQ0FBckMsQ0FDRUQsQ0FBQyxDQUFDTCxJQUFGLENBQU9NLENBQVAsRUFBWUYsQ0FBTSxDQUFDRSxDQUFELENBQWxCLENBR0YsTUFBT0QsQ0FBQUEsQ0FDUixDQUVELEdBQUlOLENBQUFBLE1BQUosRUFBc0IsQ0FDcEIsTUFBTyxNQUFLQyxJQUFMLENBQVVELE1BQ2xCLENBRUQsRUFBR1EsTUFBTSxDQUFDQyxRQUFWLEdBQXVCLENBQ3JCLElBQUssR0FBSUYsQ0FBQUEsQ0FBQyxDQUFHLENBQWIsQ0FBZ0JBLENBQUMsQ0FBRyxLQUFLTixJQUFMLENBQVVELE1BQTlCLENBQXNDLEVBQUVPLENBQXhDLENBQ0UsS0FBTSxNQUFLTixJQUFMLENBQVUsQ0FBQ00sQ0FBQyxDQUFHLEtBQUtKLEtBQVYsRUFBbUIsS0FBS0YsSUFBTCxDQUFVRCxNQUF2QyxDQUVULENBRURVLElBQUksQ0FBRUMsQ0FBRixDQUFrQixDQUNwQixJQUFLLEdBQUlKLENBQUFBLENBQUMsQ0FBRyxDQUFiLENBQWdCQSxDQUFDLENBQUcsS0FBS04sSUFBTCxDQUFVRCxNQUE5QixDQUFzQyxFQUFFTyxDQUF4QyxDQUNFLEtBQUtOLElBQUwsQ0FBVU0sQ0FBVixFQUFlSSxDQUFmLENBSUYsTUFGQSxNQUFLUixLQUFMLENBQWEsQ0FFYixDQUFPLElBQ1IsQ0FFRFMsS0FBSyxFQUFVLENBSWIsTUFIQSxNQUFLWCxJQUFMLENBQWdCQyxLQUFoQixDQUF5QixLQUFLRCxJQUFMLENBQVVELE1BQW5DLENBR0EsQ0FGQSxLQUFLRyxLQUFMLENBQWEsQ0FFYixDQUFPLElBQ1IsQ0FFRFUsS0FBSyxDQUFFRixDQUFGLENBQWUsQ0FDbEIsS0FBTUcsQ0FBQUEsQ0FBVyxDQUFHLEtBQUtiLElBQUwsQ0FBVSxLQUFLRSxLQUFmLENBQXBCLENBSUEsTUFIQSxNQUFLRixJQUFMLENBQVUsS0FBS0UsS0FBZixFQUF3QlEsQ0FHeEIsQ0FGQSxLQUFLUixLQUFMLENBQWEsQ0FBQyxLQUFLQSxLQUFMLENBQWEsQ0FBZCxFQUFtQixLQUFLRixJQUFMLENBQVVELE1BRTFDLENBQU9jLENBQ1IsQ0FFREMsT0FBTyxDQUFFSixDQUFGLENBQWUsQ0FDcEIsS0FBS1IsS0FBTCxDQUFhLENBQUMsS0FBS0EsS0FBTCxDQUFhLEtBQUtGLElBQUwsQ0FBVUQsTUFBdkIsQ0FBZ0MsQ0FBakMsRUFBc0MsS0FBS0MsSUFBTCxDQUFVRCxNQUR6QyxDQUVwQixLQUFNYyxDQUFBQSxDQUFXLENBQUcsS0FBS2IsSUFBTCxDQUFVLEtBQUtFLEtBQWYsQ0FBcEIsQ0FHQSxNQUZBLE1BQUtGLElBQUwsQ0FBVSxLQUFLRSxLQUFmLEVBQXdCUSxDQUV4QixDQUFPRyxDQUNSLENBRURFLEtBQUssQ0FBRUMsQ0FBRixDQUF1QkMsQ0FBdkIsQ0FBd0QsQ0FDM0QsTUFBT3BCLENBQUFBLFNBQVMsQ0FBQ00sSUFBVixDQUFlLENBQUMsR0FBRyxJQUFKLEVBQVVZLEtBQVYsQ0FBZ0JDLENBQWhCLENBQTRCQyxDQUE1QixDQUFmLENBQ1IsQ0FFREMsSUFBSSxFQUFrQixDQUNwQixLQUFNbEIsQ0FBQUEsQ0FBSSxDQUFHLENBQUMsR0FBRyxJQUFKLENBQWIsQ0FEb0IsR0FFaEJnQixDQUFBQSxDQUFVLENBQUcsQ0FGRyxDQUdoQkMsQ0FBUSxDQUFHakIsQ0FBSSxDQUFDRCxNQUhBLENBS3BCLElBQUssR0FBSU8sQ0FBQUEsQ0FBQyxDQUFHLENBQWIsQ0FBZ0JBLENBQUMsQ0FBR04sQ0FBSSxDQUFDRCxNQUF6QixJQUNNQyxDQUFJLENBQUNNLENBQUQsQ0FBSixTQUROLEVBQWlDLEVBQUVBLENBQW5DLENBSUUsRUFBRVUsQ0FKSixDQU9BLElBQUssR0FBSVYsQ0FBQUEsQ0FBQyxDQUFHTixDQUFJLENBQUNELE1BQUwsQ0FBYyxDQUEzQixDQUFtQyxDQUFMLEVBQUFPLENBQTlCLElBQ01OLENBQUksQ0FBQ00sQ0FBRCxDQUFKLFNBRE4sRUFBc0MsRUFBRUEsQ0FBeEMsQ0FJRSxFQUFFVyxDQUpKLENBT0EsTUFBT3BCLENBQUFBLFNBQVMsQ0FBQ00sSUFBVixDQUFlSCxDQUFJLENBQUNlLEtBQUwsQ0FBV0MsQ0FBWCxDQUF1QkMsQ0FBdkIsQ0FBZixDQUNSLENBcEZnQyxDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2lyY3VsYXJyIDxUPiB7XG4gIGRhdGE6IFRbXVxuICBpbmRleDogbnVtYmVyXG5cbiAgY29uc3RydWN0b3IgKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5kYXRhID0gbmV3IEFycmF5PFQ+KGxlbmd0aClcbiAgICB0aGlzLmluZGV4ID0gMFxuICB9XG5cbiAgc3RhdGljIGZyb20gPFQ+IChzb3VyY2U6IFRbXSk6IENpcmN1bGFycjxUPiB7XG4gICAgY29uc3QgYyA9IG5ldyBDaXJjdWxhcnI8VD4oc291cmNlLmxlbmd0aClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkge1xuICAgICAgYy5kYXRhW2ldID0gc291cmNlW2ldXG4gICAgfVxuXG4gICAgcmV0dXJuIGNcbiAgfVxuXG4gIGdldCBsZW5ndGggKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGhcbiAgfVxuXG4gICogW1N5bWJvbC5pdGVyYXRvcl0gKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgKytpKSB7XG4gICAgICB5aWVsZCB0aGlzLmRhdGFbKGkgKyB0aGlzLmluZGV4KSAlIHRoaXMuZGF0YS5sZW5ndGhdXG4gICAgfVxuICB9XG5cbiAgZmlsbCAodmFsdWU6IFQpOiB0aGlzIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7ICsraSkge1xuICAgICAgdGhpcy5kYXRhW2ldID0gdmFsdWVcbiAgICB9XG4gICAgdGhpcy5pbmRleCA9IDBcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBjbGVhciAoKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhID0gbmV3IEFycmF5PFQ+KHRoaXMuZGF0YS5sZW5ndGgpXG4gICAgdGhpcy5pbmRleCA9IDBcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzaGlmdCAodmFsdWU6IFQpOiBUIHtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IHRoaXMuZGF0YVt0aGlzLmluZGV4XVxuICAgIHRoaXMuZGF0YVt0aGlzLmluZGV4XSA9IHZhbHVlXG4gICAgdGhpcy5pbmRleCA9ICh0aGlzLmluZGV4ICsgMSkgJSB0aGlzLmRhdGEubGVuZ3RoXG5cbiAgICByZXR1cm4gcmV0dXJuVmFsdWVcbiAgfVxuXG4gIHVuc2hpZnQgKHZhbHVlOiBUKTogVCB7XG4gICAgdGhpcy5pbmRleCA9ICh0aGlzLmluZGV4ICsgdGhpcy5kYXRhLmxlbmd0aCAtIDEpICUgdGhpcy5kYXRhLmxlbmd0aFxuICAgIGNvbnN0IHJldHVyblZhbHVlID0gdGhpcy5kYXRhW3RoaXMuaW5kZXhdXG4gICAgdGhpcy5kYXRhW3RoaXMuaW5kZXhdID0gdmFsdWVcblxuICAgIHJldHVybiByZXR1cm5WYWx1ZVxuICB9XG5cbiAgc2xpY2UgKGJlZ2luSW5kZXg/OiBudW1iZXIsIGVuZEluZGV4PzogbnVtYmVyKTogQ2lyY3VsYXJyPFQ+IHtcbiAgICByZXR1cm4gQ2lyY3VsYXJyLmZyb20oWy4uLnRoaXNdLnNsaWNlKGJlZ2luSW5kZXgsIGVuZEluZGV4KSlcbiAgfVxuXG4gIHRyaW0gKCk6IENpcmN1bGFycjxUPiB7XG4gICAgY29uc3QgZGF0YSA9IFsuLi50aGlzXVxuICAgIGxldCBiZWdpbkluZGV4ID0gMFxuICAgIGxldCBlbmRJbmRleCA9IGRhdGEubGVuZ3RoXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHtcbiAgICAgIGlmIChkYXRhW2ldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgICsrYmVnaW5JbmRleFxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBkYXRhLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICBpZiAoZGF0YVtpXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICAtLWVuZEluZGV4XG4gICAgfVxuXG4gICAgcmV0dXJuIENpcmN1bGFyci5mcm9tKGRhdGEuc2xpY2UoYmVnaW5JbmRleCwgZW5kSW5kZXgpKVxuICB9XG59XG4iXX0=
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;class Circularr{constructor(a){this.data=Array(a),this.index=0}static from(a){const b=new Circularr(a.length);for(let c=0;c<a.length;++c)b.data[c]=a[c];return b}get length(){return this.data.length}*[Symbol.iterator](){for(let a=0;a<this.data.length;++a)yield this.data[(a+this.index)%this.data.length]}fill(a){for(let b=0;b<this.data.length;++b)this.data[b]=a;return this.index=0,this}clear(){return this.data=Array(this.data.length),this.index=0,this}shift(a){const b=this.data[this.index];return this.data[this.index]=a,this.index=(this.index+1)%this.data.length,b}unshift(a){this.index=(this.index+this.data.length-1)%this.data.length;const b=this.data[this.index];return this.data[this.index]=a,b}slice(a,b){return Circularr.from([...this].slice(a,b))}trim(){const a=[...this];let b=0,c=a.length;for(let c=0;c<a.length&&!(a[c]!==void 0);++c)++b;for(let b=a.length-1;0<=b&&!(a[b]!==void 0);--b)--c;return Circularr.from(a.slice(b,c))}at(a){return 0>a||a>=this.data.length?void 0:this.data[(a+this.index)%this.data.length]}wrapAt(a){return this.data[(a+this.index)%this.data.length]}}exports.default=Circularr;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJDaXJjdWxhcnIiLCJjb25zdHJ1Y3RvciIsImxlbmd0aCIsImRhdGEiLCJBcnJheSIsImluZGV4IiwiZnJvbSIsInNvdXJjZSIsImMiLCJpIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJmaWxsIiwidmFsdWUiLCJjbGVhciIsInNoaWZ0IiwicmV0dXJuVmFsdWUiLCJ1bnNoaWZ0Iiwic2xpY2UiLCJiZWdpbkluZGV4IiwiZW5kSW5kZXgiLCJ0cmltIiwiYXQiLCJ3cmFwQXQiXSwibWFwcGluZ3MiOiIyRkFBZSxLQUFNQSxDQUFBQSxTQUFjLENBSWpDQyxXQUFXLENBQUVDLENBQUYsQ0FBa0IsQ0FDM0IsS0FBS0MsSUFBTCxDQUFnQkMsS0FBaEIsQ0FBeUJGLENBQXpCLENBRDJCLENBRTNCLEtBQUtHLEtBQUwsQ0FBYSxDQUNkLENBRUQsTUFBT0MsQ0FBQUEsSUFBUCxDQUFpQkMsQ0FBakIsQ0FBNEMsQ0FDMUMsS0FBTUMsQ0FBQUEsQ0FBQyxDQUFHLEdBQUlSLENBQUFBLFNBQUosQ0FBaUJPLENBQU0sQ0FBQ0wsTUFBeEIsQ0FBVixDQUNBLElBQUssR0FBSU8sQ0FBQUEsQ0FBQyxDQUFHLENBQWIsQ0FBZ0JBLENBQUMsQ0FBR0YsQ0FBTSxDQUFDTCxNQUEzQixDQUFtQyxFQUFFTyxDQUFyQyxDQUNFRCxDQUFDLENBQUNMLElBQUYsQ0FBT00sQ0FBUCxFQUFZRixDQUFNLENBQUNFLENBQUQsQ0FBbEIsQ0FHRixNQUFPRCxDQUFBQSxDQUNSLENBRUQsR0FBSU4sQ0FBQUEsTUFBSixFQUFzQixDQUNwQixNQUFPLE1BQUtDLElBQUwsQ0FBVUQsTUFDbEIsQ0FFRCxFQUFHUSxNQUFNLENBQUNDLFFBQVYsR0FBdUIsQ0FDckIsSUFBSyxHQUFJRixDQUFBQSxDQUFDLENBQUcsQ0FBYixDQUFnQkEsQ0FBQyxDQUFHLEtBQUtOLElBQUwsQ0FBVUQsTUFBOUIsQ0FBc0MsRUFBRU8sQ0FBeEMsQ0FDRSxLQUFNLE1BQUtOLElB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QUwsQ0FBVUQsTUFBM0MsQ0FDUixDQWhHZ0MsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIENpcmN1bGFyciA8VD4ge1xuICBkYXRhOiBUW11cbiAgaW5kZXg6IG51bWJlclxuXG4gIGNvbnN0cnVjdG9yIChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuZGF0YSA9IG5ldyBBcnJheTxUPihsZW5ndGgpXG4gICAgdGhpcy5pbmRleCA9IDBcbiAgfVxuXG4gIHN0YXRpYyBmcm9tIDxUPiAoc291cmNlOiBUW10pOiBDaXJjdWxhcnI8VD4ge1xuICAgIGNvbnN0IGMgPSBuZXcgQ2lyY3VsYXJyPFQ+KHNvdXJjZS5sZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoOyArK2kpIHtcbiAgICAgIGMuZGF0YVtpXSA9IHNvdXJjZVtpXVxuICAgIH1cblxuICAgIHJldHVybiBjXG4gIH1cblxuICBnZXQgbGVuZ3RoICgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoXG4gIH1cblxuICAqIFtTeW1ib2wuaXRlcmF0b3JdICgpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7ICsraSkge1xuICAgICAgeWllbGQgdGhpcy5kYXRhWyhpICsgdGhpcy5pbmRleCkgJSB0aGlzLmRhdGEubGVuZ3RoXVxuICAgIH1cbiAgfVxuXG4gIGZpbGwgKHZhbHVlOiBUKTogdGhpcyB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyArK2kpIHtcbiAgICAgIHRoaXMuZGF0YVtpXSA9IHZhbHVlXG4gICAgfVxuICAgIHRoaXMuaW5kZXggPSAwXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgY2xlYXIgKCk6IHRoaXMge1xuICAgIHRoaXMuZGF0YSA9IG5ldyBBcnJheTxUPih0aGlzLmRhdGEubGVuZ3RoKVxuICAgIHRoaXMuaW5kZXggPSAwXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2hpZnQgKHZhbHVlOiBUKTogVCB7XG4gICAgY29uc3QgcmV0dXJuVmFsdWUgPSB0aGlzLmRhdGFbdGhpcy5pbmRleF1cbiAgICB0aGlzLmRhdGFbdGhpcy5pbmRleF0gPSB2YWx1ZVxuICAgIHRoaXMuaW5kZXggPSAodGhpcy5pbmRleCArIDEpICUgdGhpcy5kYXRhLmxlbmd0aFxuXG4gICAgcmV0dXJuIHJldHVyblZhbHVlXG4gIH1cblxuICB1bnNoaWZ0ICh2YWx1ZTogVCk6IFQge1xuICAgIHRoaXMuaW5kZXggPSAodGhpcy5pbmRleCArIHRoaXMuZGF0YS5sZW5ndGggLSAxKSAlIHRoaXMuZGF0YS5sZW5ndGhcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IHRoaXMuZGF0YVt0aGlzLmluZGV4XVxuICAgIHRoaXMuZGF0YVt0aGlzLmluZGV4XSA9IHZhbHVlXG5cbiAgICByZXR1cm4gcmV0dXJuVmFsdWVcbiAgfVxuXG4gIHNsaWNlIChiZWdpbkluZGV4PzogbnVtYmVyLCBlbmRJbmRleD86IG51bWJlcik6IENpcmN1bGFycjxUPiB7XG4gICAgcmV0dXJuIENpcmN1bGFyci5mcm9tKFsuLi50aGlzXS5zbGljZShiZWdpbkluZGV4LCBlbmRJbmRleCkpXG4gIH1cblxuICB0cmltICgpOiBDaXJjdWxhcnI8VD4ge1xuICAgIGNvbnN0IGRhdGEgPSBbLi4udGhpc11cbiAgICBsZXQgYmVnaW5JbmRleCA9IDBcbiAgICBsZXQgZW5kSW5kZXggPSBkYXRhLmxlbmd0aFxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7XG4gICAgICBpZiAoZGF0YVtpXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICArK2JlZ2luSW5kZXhcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gZGF0YS5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgaWYgKGRhdGFbaV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgLS1lbmRJbmRleFxuICAgIH1cblxuICAgIHJldHVybiBDaXJjdWxhcnIuZnJvbShkYXRhLnNsaWNlKGJlZ2luSW5kZXgsIGVuZEluZGV4KSlcbiAgfVxuXG4gIGF0IChpbmRleDogbnVtYmVyKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLmRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YVsoaW5kZXggKyB0aGlzLmluZGV4KSAlIHRoaXMuZGF0YS5sZW5ndGhdXG4gIH1cblxuICB3cmFwQXQgKGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhWyhpbmRleCArIHRoaXMuaW5kZXgpICUgdGhpcy5kYXRhLmxlbmd0aF1cbiAgfVxufVxuIl19
{
"name": "circularr",
"version": "0.2.0",
"version": "0.2.1",
"description": "Circular fixed size array",

@@ -5,0 +5,0 @@ "keywords": [

@@ -91,2 +91,35 @@ # Circularr

### At
`at(index: number): T | undefined`
`at` returns element at the index. For negative indices - `undefined` is returned. For overflow indices - `undefined` is returned
```js
const array = new Circularr<number>(5)
array.shift(1)
array.shift(2)
const val0 = array.at(0) // undefined
const val1 = array.at(3) // 1
const val2 = array.at(4) // 2
const val3 = array.at(5) // undefined
```
### WrapAt
`wrapAt(index: number): T | undefined`
`wrapAt` returns element at the index. For negative and overflow indices - the index will be wrapped around, and correct value will be returned
```js
const array = new Circularr<number>(5)
array.shift(1)
array.shift(2)
const val0 = array.at(0) // undefined
const val1 = array.at(3) // 1
const val2 = array.at(4) // 2
const val3 = array.at(8) // 1
const val3 = array.at(9) // 2
```
### Iterable

@@ -93,0 +126,0 @@ `Circularr` implements `iterable` protocol, so it can be used with any standard iterable syntax

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc