UNPKG

bal-util

Version:

Common utility functions for Node.js used and maintained by Benjamin Lupton

138 lines (122 loc) 4.18 kB
'use strict'; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); // Generated by CoffeeScript 2.3.1 // Import var TaskGroup, balUtilFlow, eachr, typeChecker; var _require = require('taskgroup'); TaskGroup = _require.TaskGroup; typeChecker = require('typechecker'); eachr = require('eachr'); // ===================================== // Flow balUtilFlow = { // Wait a certain amount of milliseconds before firing the function wait: function wait(delay, fn) { return setTimeout(fn, delay); }, // Flow through a series of actions on an object // next(err) flow: function flow() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var action, actions, next, object, tasks; // Extract if (args.length === 1) { var _args$ = args[0]; object = _args$.object; actions = _args$.actions; action = _args$.action; args = _args$.args; tasks = _args$.tasks; next = _args$.next; } else if (args.length === 4) { var _args = args; var _args2 = _slicedToArray(_args, 4); object = _args2[0]; action = _args2[1]; args = _args2[2]; next = _args2[3]; } else if (args.length === 3) { var _args3 = args; var _args4 = _slicedToArray(_args3, 3); actions = _args4[0]; args = _args4[1]; next = _args4[2]; } // Check if (action != null === false && actions != null === false) { throw new Error('balUtilFlow.flow called without any action'); } // Create tasks group and cycle through it if (actions == null) { actions = action.split(/[,\s]+/g); } if (object == null) { object = null; } tasks || (tasks = new TaskGroup().done(next)); actions.forEach(function (action) { return tasks.addTask(function (complete) { var argsClone, fn; // Prepare callback argsClone = (args || []).slice(); argsClone.push(complete); // Fire the action with the next helper fn = typeChecker.isFunction(action) ? action : object[action]; return fn.apply(object, argsClone); }); }); // Fire the tasks synchronously tasks.run(); return this; }, // Create snore createSnore: function createSnore(message, opts) { var snore; // Prepare opts || (opts = {}); if (opts.delay == null) { opts.delay = 5000; } // Create snore object snore = { snoring: false, timer: setTimeout(function () { snore.clear(); snore.snoring = true; return typeof message === "function" ? message() : void 0; }, opts.delay), clear: function clear() { if (snore.timer) { clearTimeout(snore.timer); return snore.timer = false; } } }; // Return return snore; }, // Suffix an array suffixArray: function suffixArray(suffix) { var arg, i, item, j, len, len1, result; result = []; for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } for (i = 0, len = args.length; i < len; i++) { arg = args[i]; if (!typeChecker.isArray(arg)) { arg = [arg]; } for (j = 0, len1 = arg.length; j < len1; j++) { item = arg[j]; result.push(item + suffix); } } return result; } }; // ===================================== // Export module.exports = balUtilFlow;