@oricardopestana/ts-utils
v1.0.17
Published
TypeScript utilities
Readme
ts-utils
Latest release
Installation
npm install @oricardopestana/ts-utilsUsage
useAsync
Wraps a promise-returning callback and returns a [data, error] tuple — no more try/catch.
import { useAsync } from "@oricardopestana/ts-utils";
const [data, error] = await useAsync(() => fetch("/api/data").then(r => r.json()));
if (error) {
console.error("Failed to fetch:", error);
return;
}
console.log(data);Prettify<T>
Expands intersection/utility types into a flat object for readable IDE previews.
import type { Prettify } from "@oricardopestana/ts-utils/types";
type Complex = { a: string } & Omit<{ b: number } & Record<"c", boolean>, "b">;
type Readable = Prettify<Complex>;
// Hovering shows: { a: string; c: boolean }LooseAutocomplete<T>
Preserves IDE autocomplete for union members while still allowing arbitrary values.
import type { LooseAutocomplete } from "@oricardopestana/ts-utils/types";
type Language = LooseAutocomplete<"en" | "fr" | "es">;
const a: Language = "en"; // autocompletes
const b: Language = "pt"; // also validDocumentation
Full documentation at ts-utils-theta.vercel.app
License
MIT
