Flatry (flat try) converting promise or function to flat array response like [err, result]
.
Inspired by golang style error handling without try/catch.
npm install flatry
# or
yarn add flatry
import flatry from 'flatry';
// or
const flatry = require('flatry');
Before:
async asyncData({ app, error }) {
try {
const categories = (await app.$axios.$get('forum')).sections;
return { categories };
} catch (err) {
return error({ statusCode: err.statusCode });
}
}
After:
async asyncData({ app, error }) {
const [err, res] = await flatry(app.$axios.$get('forum'));
if (err) return error({ statusCode: err.statusCode });
return { categories: res.sections };
}
Before:
function throwErrorIn10percent() {
if (Math.random() > 0.9) throw new Error('Random error');
return true;
}
let result = false;
try {
result = throwErrorIn10percent()
} catch (error) {
console.log('Error catched', error)
}
console.log('result', result);
After:
function throwErrorIn10percent() {
if (Math.random() > 0.9) throw new Error('Random error');
return true;
}
const [err, result] = flatry(throwErrorIn10percent);
if (err) console.log('Error catched', err)
console.log('result', result);