promizr
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

promizr

NPM version Unit Tests Coverage Status License semantic-release

Promizr is a modern Promise utility library which provides simple and powerful functions to manage complex async JavaScript.

Promizr provides more than 60 functions including the usual collections operations (map, reduce, filter, each…) as well as some common patterns for asynchronous control flow (parallel, series, waterfall…). It also include Queues to manage the maximum number of tasks to run concurrently.

Installation

Using NPM:

$ npm install promizr

Usage

You could use promizr in different context.

Global

<script type="text/javascript" src="node_modules/promizr/dist/promizr.min.js"></script>

ES Modules

import { each } from "promizr";
await each([...], async (item) => { ... });

CommonJS

const promizr = require("promizr");
await promizr.each([...], async (item) => { ... });

AMD

// require.config.js
requirejs.config({
    paths: {
        promizr: 'node_modules/promizr/dist/promizr.min'
    }
});
 
// module.js
define(["promizr"], function(promizr) {
    promizr.each([...], async (item) => { ... }).then(...);
});

Quick Examples

// contents will be an array containing the content of each file
const contents = await promizr.map(['file1.json','file2.json','file3.json'], async (src) => {
    const res = await fetch(`https://host/${src}`);
    return res.json();
});
 
// entities will be an array containing an array of ids of public entities
const entities = await promizr.filter(['entity1','entity2','entity3'], async (entityId) => {
    const res = await fetch(`https://api/entities/${entityId}`);
    const entity = await res.json();
    return entity.isPublic;
});
 
// operations will run in parallel
const [result1, result2, result3] = await promizr.parallel([
    async () => operation1Async(),
    async () => operation2Async(),
    async () => operation3Async(),
];

Documentation

You can find the package documentation here.

License

This project is under MIT License. See the LICENSE file for the full license text.

Package Sidebar

Install

npm i promizr

Weekly Downloads

31

Version

1.1.0

License

MIT

Unpacked Size

190 kB

Total Files

9

Last publish

Collaborators

  • mluce