mirror of
https://github.com/fosrl/pangolin.git
synced 2025-08-04 01:55:10 +02:00
create target validator and add url validator
This commit is contained in:
parent
a418195b28
commit
d5a220a004
4 changed files with 46 additions and 96 deletions
|
@ -11,34 +11,7 @@ import { fromError } from "zod-validation-error";
|
|||
import { addPeer } from "../gerbil/peers";
|
||||
import { addTargets } from "../newt/targets";
|
||||
import { pickPort } from "./helpers";
|
||||
|
||||
// // Regular expressions for validation
|
||||
// const DOMAIN_REGEX =
|
||||
// /^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
||||
// const IPV4_REGEX =
|
||||
// /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
||||
// const IPV6_REGEX = /^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$/i;
|
||||
//
|
||||
// // Schema for domain names and IP addresses
|
||||
// const domainSchema = z
|
||||
// .string()
|
||||
// .min(1, "Domain cannot be empty")
|
||||
// .max(255, "Domain name too long")
|
||||
// .refine(
|
||||
// (value) => {
|
||||
// // Check if it's a valid IP address (v4 or v6)
|
||||
// if (IPV4_REGEX.test(value) || IPV6_REGEX.test(value)) {
|
||||
// return true;
|
||||
// }
|
||||
//
|
||||
// // Check if it's a valid domain name
|
||||
// return DOMAIN_REGEX.test(value);
|
||||
// },
|
||||
// {
|
||||
// message: "Invalid domain name or IP address format",
|
||||
// path: ["domain"]
|
||||
// }
|
||||
// );
|
||||
import { isTargetValid } from "@server/lib/validators";
|
||||
|
||||
const updateTargetParamsSchema = z
|
||||
.object({
|
||||
|
@ -48,7 +21,7 @@ const updateTargetParamsSchema = z
|
|||
|
||||
const updateTargetBodySchema = z
|
||||
.object({
|
||||
ip: z.string().min(1).max(255),
|
||||
ip: z.string().refine(isTargetValid),
|
||||
method: z.string().min(1).max(10).optional().nullable(),
|
||||
port: z.number().int().min(1).max(65535).optional(),
|
||||
enabled: z.boolean().optional()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue