bitcoin core – How do I get old blocks while running a pruned node?

Hello I’m trying to build a NodeJS app that fetches Bitcoin blocks, potentially old ones, and I’m running into issues. I’ve downloaded Bitcoin Core but I don’t have enough space to run a full node and so I opted to run a pruned one. However, when I go to query an old block it tells me that the block isn’t available in pruned mode. So my question is, why doesn’t Bitcoin Core query the block on the fly from another node if it doesn’t find it on disk? It clearly has the ability to do this, else how would it sync the blocks in the first place? If this is not possible with Bitcoin Core, could I build my own JS app that mimics the network calls used in the IBD to get blocks on demand, instead of saving them to disk? Also, I can’t use a 3rd party block explorer API because they don’t have all the features I want and they are less reliable.