in lib/eventstream_rpc_utils.ts [484:517]
export function validateValueAsMap(value : any, keyValidator : ElementValidator, valueValidator : ElementValidator, propertyName?: string, type?: string) {
if (value === undefined) {
return;
}
if (!(value instanceof Map)) {
throwInvalidPropertyValueError('a map value', propertyName, type);
}
let valueAsMap = value as Map<any, any>;
for (const [key, val] of valueAsMap) {
try {
keyValidator(key);
} catch (err) {
let rpcError : eventstream_rpc.RpcError = err as eventstream_rpc.RpcError;
if (propertyName && type) {
throw eventstream_rpc.createRpcError(eventstream_rpc.RpcErrorType.ValidationError, `Map property '${propertyName}' of type '${type}' contains an invalid key`, new CrtError(rpcError.toString()));
} else {
throw eventstream_rpc.createRpcError(eventstream_rpc.RpcErrorType.ValidationError, `Map contains an invalid key`, new CrtError(rpcError.toString()));
}
}
try {
valueValidator(val);
} catch (err) {
let rpcError : eventstream_rpc.RpcError = err as eventstream_rpc.RpcError;
if (propertyName && type) {
throw eventstream_rpc.createRpcError(eventstream_rpc.RpcErrorType.ValidationError, `Map property '${propertyName}' of type '${type}' contains an invalid value`, new CrtError(rpcError.toString()));
} else {
throw eventstream_rpc.createRpcError(eventstream_rpc.RpcErrorType.ValidationError, `Map contains an invalid value`, new CrtError(rpcError.toString()));
}
}
}
}