UNPKG

json-tots

Version:

Template of Templates, a.k.a Template Should Eat Itself

63 lines (62 loc) 2.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray")); function slyd(fn) { var len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fn.length; return /*#__PURE__*/_regenerator["default"].mark(function _callee() { var args, batch; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: args = []; case 1: if (!true) { _context.next = 14; break; } if (!(args.length < len)) { _context.next = 11; break; } _context.t0 = _toConsumableArray2["default"]; _context.next = 6; return; case 6: _context.t1 = _context.sent; batch = (0, _context.t0)(_context.t1); args.push.apply(args, (0, _toConsumableArray2["default"])(batch)); _context.next = 12; break; case 11: return _context.abrupt("return", fn.apply(void 0, args)); case 12: _context.next = 1; break; case 14: case "end": return _context.stop(); } } }, _callee); })(); } function spinslyd(fn) { var gen = slyd(fn); gen.next(); return function turn() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var _gen$next = gen.next(args), done = _gen$next.done, value = _gen$next.value; // two way communication with the generator (::) return done ? value : turn; }; } module.exports = { curryUntil: spinslyd, satisfy: spinslyd, spinslyd: spinslyd };