Commit 4a0e2465 authored by nanahira's avatar nanahira

add AppContextState

parent d5504fa3
...@@ -6,6 +6,7 @@ import { ...@@ -6,6 +6,7 @@ import {
AppProvidedMerged, AppProvidedMerged,
AppProvideOptions, AppProvideOptions,
AppContextUsed, AppContextUsed,
AppContextState,
} from './types'; } from './types';
import { import {
createAsyncMethod, createAsyncMethod,
...@@ -351,6 +352,8 @@ async function test() { ...@@ -351,6 +352,8 @@ async function test() {
provide: 'baz', provide: 'baz',
}) })
.define(); .define();
type Ctx2State = AppContextState<typeof ctx2>;
const ctx2Used = await createAppContext().use(ctx2).define().start(); const ctx2Used = await createAppContext().use(ctx2).define().start();
const final = await createAppContext().use(ctx1).use(ctx2).define().start(); const final = await createAppContext().use(ctx1).use(ctx2).define().start();
......
...@@ -12,6 +12,9 @@ type CurAndReq<Cur, Req> = { ...@@ -12,6 +12,9 @@ type CurAndReq<Cur, Req> = {
export type AppContext<Cur = Empty, Req = Empty> = AppContextCore<Cur, Req> & export type AppContext<Cur = Empty, Req = Empty> = AppContextCore<Cur, Req> &
CurAndReq<Cur, Req>; CurAndReq<Cur, Req>;
export type AppContextState<A extends AppContext> =
A extends AppContext<infer Cur, infer Req> ? CurAndReq<Cur, Req> : never;
export type AppServiceClass< export type AppServiceClass<
Cur = Empty, Cur = Empty,
Req = Empty, Req = Empty,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment