Files
anomalyco_opencode/packages/util/src/binary.ts
T
Luke Parker 1f61eb5ca9
deploy-www / deploy (push) Has been cancelled
publish / version (push) Has been cancelled
publish / build-cli (push) Has been cancelled
publish / sign-cli-macos (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-ubuntu-2404 target:linux-x64]) (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-ubuntu-2404-arm target:linux-arm64]) (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-windows-2025 target:windows-arm64]) (push) Has been cancelled
publish / build-node-cli (map[host:blacksmith-4vcpu-windows-2025 target:windows-x64]) (push) Has been cancelled
publish / build-node-cli (map[host:macos-26 target:darwin-arm64]) (push) Has been cancelled
publish / sign-cli-windows (push) Has been cancelled
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=arm64 host:macos-26 platform_flag:--mac --arm64 target:aarch64-apple-darwin]) (push) Has been cancelled
publish / build-electron (map[bun_install_flags:--os=darwin --cpu=x64 host:macos-26-intel platform_flag:--mac --x64 target:x86_64-apple-darwin]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404 platform_flag:--linux target:x86_64-unknown-linux-gnu]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-ubuntu-2404-arm platform_flag:--linux --arm64 target:aarch64-unknown-linux-gnu]) (push) Has been cancelled
publish / build-electron (map[host:blacksmith-4vcpu-windows-2025 platform_flag:--win target:x86_64-pc-windows-msvc]) (push) Has been cancelled
publish / build-electron (map[host:windows-2025 platform_flag:--win --arm64 target:aarch64-pc-windows-msvc]) (push) Has been cancelled
publish / publish (push) Has been cancelled
typecheck / typecheck (push) Has been cancelled
refactor(frontend): enforce package boundaries (#43177)
2026-08-18 15:49:23 +10:00

31 lines
849 B
TypeScript

export namespace Binary {
export function search<T>(array: T[], id: string, compare: (item: T) => string) {
let left = 0
let right = array.length - 1
while (left <= right) {
const middle = Math.floor((left + right) / 2)
const value = compare(array[middle])
if (value === id) return { found: true, index: middle }
if (value < id) left = middle + 1
else right = middle - 1
}
return { found: false, index: left }
}
export function insert<T>(array: T[], item: T, compare: (item: T) => string) {
const id = compare(item)
let left = 0
let right = array.length
while (left < right) {
const middle = Math.floor((left + right) / 2)
if (compare(array[middle]) < id) left = middle + 1
else right = middle
}
array.splice(left, 0, item)
return array
}
}