pages235/renderer/viewer/lib/simpleUtils.ts
2025-03-26 05:11:37 +03:00

41 lines
1.1 KiB
TypeScript

export async function getBufferFromStream (stream) {
return new Promise((resolve, reject) => {
let buffer = Buffer.from([])
stream.on('data', buf => {
buffer = Buffer.concat([buffer, buf])
})
stream.on('end', () => resolve(buffer))
stream.on('error', reject)
})
}
export function openURL (url, newTab = true) {
if (newTab) {
window.open(url, '_blank', 'noopener,noreferrer')
} else {
window.open(url, '_self')
}
}
export const isMobile = () => {
return window.matchMedia('(pointer: coarse)').matches || navigator.userAgent.includes('Mobile')
}
export function chunkPos (pos: { x: number, z: number }) {
const x = Math.floor(pos.x / 16)
const z = Math.floor(pos.z / 16)
return [x, z]
}
export function sectionPos (pos: { x: number, y: number, z: number }) {
const x = Math.floor(pos.x / 16)
const y = Math.floor(pos.y / 16)
const z = Math.floor(pos.z / 16)
return [x, y, z]
}
// doesn't support snapshots
export const toMajorVersion = version => {
const [a, b] = (String(version)).split('.')
return `${a}.${b}`
}