I think we should just pass in the same number of arguments which is 5. Val will be undefined, but that is to be expected for virtual columns. This way we don't need differentiate between the different types of renderer in this middleware, it simply just render the supplied renderer function. I've updated the code for this and that is a lot simpler to this current commit discussed here.