UNPKG

@sjsf-lab/shadcn-extras-theme

Version:

The shadcn-svelte-extras based theme for svelte-jsonschema-form

49 lines (48 loc) 1.35 kB
import { type Result } from './result.js'; export type Octets = [number, number, number, number]; export type IPv4Address = Octets | `${number}.${number}.${number}.${number}` | `${number} ${number} ${number} ${number}` | `${number}_${number}_${number}_${number}`; export type ParseError = { octet?: number; message: string; }; /** Parses the ip address from a string in the format of `0.0.0.0` or `0 0 0 0` or `0_0_0_0` into an array of octets * * @param address * @returns * * ## Usage * * ```ts * parse("192.168.100.10").unwrap(); // [192, 168, 100, 10] * ``` */ export declare function parse(address: string): Result<Octets, ParseError>; /** Validates the provided address * * @param address * @returns * * ## Usage * * ```ts * validate("192.168.100.10"); // true * validate([192, 168, 100, 10]); // true * * validate("192.168.100.256"); // false * validate([192, 168, 100, 256]); // false * ``` */ export declare function validate(address: IPv4Address): boolean; /** Formats the provided address to a string with the provided separator * * @param address * @param separator @default "." * @returns * * ## Usage * * ```ts * formatToString([192, 168, 100, 10]); // "192.168.100.10" * ``` */ export declare function formatToString(address: IPv4Address, separator?: '.' | '_' | ' '): Result<string, string>;