fix(medusa): Load legacy modules entities (#5594)

This commit is contained in:
Adrien de Peretti
2023-11-10 08:51:55 +01:00
committed by GitHub
parent e3f1da92db
commit 4ad66c1795
2 changed files with 27 additions and 11 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
fix(medusa): Load legacy modules entities
+22 -11
View File
@@ -8,7 +8,7 @@ import { Express, NextFunction, Request, Response } from "express"
import databaseLoader, { dataSource } from "./database"
import pluginsLoader, { registerPluginModels } from "./plugins"
import { ContainerRegistrationKeys } from "@medusajs/utils"
import { ContainerRegistrationKeys, isString } from "@medusajs/utils"
import { asValue } from "awilix"
import { createMedusaContainer } from "medusa-core-utils"
import { track } from "medusa-telemetry"
@@ -40,6 +40,8 @@ type Options = {
}
async function loadLegacyModulesEntities(configModules, container) {
const logger = container.resolve(ContainerRegistrationKeys.LOGGER)
for (const [moduleName, moduleConfig] of Object.entries(configModules)) {
const definition = ModulesDefinition[moduleName]
@@ -47,16 +49,25 @@ async function loadLegacyModulesEntities(configModules, container) {
continue
}
if (
(moduleConfig as InternalModuleDeclaration).resources ===
MODULE_RESOURCE_TYPE.SHARED ||
(definition.defaultModuleDeclaration as InternalModuleDeclaration)
.resources === MODULE_RESOURCE_TYPE.SHARED
) {
const module = await import(
(moduleConfig as InternalModuleDeclaration).resolve ??
(definition.defaultPackage as string)
)
let modulePath = isString(moduleConfig)
? moduleConfig
: (moduleConfig as InternalModuleDeclaration).resolve ??
(definition.defaultPackage as string)
const resources = isString(moduleConfig)
? (definition.defaultModuleDeclaration as InternalModuleDeclaration)
.resources
: (moduleConfig as InternalModuleDeclaration).resources ??
(definition.defaultModuleDeclaration as InternalModuleDeclaration)
.resources
if (resources === MODULE_RESOURCE_TYPE.SHARED) {
if (!modulePath) {
logger.warn(`Unable to load module entities for ${moduleName}`)
continue
}
const module = await import(modulePath)
if (module.default?.models) {
module.default.models.map((model) =>