A simple and handy promise and try/catch wrapper.
Piwa handles the following:
- Promises
- Async functions
- Sync functions
And returns them with a flexible API.
Import piwa in your file:
// ESM
import piwa from 'piwa';
// CJS
const { piwa } = require('piwa');// Promise
const myPromise = Promise.resolve('ok!');
const { data, error } = await piwa(myPromise); // returns { data: 'ok!', error: null }
const myPromise = new Promise.reject('ko!');
const { data, error } = await piwa(myPromise); // returns { data: null, error: Error }const myAsyncFn = async () => {
await anyAsyncFn;
// ...
return 'ok!';
};
const { data, error } = await piwa(myPromise); // returns { data: 'ok!', error: null }
const myAsyncFn = async () => {
// ...
throw 'ko!';
};
const { data, error } = await piwa(myPromise); // returns { data: null, error: Error }const myFunction = () => return 'ok!';
const { data, error } = await piwa(myPromise); // returns { data: 'ok!', error: null }
const myFunction = () => { throw 'ko!' };
const { data, error } = await piwa(myPromise); // returns { data: null, error: Error }