HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: 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,
Upload Files
File: /var/www/zaklada/html/node_modules/lazypipe/index.js
/*jshint node:true */

"use strict";

var combine = require('stream-combiner');

var validateStep = function(step) {
		if(!step) {
			throw new Error("Invalid call to lazypipe().pipe(): no stream creation function specified");
		} else if(typeof step !== 'function') {
			throw new Error("Invalid call to lazypipe().pipe(): argument is not a function.\n" +
				"    Remember not to call stream creation functions directly! e.g.: pipe(foo), not pipe(foo())");
		}
	},
	validateSteps = function(steps) {
		if(steps.length === 0) {
			throw new Error("Tried to build a pipeline with no pipes!");
		}
	};

function lazypipe() {
	var createPipeline = function(steps) {

		var build = function() {
			validateSteps(steps);
			return combine.apply(null, steps.map(function(t) {
				return t.task.apply(null, t.args);
			}));
		};

		build.appendStepsTo = function(otherSteps) {
			return otherSteps.concat(steps);
		};

		build.pipe = function(step) {
			validateStep(step);
			if(step.appendStepsTo) {
				// avoid creating nested pipelines
				return createPipeline(step.appendStepsTo(steps));
			} else {
				return createPipeline(steps.concat({
					task: step,
					args: Array.prototype.slice.call(arguments, 1)
				}));
			}
		};

		return build;
	};

	return createPipeline([]);
}

module.exports = lazypipe;