[TS] Refactor away circular ref (#7099)
authorBjörn Harrtell <bjornharrtell@users.noreply.github.com>
Fri, 11 Feb 2022 17:40:09 +0000 (18:40 +0100)
committerGitHub <noreply@github.com>
Fri, 11 Feb 2022 17:40:09 +0000 (09:40 -0800)
ts/flexbuffers/reference-util.ts
ts/flexbuffers/reference.ts

index 410d2af..c55a941 100644 (file)
@@ -1,7 +1,6 @@
 import { BitWidth } from './bit-width.js'
 import { toByteWidth, fromByteWidth } from './bit-width-util.js'
 import { toUTF8Array, fromUTF8Array } from './flexbuffers-util.js'
-import { Reference } from './reference.js'
 
 export function validateOffset(dataView: DataView, offset: number, width: number): void {
   if (dataView.byteLength <= offset + width || (offset & (toByteWidth(width) - 1)) !== 0) {
@@ -95,13 +94,6 @@ export function diffKeys(input: Uint8Array, index: number, dataView: DataView, o
   return dataView.getUint8(keyIndirectOffset + input.length) === 0 ? 0 : -1;
 }
 
-export function valueForIndexWithKey(index: number, key: string, dataView: DataView, offset: number, parentWidth: number, byteWidth: number, length: number, path: string): Reference {
-  const _indirect = indirect(dataView, offset, parentWidth);
-  const elementOffset = _indirect + index * byteWidth;
-  const packedType = dataView.getUint8(_indirect + length * byteWidth + index);
-  return new Reference(dataView, elementOffset, fromByteWidth(byteWidth), packedType, `${path}/${key}`)
-}
-
 export function keyForIndex(index: number, dataView: DataView, offset: number, parentWidth: number, byteWidth: number): string {
   const keysVectorOffset = indirect(dataView, offset, parentWidth) - byteWidth * 3;
   const bitWidth = fromByteWidth(byteWidth);
index 53f3ff0..0eff6f4 100644 (file)
@@ -1,13 +1,13 @@
 import { fromByteWidth } from './bit-width-util.js'
 import { ValueType } from './value-type.js'
 import { isNumber, isIndirectNumber, isAVector, fixedTypedVectorElementSize, isFixedTypedVector, isTypedVector, typedVectorElementType, packedType, fixedTypedVectorElementType } from './value-type-util.js'
-import { indirect, keyForIndex, keyIndex, readFloat, readInt, readUInt, valueForIndexWithKey } from './reference-util.js'
+import { indirect, keyForIndex, keyIndex, readFloat, readInt, readUInt } from './reference-util.js'
 import { fromUTF8Array } from './flexbuffers-util.js';
 import { BitWidth } from './bit-width.js';
 
 export function toReference(buffer: ArrayBuffer): Reference {
   const len = buffer.byteLength;
-  
+
   if (len < 3) {
     throw "Buffer needs to be bigger than 3";
   }
@@ -21,6 +21,13 @@ export function toReference(buffer: ArrayBuffer): Reference {
   return new Reference(dataView, offset, parentWidth, packedType, "/")
 }
 
+function valueForIndexWithKey(index: number, key: string, dataView: DataView, offset: number, parentWidth: number, byteWidth: number, length: number, path: string): Reference {
+  const _indirect = indirect(dataView, offset, parentWidth);
+  const elementOffset = _indirect + index * byteWidth;
+  const packedType = dataView.getUint8(_indirect + length * byteWidth + index);
+  return new Reference(dataView, elementOffset, fromByteWidth(byteWidth), packedType, `${path}/${key}`)
+}
+
 export class Reference {
   private readonly byteWidth: number
   private readonly valueType: ValueType