I have come up with this expression to do it (just paste it in the linear wipe percentage). For now this only works for a left to right wipe (-90° angle), so some of the calculations need to be flipped to work in the other direction. The buffer variable is just used to wipe away an extra pixel on both ends, because sometimes a column of subpixels stays visible on either side of the text layer.
I guess it would be very hard to adapt this to arbitrary wipe angles, but changing sourceRectAtTime().left to sourceRectAtTime().top and sourceRectAtTime().width to sourceRectAtTime().height should at least allow for vertical wipes.
buffer = 1;
x_start = thisLayer.position[0] + sourceRectAtTime().left - buffer;
x_end = thisLayer.position[0] + sourceRectAtTime().left + sourceRectAtTime().width + buffer;
c_w = thisComp.width;
100-linear(value, 0, 100, ((x_start/c_w))*100, ((x_end/c_w))*100)