Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/composer / dist / webpack / forEachBail.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function forEachBail(array, iterator, callback) {
    if (array.length === 0)
        return callback();
    let currentPos = array.length;
    let currentResult;
    let done = [];
    for (let i = 0; i < array.length; i++) {
        const itCb = createIteratorCallback(i);
        iterator(array[i], itCb);
        if (currentPos === 0)
            break;
    }
    function createIteratorCallback(i) {
        return (...args) => {
            // eslint-disable-line
            if (i >= currentPos)
                return; // ignore
            done.push(i);
            if (args.length > 0) {
                currentPos = i + 1;
                done = done.filter(item => {
                    return item <= i;
                });
                currentResult = args;
            }
            if (done.length === currentPos) {
                callback(...currentResult);
                currentPos = 0;
            }
        };
    }
}
exports.forEachBail = forEachBail;
function forEachBailWithIndex(array, iterator, callback) {
    if (array.length === 0)
        return callback();
    let currentPos = array.length;
    let currentResult;
    let done = [];
    for (let i = 0; i < array.length; i++) {
        const itCb = createIteratorCallback(i);
        iterator(array[i], i, itCb);
        if (currentPos === 0)
            break;
    }
    function createIteratorCallback(i) {
        return (...args) => {
            // eslint-disable-line
            if (i >= currentPos)
                return; // ignore
            done.push(i);
            if (args.length > 0) {
                currentPos = i + 1;
                done = done.filter(item => {
                    return item <= i;
                });
                currentResult = args;
            }
            if (done.length === currentPos) {
                callback(...currentResult);
                currentPos = 0;
            }
        };
    }
}
exports.forEachBailWithIndex = forEachBailWithIndex;
exports.withIndex = forEachBailWithIndex;
//# sourceMappingURL=forEachBail.js.map