"use strict"; const Promise = require("bluebird"); const map = require("@promistream/map"); const { validateArguments } = require("@validatem/core"); const required = require("@validatem/required"); const isFunction = require("@validatem/is-function"); module.exports = function mapStream(_spyCallback) { let [ spyCallback ] = validateArguments(arguments, { spyCallback: [ required, isFunction ] }); return map((item) => { return Promise.try(() => { return spyCallback(item); }).then(() => { return item; }); }); };