core-native
Version:
A lightweight framework based on React Native + Redux + Redux Saga, in strict TypeScript.
23 lines • 2.47 kB
TypeScript
import { type StrictEffect, type Effect, spawn, delay, put, fork } from "redux-saga/effects";
type SagaGeneratorWithReturn<RT> = Generator<Effect, RT, any>;
type UnwrapReturnType<R> = R extends SagaGeneratorWithReturn<infer RT> ? RT : R extends Promise<infer PromiseValue> ? PromiseValue : R;
export type SagaGenerator = Generator<StrictEffect>;
export declare function call<Args extends any[], R>(fn: (...args: Args) => R, ...args: Args): SagaGeneratorWithReturn<UnwrapReturnType<R>>;
export declare function race<T extends Record<string, unknown>>(effects: T): SagaGeneratorWithReturn<{
[P in keyof T]?: UnwrapReturnType<T[P]>;
}>;
export declare function race<T1, T2>(effects: [T1, T2]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>?, UnwrapReturnType<T2>?]>;
export declare function race<T1, T2, T3>(effects: [T1, T2, T3]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>?, UnwrapReturnType<T2>?, UnwrapReturnType<T3>?]>;
export declare function race<T1, T2, T3, T4>(effects: [T1, T2, T3, T4]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>?, UnwrapReturnType<T2>?, UnwrapReturnType<T3>?, UnwrapReturnType<T4>?]>;
export declare function race<T1, T2, T3, T4, T5>(effects: [T1, T2, T3, T4, T5]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>?, UnwrapReturnType<T2>?, UnwrapReturnType<T3>?, UnwrapReturnType<T4>?, UnwrapReturnType<T5>?]>;
export declare function race<T>(effects: T[]): SagaGeneratorWithReturn<Array<UnwrapReturnType<T> | undefined>>;
export declare function all<T extends Record<string, unknown>>(effects: T): SagaGeneratorWithReturn<{
[P in keyof T]: UnwrapReturnType<T[P]>;
}>;
export declare function all<T1, T2>(effects: [T1, T2]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>, UnwrapReturnType<T2>]>;
export declare function all<T1, T2, T3>(effects: [T1, T2, T3]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>, UnwrapReturnType<T2>, UnwrapReturnType<T3>]>;
export declare function all<T1, T2, T3, T4>(effects: [T1, T2, T3, T4]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>, UnwrapReturnType<T2>, UnwrapReturnType<T3>, UnwrapReturnType<T4>]>;
export declare function all<T1, T2, T3, T4, T5>(effects: [T1, T2, T3, T4, T5]): SagaGeneratorWithReturn<[UnwrapReturnType<T1>, UnwrapReturnType<T2>, UnwrapReturnType<T3>, UnwrapReturnType<T4>, UnwrapReturnType<T5>]>;
export declare function all<T>(effects: T[]): SagaGeneratorWithReturn<Array<UnwrapReturnType<T>>>;
export { spawn, delay, put, fork };
//# sourceMappingURL=typed-saga.d.ts.map