Finish circular array implementation.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 20 Nov 2020 08:22:39 +0000 (09:22 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 20 Nov 2020 08:22:39 +0000 (09:22 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
package-lock.json
package.json
src/utils/CircularArray.ts

index 064f931c3be0b07346c07d1de71449de086c1e85..2cb919f3f2408e757e22356c35b882c83b4a97fd 100644 (file)
       }
     },
     "typescript": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz",
-      "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==",
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz",
+      "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==",
       "dev": true
     },
     "ultron": {
index 67b3d25f755e2f19147689d2f8d1ee2955ab4a34..c4ade427169908565bb3583dead6798b4f31e907 100644 (file)
@@ -71,6 +71,6 @@
     "npm-check": "^5.9.2",
     "rimraf": "^3.0.2",
     "ts-node-dev": "^1.0.0",
-    "typescript": "^4.1.2"
+    "typescript": "^4.0.5"
   }
 }
index 434a8f49b57439a127a56d568ec6f570765d9073..12aa2b18c7c8c853804d0c6d812506a84090aa62 100644 (file)
@@ -21,4 +21,16 @@ export default class CircularArray<T> extends Array<T> {
     }
     return super.unshift(...items);
   }
+
+  concat(...items: (T|ConcatArray<T>)[]): T[] {
+    if (this.length + items.length > this.size) {
+      super.splice(0, (this.length + items.length) - this.size);
+    }
+    return super.concat(items as T[]);
+  }
+
+  splice(start: number, deleteCount?: number, ...items: T[]): T[] {
+    this.push(...items);
+    return super.splice(start, deleteCount);
+  }
 }