@ollierelph/result4t
TypeScript icon, indicating that this package has built-in type declarations

0.7.0 • Public • Published

result4t

Available now

pnpm add @ollierelph/result4t or pnpm add result4t

What's this?

result4t takes some pointers from the wonderful result4k

It's a replacement for Promise that gives us a strongly-typed error mode.

An example

import fs from "node:fs";

const readFileAndReverse = () =>
  fs
    .readFile("./boom.txt")
    .then((contents) => contents.split("\n").reverse().join("\n"));

readFileAndReverse()
  .then((reversedFile) => {
    console.log(reversedFile);
    process.exit(0);
  })
  .catch((error: unknown) => {
    console.error(error);
    process.exit(1);
  });

in result4t:

import fs from "node:fs";
import { TaskResult } from "./TaskResult";

const readFileAndReverse = () =>
  TaskResult.ofPromise(
    () => fs.readFile("./boom.txt"),
    (err: unknown) => new Error("Unable to find file"),
  ).map((contents) => contents.split("\n").reverse().join("\n"));

readFileAndReverse()
  .peek((reversedFile) => {
    console.log(reversedFile);
    process.exit(0);
  })
  .peekLeft((error) => {
    // ^--- typed as Error
    console.error(error);
    process.exit(1);
  })
  .run();

Package Sidebar

Install

npm i @ollierelph/result4t

Weekly Downloads

8

Version

0.7.0

License

MIT

Unpacked Size

87.6 kB

Total Files

18

Last publish

Collaborators

  • ollierelph