Server : nginx/1.20.1 System : Linux ccpf-production-2021 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 User : forge ( 1000) PHP Version : 7.4.21 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/node_modules/gulp/node_modules/bach/lib/ |
'use strict';
var assert = require('assert');
var filter = require('arr-filter');
var map = require('arr-map');
var flatten = require('arr-flatten');
var forEach = require('array-each');
function noop() {}
function getExtensions(lastArg) {
if (typeof lastArg !== 'function') {
return lastArg;
}
}
function filterSuccess(elem) {
return elem.state === 'success';
}
function filterError(elem) {
return elem.state === 'error';
}
function buildOnSettled(done) {
if (typeof done !== 'function') {
done = noop;
}
function onSettled(error, result) {
if (error) {
return done(error, null);
}
var settledErrors = filter(result, filterError);
var settledResults = filter(result, filterSuccess);
var errors = null;
if (settledErrors.length) {
errors = map(settledErrors, 'value');
}
var results = null;
if (settledResults.length) {
results = map(settledResults, 'value');
}
done(errors, results);
}
return onSettled;
}
function verifyArguments(args) {
args = flatten(args);
var lastIdx = args.length - 1;
assert.ok(args.length, 'A set of functions to combine is required');
forEach(args, function(arg, argIdx) {
var isFunction = typeof arg === 'function';
if (isFunction) {
return;
}
if (argIdx === lastIdx) {
// Last arg can be an object of extension points
return;
}
var msg = 'Only functions can be combined, got ' + typeof arg +
' for argument ' + argIdx;
assert.ok(isFunction, msg);
});
return args;
}
module.exports = {
getExtensions: getExtensions,
onSettled: buildOnSettled,
verifyArguments: verifyArguments,
};