The issue turned out to be some as unspecified limit to the amount of data that can be passed between Electron's main process and a render process. For this particular issue, the CSV file had over 29,000 column, and serialising the the data spec for that many columns was over 3MB, and exceeded some limit, so the Promise was never resolved.
The solution taken was to limit the number of columns exposed to the frontend to 1000 ('should be more than enough for anyone' - famous last words), whilst the C++ backend deals with the full file. If 1000 proves to be a problem we can expose the parameter as a user option later.
The issue turned out to be some as unspecified limit to the amount of data that can be passed between Electron's main process and a render process. For this particular issue, the CSV file had over 29,000 column, and serialising the the data spec for that many columns was over 3MB, and exceeded some limit, so the Promise was never resolved.
The solution taken was to limit the number of columns exposed to the frontend to 1000 ('should be more than enough for anyone' - famous last words), whilst the C++ backend deals with the full file. If 1000 proves to be a problem we can expose the parameter as a user option later.
This change is![Reviewable](https://reviewable.io/review_button.svg)