Skip to content

Commit 13f6110

Browse files
committed
feat: refine Valchecker methods to separate initial and non-initial method interfaces
1 parent e7aeffe commit 13f6110

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

packages/internal/src/core/types.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,12 @@ type ExtractStepMethods<Instance extends Valchecker> = ResolveStepMethodDefs<Ins
114114
}
115115
: never
116116

117-
interface ValcheckerMehods<Instance extends Valchecker> {
117+
interface OnlyInitialValcheckerMethods {
118+
isSuccess: (result: ExecutionResult) => result is ExecutionSuccessResult<any>
119+
isFailure: (result: ExecutionResult) => result is ExecutionFailureResult<any>
120+
}
121+
122+
interface OnlyNotInitialValcheckerMethods<Instance extends Valchecker> {
118123
execute: (value: InferInput<Instance>) => [
119124
ExecutionResult<InferOutput<Instance>, InferIssue<Instance>>,
120125
InferAsync<Instance>,
@@ -125,13 +130,20 @@ interface ValcheckerMehods<Instance extends Valchecker> {
125130
? Promise<Result>
126131
: MaybePromise<Result>
127132
: never
128-
isSuccess: (result: ExecutionResult) => result is ExecutionSuccessResult<any>
129-
isFailure: (result: ExecutionResult) => result is ExecutionFailureResult<any>
130133
}
131134

132135
export type Use<Instance extends Valchecker> = Instance
133136
& ExtractStepMethods<Instance>
134-
& ValcheckerMehods<Instance>
137+
& (
138+
InferExecutionContext<Instance>['initial'] extends false
139+
? OnlyNotInitialValcheckerMethods<Instance>
140+
: unknown
141+
)
142+
& (
143+
InferExecutionContext<Instance>['initial'] extends true
144+
? OnlyInitialValcheckerMethods
145+
: unknown
146+
)
135147

136148
export type Next<
137149
Patch extends TExecutionContextPatch | undefined,

0 commit comments

Comments
 (0)