I needed access to individual query components, so I thought might as well add that here. The parsing is done slightly differently then the other bits: I could have introduced a separate state while parsing components, which would have made things more complex, and less easy to see if I had made a mistake, or was breaking other code.
So I left the query parsing as is, but just added support for query components without actually touching or rebuilding the query itself. So should be completely transparent to code.
I needed access to individual query components, so I thought might as well add that here. The parsing is done slightly differently then the other bits: I could have introduced a separate state while parsing components, which would have made things more complex, and less easy to see if I had made a mistake, or was breaking other code.
So I left the query parsing as is, but just added support for query components without actually touching or rebuilding the query itself. So should be completely transparent to code.