From b6556ad275dd9c1e5772a32ba8ba459e5f6d5a96 Mon Sep 17 00:00:00 2001 From: BlackPoretsky <84518407+BlackPoretsky@users.noreply.github.com> Date: Sat, 18 Jan 2025 12:20:20 +0300 Subject: [PATCH 1/3] Exported FailInfo type and changed field type to "otherwise" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Не всегда необходимо передавать информацию об ошибке в событие otherwise. Эти изменения не предотвращают передачу информации, но, по крайней мере, TypeScript перестанет выдавать ошибки. Экспорт FailInfo необходим, если нужно указать тип информации об ошибке в generic параметре у createEvent>. На данный момент приходится использовать следующий подход: ``` type RetryConfig = Parameters>['1']; type Otherwise = Exclude; type FailInfo = Exclude['0'], undefined>; export const sessionSignOut: EventCallable = createEvent(); ``` --- packages/core/src/retry/retry.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/retry/retry.ts b/packages/core/src/retry/retry.ts index adbdf0a3..9bc79072 100644 --- a/packages/core/src/retry/retry.ts +++ b/packages/core/src/retry/retry.ts @@ -31,7 +31,7 @@ import { } from '../remote_operation/type'; import { type RetryMeta } from './type'; -type FailInfo> = { +export type FailInfo> = { params: RemoteOperationParams; error: RemoteOperationError; meta: ExecutionMeta; @@ -51,7 +51,7 @@ type RetryConfig< RemoteOperationParams, MapParamsSource >; - otherwise?: EventCallable>; + otherwise?: EventCallable | void>; supressIntermediateErrors?: boolean; }; From 9f0b2640e449f7422c3840a73ae2ecfd2ea94fba Mon Sep 17 00:00:00 2001 From: BlackPoretsky <84518407+BlackPoretsky@users.noreply.github.com> Date: Sat, 18 Jan 2025 12:27:42 +0300 Subject: [PATCH 2/3] Added FailInfo type to "retry" public API --- packages/core/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 5eb6a15d..ed1aaecf 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -16,6 +16,7 @@ export { createHeadlessMutation } from './mutation/create_headless_mutation'; export { createJsonMutation } from './mutation/create_json_mutation'; // Retry public API +export { type FailInfo } from './retry/retry'; export { retry } from './retry/retry'; export { exponentialDelay, linearDelay } from './retry/delay'; From b3ec67a7252e5fea68886cd1416166d86db2d32f Mon Sep 17 00:00:00 2001 From: BlackPoretsky <84518407+BlackPoretsky@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:48:18 +0300 Subject: [PATCH 3/3] Support for importing the FailInfo type has been added, and the type for the otherwise field in the retry configuration object has been extended (enabling the use of an event of type EventCallable). --- .changeset/ninety-pillows-smell.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/ninety-pillows-smell.md diff --git a/.changeset/ninety-pillows-smell.md b/.changeset/ninety-pillows-smell.md new file mode 100644 index 00000000..78cfd53e --- /dev/null +++ b/.changeset/ninety-pillows-smell.md @@ -0,0 +1,5 @@ +--- +"@farfetched/core": patch +--- + +Support for importing the FailInfo type has been added, and the type for the otherwise field in the retry configuration object has been extended (enabling the use of an event of type EventCallable).