port fetchJs, coallescer, actualFetchJs to use promises