UNPKG

strum

Version:
36 lines (28 loc) 901 B
'use strict' var isStream = require('is-stream') var isIterable = require('is-iterable') var isPromise = require('is-promise') var isFunction = require('is-function') var wrapFunction = require('./lib/function') var wrapIterable = require('./lib/iterable') var wrapPromise = require('./lib/promise') var wrapArray = require('./lib/array') module.exports = strum function strum (src, _opts) { var opts = _opts || {} if (!opts.hasOwnProperty('objectMode')) { opts.objectMode = true } if (isStream(src)) { return src } else if (isFunction(src)) { return wrapFunction(src, opts) } else if (Array.isArray(src)) { return wrapArray(src, opts) } else if ((global || window).hasOwnProperty('Symbol') && isIterable(src)) { return wrapIterable(src, opts) } else if (isPromise(src)) { return wrapPromise(src, opts) } throw new TypeError('invalid source type') }