mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
chore: Allow specifying runnable phase directly from runAfter
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
1b96a94c14
commit
8a3e204e74
@ -37,21 +37,28 @@ export const getInitializable = <T>(rootId: string): Initializable<T> => ({
|
|||||||
|
|
||||||
type InitState<T> = { set: true; value: T } | { set: false };
|
type InitState<T> = { set: true; value: T } | { set: false };
|
||||||
|
|
||||||
export interface ImplInitializableInjectionTokensArgs<T> {
|
export type ImplInitializableInjectionTokensArgs<T> = {
|
||||||
token: Initializable<T>;
|
token: Initializable<T>;
|
||||||
init: (di: DiContainerForInjection) => T | Promise<T>;
|
init: (di: DiContainerForInjection) => T | Promise<T>;
|
||||||
|
} & (
|
||||||
|
{
|
||||||
phase: InjectionToken<Runnable<void>, void>;
|
phase: InjectionToken<Runnable<void>, void>;
|
||||||
runAfter?: Runnable<void>["runAfter"];
|
runAfter?: Injectable<Runnable<void>, Runnable<void>, void>[];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
{
|
||||||
|
runAfter: Injectable<Runnable<void>, Runnable<void>, void>;
|
||||||
|
phase?: undefined;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
export const getInjectablesForInitializable = <T>({
|
export const getInjectablesForInitializable = <T>({
|
||||||
init,
|
init,
|
||||||
phase,
|
|
||||||
token: {
|
token: {
|
||||||
rootId,
|
rootId,
|
||||||
stateToken,
|
stateToken,
|
||||||
},
|
},
|
||||||
runAfter,
|
...rest
|
||||||
}: ImplInitializableInjectionTokensArgs<T>) => {
|
}: ImplInitializableInjectionTokensArgs<T>) => {
|
||||||
let state: InitState<T> = { set: false };
|
let state: InitState<T> = { set: false };
|
||||||
|
|
||||||
@ -73,9 +80,15 @@ export const getInjectablesForInitializable = <T>({
|
|||||||
value: await init(di),
|
value: await init(di),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
runAfter,
|
runAfter: rest.runAfter,
|
||||||
}),
|
}),
|
||||||
injectionToken: phase,
|
injectionToken: (() => {
|
||||||
|
if (rest.runAfter && !Array.isArray(rest.runAfter)) {
|
||||||
|
return rest.runAfter.injectionToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rest.phase;
|
||||||
|
})(),
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user