From 78da6c180d3e75b6b4df2bdbecce496734916d75 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Thu, 10 Oct 2019 16:38:56 +0200 Subject: [PATCH] feat: Validate options.ensureItem in iterable/ensure --- iterable/ensure.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iterable/ensure.js b/iterable/ensure.js index 6581093..3531056 100644 --- a/iterable/ensure.js +++ b/iterable/ensure.js @@ -3,6 +3,7 @@ var resolveException = require("../lib/resolve-exception") , resolveErrorMessage = require("../lib/resolve-error-message") , toShortString = require("../lib/to-short-string") + , ensurePlainFunction = require("../plain-function/ensure") , is = require("./is"); var invalidItemsLimit = 3, defaultErrorMessage = "%v is not expected iterable value"; @@ -38,6 +39,6 @@ var ensureItems = function (value, options) { module.exports = function (value/*, options*/) { var options = arguments[1]; if (!is(value, options)) return resolveException(value, defaultErrorMessage, options); - if (!options || typeof options.ensureItem !== "function") return value; + if (!options || !ensurePlainFunction(options.ensureItem, { isOptional: true })) return value; return ensureItems(value, options); };