@coniface/trial
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Trial

"I promise before Almighty God that the evidence which I shall give shall be the truth, the whole truth, and nothing but the truth."

A great tool to ensure your code keeps its promise!

How to install it

Use your favorite packet manager:

pnpm i @coniface/trial
yarn add @coniface/trial
npm i @coniface/trial

How to use it?

It could not be simpler than that!

  • Reduces promise declaration indentation
// Instead of
const promise = new Promise((resolve, reject) => {
  console.log(`Let's get to work!`);
});
import { getTrial } from '@coniface/trial';

// Inline your promise
const [promise, resolve, reject] = getTrial<T>();
console.log(`Let's get to work!`);

ℹ Since early 2024, it became part of the Promise API
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers

  • Encourages the use of strong typings instead of try/catch blocks
// Instead of
async function somewhereInYourCode<T>(promise: Promise<T>) {
  try {
    const result = await promise;
    console.log(`Let's get to work!`);
  } catch (error) {
    console.error('An error occured', error);
  }
}
import { trial } from '@coniface/trial';

// Use typings and inline your code
async function somewhereInYourCode<T>(promise: Promise<T>) {
  const [data, error] = await trial(promise);
  if (error) {
    // error exists in this context
    // data type is never
    console.error('An error occured', error);
    return;
  }
  // error does not exist in this context
  // data type is T
  console.log(`Let's get to work!`);
}

Why this naming?

  • trial is a concise 5-letter word to use as a function.
  • The reference to the promise in tribunal.
  • The result (guilty / not guilty) that matches with a promise state (resolved / rejected).

Package Sidebar

Install

npm i @coniface/trial

Weekly Downloads

338

Version

1.0.1

License

MIT

Unpacked Size

11.7 kB

Total Files

7

Last publish

Collaborators

  • coniface