* feat: add support for conditional requests * feat: add unit tests for conditional requests * feat: use invariant * feat: add type guard * feat: fix lint * feat: add more unit tests