FPGA_WebLab/server/common.ts

29 lines
850 B
TypeScript

import _ from "lodash"
import { z } from "zod";
export const uint8 = z.number().nonnegative().lt(Math.pow(2, 8))
export const uint16 = z.number().nonnegative().lt(Math.pow(2, 16))
export const uint32 = z.number().nonnegative().lt(Math.pow(2, 32))
export const int8 = z.number().lt(Math.pow(2, 7)).gte(-Math.pow(2, 8))
export const int16 = z.number().lt(Math.pow(2, 15)).gte(-Math.pow(2, 16))
export const int32 = z.number().lt(Math.pow(2, 31)).gte(-Math.pow(2, 32))
export namespace fun {
export function numberToBytes(num: number, bytesLength: number): Uint8Array {
var array = new Uint8Array(bytesLength)
for (let i = 0; i < bytesLength; i++) {
array[i] = num & (0xFF << (i << 3))
}
return array
}
export function randomFromArray(array: Array<any>) {
return array[_.random(0, array.length - 1, false)]
}
}