1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict';
- var _require = require('../helpers/is'),
- isArray = _require.isArray,
- isObject = _require.isObject,
- isFunction = _require.isFunction;
- module.exports = function skipUntil(valueOrFunction) {
- var _this = this;
- var previous = null;
- var items;
- var callback = function callback(value) {
- return value === valueOrFunction;
- };
- if (isFunction(valueOrFunction)) {
- callback = valueOrFunction;
- }
- if (isArray(this.items)) {
- items = this.items.filter(function (item) {
- if (previous !== true) {
- previous = callback(item);
- }
- return previous;
- });
- }
- if (isObject(this.items)) {
- items = Object.keys(this.items).reduce(function (acc, key) {
- if (previous !== true) {
- previous = callback(_this.items[key]);
- }
- if (previous !== false) {
- acc[key] = _this.items[key];
- }
- return acc;
- }, {});
- }
- return new this.constructor(items);
- };
|