UNPKG

@onrails/result

Version:

Tagged Result / ResultAsync for railway-oriented TypeScript — pure tagged unions, neverthrow-shaped compat shim, FL-friendly

36 lines (34 loc) 669 B
// src/internal/dual.ts var err = (error) => ({ _tag: "Err", error }); var isErr = (result) => result._tag === "Err"; // src/try-gen.ts var ErrSignal = class { constructor(error) { this.error = error; } error; _tag = "ErrSignal"; }; var yieldResult = (result) => { if (isErr(result)) { throw new ErrSignal(result.error); } return result.value; }; var $ = yieldResult; var tryGen = (fn) => { try { return fn(); } catch (error) { if (error instanceof ErrSignal) { return err(error.error); } throw error; } }; export { $, tryGen, yieldResult }; //# sourceMappingURL=try-gen.js.map //# sourceMappingURL=try-gen.js.map