guarded()
guarded<
In,Out>(fn,check): (input) =>Result<Out,string>
Guarded proxy - checks access before calling the function.
The check returns true to allow, or a rejection reason string to deny.
Returns a zygos Result: Ok(output) if allowed, Err(reason) if denied.
Type Parameters
In: In
The input type
Out: Out
The output type
Parameters
fn: (input) => Out
The function to guard
check: (input) => string | true
Access check. Return true to allow, or a string reason to deny.
Returns
A proxy returning Result<Out, string>
Since
2.4.0
Example
const deleteUser = guarded(
(id: string) => db.delete(id),
(id) => id !== "admin" ? true : "Cannot delete admin user",
);
deleteUser("user-1"); // Ok(void)
deleteUser("admin"); // Err("Cannot delete admin user")