@sjsf-lab/shadcn-extras-theme
Version:
The shadcn-svelte-extras based theme for svelte-jsonschema-form
49 lines (48 loc) • 1.35 kB
TypeScript
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>;