summaryrefslogtreecommitdiff
path: root/packages/webapi/src/lib/RelativeIndexingMethod.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/webapi/src/lib/RelativeIndexingMethod.ts')
-rw-r--r--packages/webapi/src/lib/RelativeIndexingMethod.ts50
1 files changed, 0 insertions, 50 deletions
diff --git a/packages/webapi/src/lib/RelativeIndexingMethod.ts b/packages/webapi/src/lib/RelativeIndexingMethod.ts
deleted file mode 100644
index d88349b80..000000000
--- a/packages/webapi/src/lib/RelativeIndexingMethod.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-type TypedArray =
- | Int8Array
- | Uint8Array
- | Uint8ClampedArray
- | Int16Array
- | Uint16Array
- | Int32Array
- | Uint32Array
- | Float32Array
- | Float64Array
- | BigInt64Array
- | BigUint64Array
-
-export const at = {
- at<T extends Array<any> | string | TypedArray>(this: T, index: number) {
- index = Math.trunc(index) || 0
-
- if (index < 0) index += this.length
-
- if (index < 0 || index >= this.length) return undefined
-
- return this[index]
- },
-}.at
-
-export const initRelativeIndexingMethod = (
- target: any,
- exclude: Set<string>
-) => {
- if (exclude.has('at')) return
-
- const Classes = []
-
- if (!exclude.has('TypedArray'))
- Classes.push(
- Object.getPrototypeOf(target.Int8Array || globalThis.Int8Array)
- )
- if (!exclude.has('Array')) Classes.push(target.Array || globalThis.Array)
- if (!exclude.has('String')) Classes.push(target.String || globalThis.String)
-
- for (const Class of Classes) {
- if (!Class.prototype.at)
- Object.defineProperty(Class.prototype, 'at', {
- value: at,
- writable: true,
- enumerable: false,
- configurable: true,
- })
- }
-}