Composable TypeScript HTTP client for browser and NodeJS apps, with built-in mocking and 'middlewares' support