The complexity of Citoid's code base has increased recently due to the numerous changes and additions, and the current async approach has become tedious to test properly and maintain. We should consider switching to a promise-based model.
As we are doing that, it might be worthwhile to base Citoid on service-template-node / service-runner in order to profit from unified config management, start-up and packaging.
Done:
- Base Citoid on service-template-node and service-runner
- Promisify Citoid
The second part - promisify Citoid - is badly needed to limit the amount of technical debt stemming from the fact that there are currently two diverging execution paths - zotero and the native scraper. The promisification will allow us to have a single execution flow:
pre-translation tasks -- translation -- post-translation tasks