effector / effector/farfetched
Custom error serialization
- Dominant language
- TypeScript
- Stars
- 221
- Forks
- 36
- PR merge metrics
- No merged PRs in 30d
Description
Hi! I'd like to use custom serialization for `$error` store in query and mutation.
### My use case:
I have a project that uses nextjs and farfetched, sometimes a NetworkError can happen on the server side, this type of error has a non-serializable property "cause". In this situation I can't to serialize queries running on the server. Now the only one solution is to set `serialize` property to `'ignore'`, but it will disable serialization for all stores. That's not what i want.
### My suggestion:
I think that it would be nice to separate serialization for `$error` and `$data`. As i understood, now `serialization` property works like this:
1. If `serialization` equals to `'ignore'`, it will disable all serialization
2. If `serialization` equals to `{write: ..., read...}`, this rules will be used only for $data store, and will have no effect for all other stores
And I suggest changing this behavior to this:
`
type Serialize = Serialize | {error?: Serialize, data?: Serialize} | undefined;
`
1. If `serialization` equals to `'ignore'` or `{write: ..., read...}`, it will works like before
2. If `serialization` equals to `{error: ..., data: ... }`, it will apply different serialization rules for `$error` and `$data`
Hope my suggestion helps!
Contributor guide
Assessment
This issue has not been assessed yet.