9 lines
552 B
TypeScript
9 lines
552 B
TypeScript
import {z} from "zod"
|
|
const ipv4=z.string().refine(value=>/^\d{1,3}(\.\d{1,3}){3}$/.test(value)&&value.split(".").every(part=>Number(part)<=255&&String(Number(part))===part),"Ожидался IPv4")
|
|
const response=z.object({host:z.string().min(1),ipv4:ipv4.nullable()})
|
|
export function readProbeSource(raw:unknown,host:string){
|
|
const result=response.safeParse(raw)
|
|
if(!result.success||result.data.host!==host)throw new Error("Некорректный ответ API: источник preview не подтверждён.")
|
|
return result.data.ipv4
|
|
}
|