@kellanjs/actioncraft
Version:
Fluent, type-safe builder for Next.js server actions.
62 lines • 1.83 kB
JavaScript
// ============================================================================
// Core Result Type
// ============================================================================
export function ok(value) {
return { type: "ok", value: value };
}
export function err(error) {
return { type: "err", error: error };
}
/**
* Tests if a Result is successful.
* @param result The Result to check
* @returns true if result is Ok, false if Err
*/
export function isOk(result) {
return result.type === "ok";
}
/**
* Tests if a Result is failed.
* @param result The Result to check
* @returns true if result is Err, false if Ok
*/
export function isErr(result) {
return result.type === "err";
}
/**
* Tests if an unknown value is a valid Result.
* @param value The value to check
* @returns true if value is a Result (Ok or Err), false otherwise
*/
export function isResult(value) {
return (typeof value === "object" &&
value !== null &&
"type" in value &&
((value.type === "ok" && "value" in value) ||
(value.type === "err" && "error" in value)));
}
/**
* Tests if an unknown value is a valid Ok Result.
* @param value The value to check
* @returns true if value is an Ok Result, false otherwise
*/
export function isResultOk(value) {
return (typeof value === "object" &&
value !== null &&
"type" in value &&
value.type === "ok" &&
"value" in value);
}
/**
* Tests if an unknown value is a valid Err Result.
* @param value The value to check
* @returns true if value is an Err Result, false otherwise
*/
export function isResultErr(value) {
return (typeof value === "object" &&
value !== null &&
"type" in value &&
value.type === "err" &&
"error" in value);
}
//# sourceMappingURL=result.js.map