Skip to content
0

katanakit-js / useAttempt

Function: useAttempt() ​

ts
function useAttempt<T>(operation, mapError?): Promise<SafeResult<T>>;

Defined in: src/core/services/result.service.ts:26

Runs an operation (sync or async) and captures any throw as a Safe Result.

The canonical replacement for ad-hoc try/catch at service boundaries: the mapper defaults to useErrorNormalize, so SDK errors, Error instances and plain strings all come back normalized.

Type Parameters ​

Type ParameterDescription
TSuccess value type.

Parameters ​

ParameterTypeDefault valueDescription
operation() => T | Promise<T>undefinedThe operation to run.
mapError(error) => { details?: unknown; message: string; status: number; }useErrorNormalizeOptional error mapper (default: useErrorNormalize).

Returns ​

Promise<SafeResult<T>>

{ data, error, ok } — never throws.

Example ​

ts
import { useAttempt } from "katanakit-js";

const result = await useAttempt(() => sdk.insert("posts", row));
if (result.ok) console.log(result.data);
else console.error(result.error.message);

Released under the MIT License.