Current section
Files
Jump to
Current section
Files
src/utils/result.ffi.mjs
// src/utils/result.ffi.ts
import { Result$Error, Result$Ok } from "../../prelude.mjs";
function toResult(value) {
return value === null || value === void 0 ? Result$Error(void 0) : Result$Ok(value);
}
function indexToResult(index) {
return index === -1 ? Result$Error(void 0) : Result$Ok(index);
}
function toError(value) {
return value instanceof Error ? value : new Error(String(value), { cause: value });
}
toResult.fromThrows = function(throws) {
try {
return Result$Ok(throws());
} catch (error) {
return Result$Error(toError(error));
}
};
toResult.fromPromise = function(promise) {
return promise.then(
(value) => Result$Ok(value),
(error) => Result$Error(toError(error))
);
};
export {
indexToResult,
toResult
};