Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
var actualType = SharedMethod.getType(uarg);
// convert values to the correct type
// TODO(bajtos) Move conversions to HttpContext (and friends)
// SharedMethod should only check that argument values match argument types.
var conversionNeeded = targetType !== 'any' &&
actualType !== 'undefined' &&
actualType !== targetType;
if (conversionNeeded) {
// JSON.parse can throw, so catch this error.
try {
uarg = convertValueToTargetType(name, uarg, targetType);
actualType = SharedMethod.getType(uarg);
} catch (e) {
var message = util.format('invalid value for argument \'%s\' of type ' +
'\'%s\': %s. Received type was %s. Error: %s',
name, targetType, uarg, typeof uarg, e.message);
throw new BadArgumentError(message);
}
}
var typeMismatch = targetType !== 'any' &&
actualType !== 'undefined' &&
targetType !== actualType &&
// In JavaScript, an array is an object too (typeof [] === 'object').
// However, SharedMethod.getType([]) returns 'array' instead of 'object'.
// We must explicitly allow assignment of an array value to an argument
// of type 'object'.
!(targetType === 'object' && actualType === 'array');
var targetTypeIsArray = Array.isArray(targetType) && targetType.length === 1;
// If coercing an array to an erray,
// then coerce all members of the array too
if (targetTypeIsArray && Array.isArray(uarg)) {
return uarg.map(function uargMapFn(arg, ix) {
// when coercing array items, use only name and type,
// ignore all other root settings like "required"
return coerceAccepts(arg, {
name: name + '[' + ix + ']',
type: targetType[0]
});
});
}
var actualType = SharedMethod.getType(uarg);
// convert values to the correct type
// TODO(bajtos) Move conversions to HttpContext (and friends)
// SharedMethod should only check that argument values match argument types.
var conversionNeeded = targetType !== 'any' &&
actualType !== 'undefined' &&
actualType !== targetType;
if (conversionNeeded) {
// JSON.parse can throw, so catch this error.
try {
uarg = convertValueToTargetType(name, uarg, targetType);
actualType = SharedMethod.getType(uarg);
} catch (e) {
var message = util.format('invalid value for argument \'%s\' of type ' +
'\'%s\': %s. Received type was %s. Error: %s',