misc
AsChildProp
type AsChildProp = boolean;
Defined in: src/utils/misc/misc.ts:32
When true, the component will render its child as the root element
instead of creating a new DOM element. This allows passing the component's
props and styling to a custom child component using Radix UI's Slot pattern.
Two major use cases:
- to reuse styles of a component, but render it using different element
- to inject event handlers without passing them manually
Example
// Renders a link as a badge
<Badge asChild>
<a href="https://example.com">Link Badge</a>
</Badge>
Default
false
InitialState
type InitialState<T> = T | () => T;
Defined in: src/utils/misc/misc.ts:44
Type representing a value that can be either a direct value or a function that returns that value. Useful for lazy initialization of state values.
Type Parameters
| Type Parameter |
|---|
T |
Nil
type Nil<T> = T | null | undefined;
Defined in: src/utils/misc/misc.ts:50
Type representing a value that can be null or undefined.
Shorthand for T | null | undefined.
Type Parameters
| Type Parameter |
|---|
T |
Url
type Url = string | UrlObject;
Defined in: src/utils/misc/misc.ts:55
Type representing a URL that can be either a string or a URL object.
PartialSome
type PartialSome<T, K> = Omit<T, K> & Partial<Pick<T, K>>;
Defined in: src/utils/misc/misc.ts:65
Make some fields in the object partial.
Type Parameters
| Type Parameter |
|---|
T |
K extends keyof T |
Example
PartialSome<{ a: string, b: string, c: string }, 'a'> => { a?: string, b: string, c: string }
RequiredSome
type RequiredSome<T, K> = Partial<Omit<T, K>> & Required<Pick<T, K>>;
Defined in: src/utils/misc/misc.ts:76
Make provided fields in the object required and the rest of fields partial.
Type Parameters
| Type Parameter |
|---|
T |
K extends keyof T |
Example
RequiredSome<{ a: string, b: string, c: string }, 'a'> => { a: string, b?: string, c?: string }
Prettify
type Prettify<T> = { [K in keyof T]: T[K] } & object;
Defined in: src/utils/misc/misc.ts:91
Prettify makes complex object types easier to read by flattening intersections. Use this when you export or inspect inferred types. This only affects type presentation in tooling.
Type Parameters
| Type Parameter |
|---|
T |
Example
type A = { a: string };
type B = { b: number };
type Mixed = A & B;
type Readable = Prettify<Mixed>; // { a: string; b: number }
isEmpty
const isEmpty: IsEmptyFunction;
Defined in: src/utils/misc/misc.ts:191
Checks if a value is empty. Handles strings, null/undefined, arrays, objects, and collections with size property.
Example
isEmpty(""); // true
isEmpty(null); // true
isEmpty([]); // true
isEmpty({}); // true
isEmpty(new Set()); // true
isEmpty("hello"); // false
isEmpty([1, 2, 3]); // false
not()
function not(value): boolean;
Defined in: src/utils/misc/misc.ts:38
Negates value. Useful for functional patterns and state callbacks.
Parameters
| Parameter | Type |
|---|---|
value | unknown |
Returns
boolean
copyToClipboard()
function copyToClipboard(value): Promise<void>;
Defined in: src/utils/misc/misc.ts:96
Handles copying to clipboard and show confirmation toast.
Parameters
| Parameter | Type |
|---|---|
value | string |
Returns
Promise<void>
upperFirst()
function upperFirst(value): string;
Defined in: src/utils/misc/misc.ts:112
Makes first letter uppercased.
Parameters
| Parameter | Type |
|---|---|
value | string |
Returns
string
Example
upperFirst("lorem ipsum") => "Lorem ipsum"
times()
function times<T>(length, callback): T[];
Defined in: src/utils/misc/misc.ts:118
Generates an array with a specified length.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
length | number |
callback | (index) => T |
Returns
T[]
strategy()
function strategy<T, F>(record, enumValue): Record<T, F>[T];
Defined in: src/utils/misc/misc.ts:138
Utility to dynamically resolve a strategy pattern.
Provides correct types for enums, guaranteeing that record provides every enum key.
Type Parameters
| Type Parameter |
|---|
T extends string | number | symbol |
F |
Parameters
| Parameter | Type |
|---|---|
record | Record<T, F> |
enumValue | T |
Returns
Record<T, F>[T]
Example
enum Message {
success
error
}
strategy({
[Message.success]: "Saving file worked!",
[Message.error]: "Saving file failed. Please try again later!",
}, Message.error) // "Saving file failed. Please try again later!"
ensureString()
function ensureString(value): string | undefined;
Defined in: src/utils/misc/misc.ts:152
Ensures a value is a string, returning undefined if it's not.
Parameters
| Parameter | Type |
|---|---|
value | unknown |
Returns
string | undefined
Example
ensureString("hello"); // "hello"
ensureString(123); // undefined
isObject()
function isObject(value): value is object;
Defined in: src/utils/misc/misc.ts:166
Type guard to check if a value is an object (and not null).
Parameters
| Parameter | Type |
|---|---|
value | unknown |
Returns
value is object
Example
isObject({}); // true
isObject([]); // true
isObject(null); // false
isObject("string"); // false
formatBoolean()
function formatBoolean(value): "true" | "false";
Defined in: src/utils/misc/misc.ts:211
Formats a boolean value into a string representation. Returns "true" or "false" based on the boolean value.
Parameters
| Parameter | Type |
|---|---|
value | boolean |
Returns
"true" | "false"
Example
formatBoolean(true); // "true"
formatBoolean(false); // "false"
formatNilBoolean()
function formatNilBoolean(value): "true" | "false" | null;
Defined in: src/utils/misc/misc.ts:224
Formats a boolean like formatBoolean, but returns null for nil values.
Parameters
| Parameter | Type |
|---|---|
value | Nil<boolean> |
Returns
"true" | "false" | null
Example
formatNilBoolean(true); // "true"
formatNilBoolean(false); // "false"
formatNilBoolean(null); // null
formatNilBoolean(undefined); // null
joinPaths()
function joinPaths(...segments): string;
Defined in: src/utils/misc/misc.ts:251
Joins path segments, handling leading/trailing slashes between segments. It accepts strings and numbers; ignores null/undefined/empty segments.
Parameters
| Parameter | Type |
|---|---|
...segments | Nil<string | number>[] |
Returns
string
Examples
joinPaths("/api/v1/", "/users", "123"); // "/api/v1/users/123"
joinPaths("api", "users"); // "api/users"
joinPaths("https://example.com/", "/users/", "123"); // "https://example.com/users/123"
joinPaths("/a", "b?x=1#top"); // "/a/b?x=1#top"