@@ -8,6 +8,13 @@ const UrlCtor = URL
88
99/**
1010 * Check if a value is a valid URL.
11+ *
12+ * @example
13+ * ```typescript
14+ * isUrl('https://example.com') // true
15+ * isUrl('not a url') // false
16+ * isUrl(null) // false
17+ * ```
1118 */
1219/*@__NO_SIDE_EFFECTS__ */
1320export function isUrl ( value : string | URL | null | undefined ) : boolean {
@@ -20,6 +27,12 @@ export function isUrl(value: string | URL | null | undefined): boolean {
2027
2128/**
2229 * Parse a value as a URL.
30+ *
31+ * @example
32+ * ```typescript
33+ * parseUrl('https://example.com') // URL { href: 'https://example.com/' }
34+ * parseUrl('invalid') // undefined
35+ * ```
2336 */
2437/*@__NO_SIDE_EFFECTS__ */
2538export function parseUrl ( value : string | URL ) : URL | undefined {
@@ -31,6 +44,12 @@ export function parseUrl(value: string | URL): URL | undefined {
3144
3245/**
3346 * Convert a URL search parameter to an array.
47+ *
48+ * @example
49+ * ```typescript
50+ * urlSearchParamAsArray('a, b, c') // ['a', 'b', 'c']
51+ * urlSearchParamAsArray(null) // []
52+ * ```
3453 */
3554/*@__NO_SIDE_EFFECTS__ */
3655export function urlSearchParamAsArray (
@@ -51,6 +70,13 @@ export interface UrlSearchParamAsBooleanOptions {
5170
5271/**
5372 * Convert a URL search parameter to a boolean.
73+ *
74+ * @example
75+ * ```typescript
76+ * urlSearchParamAsBoolean('true') // true
77+ * urlSearchParamAsBoolean('0') // false
78+ * urlSearchParamAsBoolean(null) // false
79+ * ```
5480 */
5581/*@__NO_SIDE_EFFECTS__ */
5682export function urlSearchParamAsBoolean (
@@ -73,6 +99,12 @@ export function urlSearchParamAsBoolean(
7399
74100/**
75101 * Helper to get array from URLSearchParams.
102+ *
103+ * @example
104+ * ```typescript
105+ * const params = new URLSearchParams('tags=a,b,c')
106+ * urlSearchParamsGetArray(params, 'tags') // ['a', 'b', 'c']
107+ * ```
76108 */
77109/*@__NO_SIDE_EFFECTS__ */
78110export function urlSearchParamsGetArray (
@@ -97,6 +129,13 @@ export interface UrlSearchParamsGetBooleanOptions {
97129
98130/**
99131 * Helper to get boolean from URLSearchParams.
132+ *
133+ * @example
134+ * ```typescript
135+ * const params = new URLSearchParams('debug=true')
136+ * urlSearchParamsGetBoolean(params, 'debug') // true
137+ * urlSearchParamsGetBoolean(params, 'other') // false
138+ * ```
100139 */
101140/*@__NO_SIDE_EFFECTS__ */
102141export function urlSearchParamsGetBoolean (
@@ -123,6 +162,12 @@ export interface CreateRelativeUrlOptions {
123162
124163/**
125164 * Create a relative URL for testing.
165+ *
166+ * @example
167+ * ```typescript
168+ * createRelativeUrl('/api/test') // 'api/test'
169+ * createRelativeUrl('/api/test', { base: 'https://example.com' }) // 'https://example.com/api/test'
170+ * ```
126171 */
127172/*@__NO_SIDE_EFFECTS__ */
128173export function createRelativeUrl (
@@ -153,6 +198,13 @@ export interface UrlSearchParamAsStringOptions {
153198
154199/**
155200 * Get string value from URLSearchParams with a default.
201+ *
202+ * @example
203+ * ```typescript
204+ * const params = new URLSearchParams('name=socket')
205+ * urlSearchParamAsString(params, 'name') // 'socket'
206+ * urlSearchParamAsString(params, 'other') // ''
207+ * ```
156208 */
157209/*@__NO_SIDE_EFFECTS__ */
158210export function urlSearchParamAsString (
@@ -177,6 +229,13 @@ export interface UrlSearchParamAsNumberOptions {
177229
178230/**
179231 * Get number value from URLSearchParams with a default.
232+ *
233+ * @example
234+ * ```typescript
235+ * const params = new URLSearchParams('limit=10')
236+ * urlSearchParamAsNumber(params, 'limit') // 10
237+ * urlSearchParamAsNumber(params, 'other') // 0
238+ * ```
180239 */
181240/*@__NO_SIDE_EFFECTS__ */
182241export function urlSearchParamAsNumber (
0 commit comments