Feat(modules-sdk): Run hooks on application start (#6111)
**What** - run `onApplicationStart` hook when starting modules
This commit is contained in:
5
.changeset/neat-seals-help.md
Normal file
5
.changeset/neat-seals-help.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@medusajs/modules-sdk": patch
|
||||
---
|
||||
|
||||
feat(modules-sdk): run hooks on application start
|
||||
@@ -308,12 +308,16 @@ export async function MedusaApp(
|
||||
}))
|
||||
}
|
||||
|
||||
return {
|
||||
modules: allModules,
|
||||
link: remoteLink,
|
||||
query,
|
||||
entitiesMap: schema.getTypeMap(),
|
||||
notFound,
|
||||
runMigrations,
|
||||
try {
|
||||
return {
|
||||
modules: allModules,
|
||||
link: remoteLink,
|
||||
query,
|
||||
entitiesMap: schema.getTypeMap(),
|
||||
notFound,
|
||||
runMigrations,
|
||||
}
|
||||
} finally {
|
||||
await MedusaModule.onApplicationStart()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import {
|
||||
ExternalModuleDeclaration,
|
||||
IModuleService,
|
||||
InternalModuleDeclaration,
|
||||
LinkModuleDefinition,
|
||||
LoadedModule,
|
||||
@@ -85,6 +86,21 @@ export class MedusaModule {
|
||||
return MedusaModule.getModuleInstance(key)
|
||||
})
|
||||
}
|
||||
|
||||
public static onApplicationStart(): void {
|
||||
for (const instances of MedusaModule.instances_.values()) {
|
||||
for (const instance of Object.values(instances) as IModuleService[]) {
|
||||
if (instance?.__hooks) {
|
||||
instance.__hooks?.onApplicationStart
|
||||
?.bind(instance)()
|
||||
.catch(() => {
|
||||
// The module should handle this and log it
|
||||
return void 0
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static clearInstances(): void {
|
||||
MedusaModule.instances_.clear()
|
||||
|
||||
Reference in New Issue
Block a user