refactor(dispatcher): UpdateInfo<...> to ParsedUpdate

This commit is contained in:
teidesu 2021-07-14 22:34:03 +03:00
parent 6d8c7fee78
commit 5b9ddc1f7b
2 changed files with 12 additions and 11 deletions

View file

@ -28,7 +28,7 @@ import {
HistoryReadHandler,
} from './handler'
// end-codegen-imports
import { UpdateInfo } from './handler'
import { ParsedUpdate } from './handler'
import { filters, UpdateFilter } from './filters'
import { handlers } from './builders'
import {
@ -159,7 +159,7 @@ export declare interface Dispatcher<
> {
on<T = {}>(
name: 'update',
handler: (update: UpdateInfo<UpdateHandler> & T) => void
handler: (update: ParsedUpdate & T) => void
): this
// begin-codegen-declare
@ -308,18 +308,18 @@ export class Dispatcher<
private _errorHandler?: <T = {}>(
err: Error,
update: UpdateInfo<UpdateHandler> & T,
update: ParsedUpdate & T,
state?: UpdateState<State, SceneName>
) => MaybeAsync<boolean>
private _preUpdateHandler?: <T = {}>(
update: UpdateInfo<UpdateHandler> & T,
update: ParsedUpdate & T,
state?: UpdateState<State, SceneName>
) => MaybeAsync<PropagationAction | void>
private _postUpdateHandler?: <T = {}>(
handled: boolean,
update: UpdateInfo<UpdateHandler> & T,
update: ParsedUpdate & T,
state?: UpdateState<State, SceneName>
) => MaybeAsync<void>
@ -821,7 +821,7 @@ export class Dispatcher<
handler:
| ((
err: Error,
update: UpdateInfo<UpdateHandler> & T,
update: ParsedUpdate & T,
state?: UpdateState<State, SceneName>
) => MaybeAsync<boolean>)
| null
@ -845,7 +845,7 @@ export class Dispatcher<
onPreUpdate<T = {}>(
handler:
| ((
update: UpdateInfo<UpdateHandler> & T,
update: ParsedUpdate & T,
state?: UpdateState<State, SceneName>
) => MaybeAsync<PropagationAction | void>)
| null
@ -870,7 +870,7 @@ export class Dispatcher<
handler:
| ((
handled: boolean,
update: UpdateInfo<UpdateHandler> & T,
update: ParsedUpdate & T,
state?: UpdateState<State, SceneName>
) => MaybeAsync<void>)
| null
@ -883,9 +883,9 @@ export class Dispatcher<
* Set error handler that will propagate
* the error to the parent dispatcher
*/
propagateErrorToParent<T extends Exclude<UpdateHandler, RawUpdateHandler>>(
propagateErrorToParent(
err: Error,
update: UpdateInfo<T>,
update: ParsedUpdate,
state?: UpdateState<State, SceneName>
): MaybeAsync<boolean> {
if (!this.parent)

View file

@ -33,12 +33,13 @@ type ParsedUpdateHandler<Type, Update, State = never> = BaseUpdateHandler<
(update: Update, state: State) => MaybeAsync<boolean>
>
export type UpdateInfo<T> = T extends ParsedUpdateHandler<infer K, infer Q>
type _ParsedUpdate<T> = T extends ParsedUpdateHandler<infer K, infer Q>
? {
readonly type: K
readonly data: Q
}
: never
export type ParsedUpdate = _ParsedUpdate<UpdateHandler>
export type RawUpdateHandler = BaseUpdateHandler<
'raw',