@xility/invariant
v0.0.1
Published
A simple assertion utility function.
Readme
@xility/invariant
A simple assertion utility function.
Installation
npm install @xility/invariantExample
Simple argument validation
import { invariant } from "@xility/invariant;
function greet(name) {
invariant(name, "name is required");
return `Hello, ${name}!`;
}
greet("Bob"); // returns "Hello, Bob!"
greet(null); // throws Error("name is required")Type narrowing/assertion
const person: Person | undefined = await db.getPerson(id);
invariant(person, "person is required");
// the type system knows that person is NOT undefined here
return `Hello, ${person.name}!`;Custom Error type
class ValidationError extends Error {
constructor(message: string) {
super(message);
}
}
invariant(amount > 0, "amount must be greater than zero", ValidationError);