ngx-ordered-initializer
Version:
An Angular DI token that you can use to provide one or more initialization functions that will be executed in order
26 lines (21 loc) • 642 B
text/typescript
import { APP_INITIALIZER, InjectionToken } from "@angular/core";
import { isPromise } from "./helpers";
export const ORDERED_APP_INITIALIZER = new InjectionToken(
"Ordered Application Initializer"
);
export function orderedAppInitializer(appInits: (() => any)[]) {
return async (): Promise<void> => {
for (const initializer of appInits) {
const result = initializer();
if (isPromise(result)) {
await result;
}
}
};
}
export const ORDERED_APP_PROVIDER = {
provide: APP_INITIALIZER,
useFactory: orderedAppInitializer,
deps: [ORDERED_APP_INITIALIZER],
multi: true,
};