Socket
Socket
Sign inDemoInstall

circularr

Package Overview
Dependencies
1
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.5 to 0.2.0

2

index.d.ts

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

unshift(value: T): T;
slice(beginIndex?: number, endIndex?: number): Circularr<T>;
trim(): Circularr<T>;
}

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}}exports.default=Circularr;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJDaXJjdWxhcnIiLCJjb25zdHJ1Y3RvciIsImxlbmd0aCIsImRhdGEiLCJBcnJheSIsImluZGV4IiwiZnJvbSIsInNvdXJjZSIsImMiLCJpIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJmaWxsIiwidmFsdWUiLCJjbGVhciIsInNoaWZ0IiwicmV0dXJuVmFsdWUiLCJ1bnNoaWZ0Il0sIm1hcHBpbmdzIjoiMkZBQWUsS0FBTUEsQ0FBQUEsU0FBYyxDQUlqQ0MsV0FBVyxDQUFFQyxDQUFGLENBQWtCLENBQzNCLEtBQUtDLElBQUwsQ0FBZ0JDLEtBQWhCLENBQXlCRixDQUF6QixDQUQyQixDQUUzQixLQUFLRyxLQUFMLENBQWEsQ0FDZCxDQUVELE1BQU9DLENBQUFBLElBQVAsQ0FBaUJDLENBQWpCLENBQTRDLENBQzFDLEtBQU1DLENBQUFBLENBQUMsQ0FBRyxHQUFJUixDQUFBQSxTQUFKLENBQWlCTyxDQUFNLENBQUNMLE1BQXhCLENBQVYsQ0FDQSxJQUFLLEdBQUlPLENBQUFBLENBQUMsQ0FBRyxDQUFiLENBQWdCQSxDQUFDLENBQUdGLENBQU0sQ0FBQ0wsTUFBM0IsQ0FBbUMsRUFBRU8sQ0FBckMsQ0FDRUQsQ0FBQyxDQUFDTCxJQUFGLENBQU9NLENBQVAsRUFBWUYsQ0FBTSxDQUFDRSxDQUFELENBQWxCLENBR0YsTUFBT0QsQ0FBQUEsQ0FDUixDQUVELEdBQUlOLENBQUFBLE1BQUosRUFBc0IsQ0FDcEIsTUFBTyxNQUFLQyxJQUFMLENBQVVELE1BQ2xCLENBRUQsRUFBR1EsTUFBTSxDQUFDQyxRQUFWLEdBQXVCLENBQ3JCLElBQUssR0FBSUYsQ0FBQUEsQ0FBQyxDQUFHLENBQWIsQ0FBZ0JBLENBQUMsQ0FBRyxLQUFLTixJQUFMLENBQVVELE1BQTlCLENBQXNDLEVBQUVPLENBQXhDLENBQ0UsS0FBTSxNQUFLTixJQUFMLENBQVUsQ0FBQ00sQ0FBQyxDQUFHLEtBQUtKLEtBQVYsRUFBbUIsS0FBS0YsSUFBTCxDQUFVRCxNQUF2QyxDQUVULENBRURVLElBQUksQ0FBRUMsQ0FBRixDQUFrQixDQUNwQixJQUFLLEdBQUlKLENBQUFBLENBQUMsQ0FBRyxDQUFiLENBQWdCQSxDQUFDLENBQUcsS0FBS04sSUFBTCxDQUFVRCxNQUE5QixDQUFzQyxFQUFFTyxDQUF4QyxDQUNFLEtBQUtOLElBQUwsQ0FBVU0sQ0FBVixFQUFlSSxDQUFmLENBSUYsTUFGQSxNQUFLUixLQUFMLENBQWEsQ0FFYixDQUFPLElBQ1IsQ0FFRFMsS0FBSyxFQUFVLENBSWIsTUFIQSxNQUFLWCxJQUFMLENBQWdCQyxLQUFoQixDQUF5QixLQUFLRCxJQUFMLENBQVVELE1BQW5DLENBR0EsQ0FGQSxLQUFLRyxLQUFMLENBQWEsQ0FFYixDQUFPLElBQ1IsQ0FFRFUsS0FBSyxDQUFFRixDQUFGLENBQWUsQ0FDbEIsS0FBTUcsQ0FBQUEsQ0FBVyxDQUFHLEtBQUtiLElBQUwsQ0FBVSxLQUFLRSxLQUFmLENBQXBCLENBSUEsTUFIQSxNQUFLRixJQUFMLENBQVUsS0FBS0UsS0FBZixFQUF3QlEsQ0FHeEIsQ0FGQSxLQUFLUixLQUFMLENBQWEsQ0FBQyxLQUFLQSxLQUFMLENBQWEsQ0FBZCxFQUFtQixLQUFLRixJQUFMLENBQVVELE1BRTFDLENBQU9jLENBQ1IsQ0FFREMsT0FBTyxDQUFFSixDQUFGLENBQWUsQ0FDcEIsS0FBS1IsS0FBTCxDQUFhLENBQUMsS0FBS0EsS0FBTCxDQUFhLEtBQUtGLElBQUwsQ0FBVUQsTUFBdkIsQ0FBZ0MsQ0FBakMsRUFBc0MsS0FBS0MsSUFBTCxDQUFVRCxNQUR6QyxDQUVwQixLQUFNYyxDQUFBQSxDQUFXLENBQUcsS0FBS2IsSUFBTCxDQUFVLEtBQUtFLEtBQWYsQ0FBcEIsQ0FHQSxNQUZBLE1BQUtGLElBQUwsQ0FBVSxLQUFLRSxLQUFmLEVBQXdCUSxDQUV4QixDQUFPRyxDQUNSLENBMURnQyxDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2lyY3VsYXJyIDxUPiB7XG4gIGRhdGE6IFRbXVxuICBpbmRleDogbnVtYmVyXG5cbiAgY29uc3RydWN0b3IgKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5kYXRhID0gbmV3IEFycmF5PFQ+KGxlbmd0aClcbiAgICB0aGlzLmluZGV4ID0gMFxuICB9XG5cbiAgc3RhdGljIGZyb20gPFQ+IChzb3VyY2U6IFRbXSk6IENpcmN1bGFycjxUPiB7XG4gICAgY29uc3QgYyA9IG5ldyBDaXJjdWxhcnI8VD4oc291cmNlLmxlbmd0aClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkge1xuICAgICAgYy5kYXRhW2ldID0gc291cmNlW2ldXG4gICAgfVxuXG4gICAgcmV0dXJuIGNcbiAgfVxuXG4gIGdldCBsZW5ndGggKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGhcbiAgfVxuXG4gICogW1N5bWJvbC5pdGVyYXRvcl0gKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgKytpKSB7XG4gICAgICB5aWVsZCB0aGlzLmRhdGFbKGkgKyB0aGlzLmluZGV4KSAlIHRoaXMuZGF0YS5sZW5ndGhdXG4gICAgfVxuICB9XG5cbiAgZmlsbCAodmFsdWU6IFQpOiB0aGlzIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7ICsraSkge1xuICAgICAgdGhpcy5kYXRhW2ldID0gdmFsdWVcbiAgICB9XG4gICAgdGhpcy5pbmRleCA9IDBcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBjbGVhciAoKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhID0gbmV3IEFycmF5PFQ+KHRoaXMuZGF0YS5sZW5ndGgpXG4gICAgdGhpcy5pbmRleCA9IDBcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzaGlmdCAodmFsdWU6IFQpOiBUIHtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IHRoaXMuZGF0YVt0aGlzLmluZGV4XVxuICAgIHRoaXMuZGF0YVt0aGlzLmluZGV4XSA9IHZhbHVlXG4gICAgdGhpcy5pbmRleCA9ICh0aGlzLmluZGV4ICsgMSkgJSB0aGlzLmRhdGEubGVuZ3RoXG5cbiAgICByZXR1cm4gcmV0dXJuVmFsdWVcbiAgfVxuXG4gIHVuc2hpZnQgKHZhbHVlOiBUKTogVCB7XG4gICAgdGhpcy5pbmRleCA9ICh0aGlzLmluZGV4ICsgdGhpcy5kYXRhLmxlbmd0aCAtIDEpICUgdGhpcy5kYXRhLmxlbmd0aFxuICAgIGNvbnN0IHJldHVyblZhbHVlID0gdGhpcy5kYXRhW3RoaXMuaW5kZXhdXG4gICAgdGhpcy5kYXRhW3RoaXMuaW5kZXhdID0gdmFsdWVcblxuICAgIHJldHVybiByZXR1cm5WYWx1ZVxuICB9XG59XG4iXX0=
"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=
{
"name": "circularr",
"version": "0.1.5",
"version": "0.2.0",
"description": "Circular fixed size array",

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

@@ -1,8 +0,8 @@

## Circularr
Circular fixed size array
# Circularr
Fixed size array
### Install
## Install
`npm i circularr`
### Usage
## Usage
```js

@@ -15,3 +15,3 @@ import Circularr from 'circularr'

// Create new with fixed size
const arr = new Circular(3) // [undefined, undefined, undefined]
const arr = new Circularr(3) // [undefined, undefined, undefined]

@@ -29,24 +29,5 @@ // fill using value

### Api
```ts
class Circularr<T> {
## Api
// create Circularr
constructor(length: number)
static from<T>(source: T[]): Circularr<T>
// property
readonly length: number
// iterable
[Symbol.iterator](): IterableIterator<T>
// methods
fill(value: T): this
shift(value: T): T
unshift(value: T): T
}
```
#### Fill
### Fill
`fill(value: T): this`

@@ -56,8 +37,9 @@

```js
const circularr = new Circularr(3) // [undefined, undefined, undefined]
const array = new Circularr(3) // [undefined, undefined, undefined]
circularr.fill(0) // [0, 0, 0]
/* mutate fill */
array.fill(0) // [0, 0, 0]
```
#### Shift
### Shift
`shift(value: T): T`

@@ -67,11 +49,11 @@

```js
const circularr = new Circularr(3).fill(0)
const array = new Circularr(3).fill(0)
circularr.shift(8) // [0, 0, 8] => 0
circularr.shift(16) // [0, 8, 16] => 0
circularr.shift(32) // [8, 16, 32] => 0
circularr.shift(64) // [16, 32, 64] => 8
circularr.length // 3
array.shift(8) // [0, 0, 8] => 0
array.shift(16) // [0, 8, 16] => 0
array.shift(32) // [8, 16, 32] => 0
array.shift(64) // [16, 32, 64] => 8
array.length // 3
```
#### Unshift
### Unshift
`unshift(value: T): T`

@@ -81,26 +63,49 @@

```js
const circularr = new Circularr(3).fill(0)
const array = new Circularr(3).fill(0)
circularr.unshift(8) // [8, 0, 0] => 0
circularr.unshift(16) // [16, 8, 0] => 0
circularr.unshift(32) // [32, 16, 8] => 0
circularr.unshift(64) // [64, 32, 16] => 8
circularr.length // 3
array.unshift(8) // [8, 0, 0] => 0
array.unshift(16) // [16, 8, 0] => 0
array.unshift(32) // [32, 16, 8] => 0
array.unshift(64) // [64, 32, 16] => 8
array.length // 3
```
#### Iterable
`Circular` implements `iterable` protocol, so it can be used with any standard iterable syntax
### Slice
`slice(beginIndex?: number, endIndex?: number): Circularr<T>`
`slice` does works the same way as Array.slice().
```js
const circularr = Circularr.from([1, 2, 3])
const array = Circularr.from([1, 2, 3, 4])
const sliced = array.slice(1, 3) // [2, 3]
```
### Trim
`trim(): Circularr<T>`
`trim` returns new `Circularr` with removed `undefined` values from both ends.
```js
const array = new Circularr<number>(5)
array.shift(1)
array.shift(2)
const trimmed = array.trim() // [1, 2]
```
### Iterable
`Circularr` implements `iterable` protocol, so it can be used with any standard iterable syntax
```js
const array = Circularr.from([1, 2, 3])
// array destructuring
const [firstValue] = circularr
const [firstValue] = array
// destructuring copy
const copyToArray = [...circularr]
const copyToArray = [...array]
// for..of syntax
for (let value of circularr) {
for (let value of array) {
console.log(value)
}
```
SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc