frontend/.pnpm-store/v3/files/f1/87c069f21e6bb32046dc4fc291c8ac8ff8eebb59e99272870e11986d4bd1bfad249f4c858342eda3594d897871e14b69204d181b24f5a2bc66802b5e281786

30 lines
926 B
Plaintext

"use strict";
var resolveException = require("../lib/resolve-exception")
, isValue = require("../value/is")
, is = require("./is");
var resolveCoercedValue = function (value, coerceItem) {
var coercedValue = [];
var iterator = value[Symbol.iterator]();
var item;
while (!(item = iterator.next()).done) {
var newItemValue = coerceItem(item.value);
if (!isValue(newItemValue)) throw new Error("Stop propagation");
coercedValue.push(newItemValue);
}
return coercedValue;
};
module.exports = function (value/*, options*/) {
var options = arguments[1];
if (is(value, options)) {
if (!options) return value;
if (typeof options.coerceItem !== "function") return value;
try { return resolveCoercedValue(value, options.coerceItem); }
catch (error) {
// Ignore, let validation error propagate
}
}
return resolveException(value, "%v is not expected iterable value", options);
};