igorkamyshev / farfetched

The advanced data fetching tool for web applications
https://ff.effector.dev
MIT License
190 stars 34 forks source link

Runtime mismatch between `mapData` result and `validate` input in `createQuery` #490

Open evist0 opened 4 months ago

evist0 commented 4 months ago

Description

There is a bug in the createQuery function where the validate function's argument type correctly inherits the result of mapData type-wise, but the actual runtime values do not match, causing validation issues.

Steps to Reproduce

  1. Open the provided reproduction link.
  2. Check the model.ts file where query is implemented.
  3. Observe that while TypeScript shows no type errors, the runtime behavior indicates a mismatch between the mapData result and the validate input.

Expected Behavior

The validate function should receive the correctly mapped data from mapData at runtime, ensuring proper validation.

Alternatively, if validation is intended to occur before mapData, the overload types should be adjusted accordingly to reflect this order of operations.

Actual Behavior

Despite TypeScript showing no type errors, the validate function receives data that doesn't match the expected runtime values from mapData, leading to validation failures.