MCPcopy Create free account
hub / github.com/Snowflyt/tinyeffect / EffectedDraft

Interface EffectedDraft

src/effected.ts:2249–2429  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2247}
2248
2249export interface EffectedDraft<
2250 out P extends Effect = Effect,
2251 out E extends Effect = Effect,
2252 out R = unknown,
2253> extends Iterable<E, R, unknown> {
2254 handle<Name extends ExtractEffect<E>["name"], T = R, F extends Effect = never>(
2255 effect: Name,
2256 handler: ExtractEffect<E> extends infer E ?
2257 Extract<E, Effect<Name>> extends Unresumable<Effect> ?
2258 (
2259 {
2260 effect,
2261 terminate,
2262 }: { effect: Extract<E, Effect<Name>>; terminate: (value: T) => void },
2263 ...payloads: Extract<E, Effect<Name>>["payloads"]
2264 ) => void | Generator<F, void, unknown> | Effected<F, void>
2265 : (
2266 {
2267 effect,
2268 resume,
2269 terminate,
2270 }: {
2271 effect: Extract<E, Effect<Name>>;
2272 resume: (value: Extract<E, Effect<Name>>["__returnType"]) => void;
2273 terminate: (value: T) => void;
2274 },
2275 ...payloads: Extract<E, Effect<Name>>["payloads"]
2276 ) => void | Generator<F, void, unknown> | Effected<F, void>
2277 : never,
2278 ): EffectedDraft<P, ExcludeEffect<E, Effect<Name>> | F, R | T>;
2279 handle<Name extends string | symbol, T = R, F extends Effect = never>(
2280 effect: (name: ExtractEffect<E>["name"]) => name is Name,
2281 handler: ExtractEffect<E> extends infer E ?
2282 Extract<E, Effect<Name>> extends Unresumable<Effect> ?
2283 (
2284 {
2285 effect,
2286 terminate,
2287 }: { effect: Extract<E, Effect<Name>>; terminate: (value: T) => void },
2288 ...payloads: Extract<E, Effect<Name>>["payloads"]
2289 ) => void | Generator<F, void, unknown> | Effected<F, void>
2290 : (
2291 {
2292 effect,
2293 resume,
2294 terminate,
2295 }: {
2296 effect: Extract<E, Effect<Name>>;
2297 resume: (value: Extract<E, Effect<Name>>["__returnType"]) => void;
2298 terminate: (value: T) => void;
2299 },
2300 ...payloads: Extract<E, Effect<Name>>["payloads"]
2301 ) => void | Generator<F, void, unknown> | Effected<F, void>
2302 : never,
2303 ): EffectedDraft<P, ExcludeEffect<E, Effect<Name>> | F, R | T>;
2304
2305 resume<Name extends Exclude<E, Unresumable<Effect>>["name"], F extends Effect = never>(
2306 effect: Name,

Callers 115

effected.spec.tsFile · 0.65
readItFunction · 0.65
handleErrorAsResultFunction · 0.65
withPrefixFunction · 0.65
withMinimumLogLevelFunction · 0.65
printElementsFunction · 0.65
askConstFunction · 0.65
effected.proof.tsFile · 0.65
effected.spec.tsFile · 0.65

Implementers 1

Effectedsrc/effected.ts

Calls

no outgoing calls

Tested by

no test coverage detected