effector / effector/farfetched

Custom error serialization

Open
#492 1 comment 0 reactions 0 assignees View on GitHub
good first issue scope:core
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.