fix: ensure that shutdown works in loaderOnly mode (#6893)

This commit is contained in:
Sebastian Rindom
2024-04-01 15:56:42 +02:00
committed by GitHub
parent 68aa0971a2
commit 2e914a5fc5
2 changed files with 13 additions and 11 deletions
+12 -10
View File
@@ -119,16 +119,18 @@ export class MedusaModule {
}
public static async onApplicationShutdown(): Promise<void> {
await promiseAll(
[...MedusaModule.instances_.values()].map(instances => {
return Object.values(instances).map((instance: IModuleService) => {
[...MedusaModule.instances_.values()]
.map((instances) => {
return Object.values(instances).map((instance: IModuleService) => {
return instance.__hooks?.onApplicationShutdown
?.bind(instance)()
.catch(() => {
// The module should handle this and log it
return void 0
})
})
})
}).flat()
.flat()
)
}
@@ -262,14 +264,13 @@ export class MedusaModule {
let finishLoading: any
let errorLoading: any
const loadingPromise = new Promise((resolve, reject) => {
finishLoading = resolve
errorLoading = reject
})
if (!loaderOnly) {
MedusaModule.loading_.set(
hashKey,
new Promise((resolve, reject) => {
finishLoading = resolve
errorLoading = reject
})
)
MedusaModule.loading_.set(hashKey, loadingPromise)
}
let modDeclaration =
@@ -330,6 +331,7 @@ export class MedusaModule {
const services = {}
if (loaderOnly) {
finishLoading(services)
return services
}