@msaaddev/promise-it

0.1.3 • Public • Published

cover


A simple Node.js package that helps you not to look up JavaScript promise syntax every time you use it.

separator

  • Simple: Adds abstraction to the promise syntax
  • Easy to use: No need to learn JavaScript promise syntax
  • Promise: Turns any function into a promise
  • All promises: Provides a way to chain all promises and returns the result collectively
  • Any promise: Takes array of promise and returns a promise that resolves when any of the promise is resolved
  • All settled promises: Takes array of promise and returns a promise that resolves when all promises are settled

Install

# install the package
npm install @msaaddev/promise-it

API

promiseIt()

Promisify a callback function

promiseItAll()

Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected.

promiseItAny()

Promisify any of the given callback functions

promiseItAllSettled()

Creates a Promise that is resolved with an array of results when all of the provided Promises resolve or reject.


Usage

  • promiseIt()
const { promiseIt } = require('@msaaddev/promise-it');

(async () => {
	const callback = (resolve, reject) => {
		exec(`networkQuality`, error => {
			if (error) {
				handleError(error);
				reject(error);
			}
			resolve('All good. Ran networkQuality.');
		});
	};

	try {
		const promise = await promiseIt(callback);
		console.log(promise);
	} catch (err) {
		console.log(err);
	}
})();
  • promiseItAll()
const { promiseItAll } = require('@msaaddev/promise-it');
const { exec } = require('child_process');

(async () => {
	const callback = (resolve, reject) => {
		exec(`networkQuality`, error => {
			if (error) {
				handleError(error);
				reject(error);
			}
			resolve('All good. Ran networkQuality.');
		});
	};

	const callback2 = (resolve, reject) => {
		exec(`networkQuality -v`, error => {
			if (error) {
				reject(error);
			}
			resolve('All good. Ran networkQuality -v.');
		});
	};

	try {
		const allPromises = await promiseItAll(callback, callback2);
		console.log(allPromises);
	} catch (err) {
		console.log(err);
	}
})();
  • promiseItAny()
const { promiseItAny } = require('@msaaddev/promise-it');
const { exec } = require('child_process');

(async () => {
	const callback = (resolve, reject) => {
		exec(`networkQuality`, error => {
			if (error) {
				handleError(error);
				reject(error);
			}
			resolve('All good. Ran networkQuality.');
		});
	};

	const callback2 = (resolve, reject) => {
		exec(`networkQuality -v`, error => {
			if (error) {
				reject(error);
			}
			resolve('All good. Ran networkQuality -v.');
		});
	};

	try {
		const anyPromise = await promiseItAny(callback, callback2);
		console.log(anyPromise);
	} catch (err) {
		console.log(err);
	}
})();
  • promiseItAllSettled()
const { promiseItAllSettled } = require('@msaaddev/promise-it');
const { exec } = require('child_process');

const { promiseIt, promiseItAll, promiseItAny } = require('./index');
const { exec } = require('child_process');

(async () => {
	const callback = (resolve, reject) => {
		exec(`networkQuality`, error => {
			if (error) {
				handleError(error);
				reject(error);
			}
			resolve('All good. Ran networkQuality.');
		});
	};

	const callback2 = (resolve, reject) => {
		exec(`networkQuality -v`, error => {
			if (error) {
				reject(error);
			}
			resolve('All good. Ran networkQuality -v.');
		});
	};

	try {
		const allSettledPromise = await promiseItAllSettled(
			callback,
			callback2
		);
		console.log(allSettledPromise);
	} catch (err) {
		console.log(err);
	}
})();

👨🏻‍💻 Contributing

Make sure you read the contributing guidelines before opening a PR.

⚡️ Other Projects

I have curated a detailed list of all the open-source projects I have authored. Do take out a moment and take a look.

🔑 License & Conduct

Package Sidebar

Install

npm i @msaaddev/promise-it

Weekly Downloads

1

Version

0.1.3

License

MIT

Unpacked Size

265 kB

Total Files

17

Last publish

Collaborators

  • msaaddev