diff --git a/.changeset/honest-peaches-call.md b/.changeset/honest-peaches-call.md new file mode 100644 index 0000000000..cc0e6c3652 --- /dev/null +++ b/.changeset/honest-peaches-call.md @@ -0,0 +1,7 @@ +--- +"@medusajs/modules-sdk": patch +"@medusajs/medusa": patch +"@medusajs/link-modules": patch +--- + +Fix custom modules loader diff --git a/packages/link-modules/src/initialize/index.ts b/packages/link-modules/src/initialize/index.ts index 8d6b6b56ee..d35dabc640 100644 --- a/packages/link-modules/src/initialize/index.ts +++ b/packages/link-modules/src/initialize/index.ts @@ -108,7 +108,7 @@ export const initialize = async ( } const logger = - injectedDependencies?.[ContainerRegistrationKeys.LOGGER] ?? console.log + injectedDependencies?.[ContainerRegistrationKeys.LOGGER] ?? console definition.schema = generateGraphQLSchema(definition, primary, foreign, { logger, diff --git a/packages/medusa/src/loaders/medusa-app.ts b/packages/medusa/src/loaders/medusa-app.ts index af8cae1ccb..665bef8e67 100644 --- a/packages/medusa/src/loaders/medusa-app.ts +++ b/packages/medusa/src/loaders/medusa-app.ts @@ -10,6 +10,7 @@ import { import { CommonTypes, InternalModuleDeclaration, + LoadedModule, MedusaContainer, ModuleDefinition, } from "@medusajs/types" @@ -54,12 +55,13 @@ export async function migrateMedusaApp( }, config = { registerInContainer: true } ): Promise { - const featureFlagRouter = container.resolve("featureFlagRouter") - const isMedusaV2Enabled = featureFlagRouter.isFeatureEnabled(MedusaV2Flag.key) const injectedDependencies = { [ContainerRegistrationKeys.PG_CONNECTION]: container.resolve( ContainerRegistrationKeys.PG_CONNECTION ), + [ContainerRegistrationKeys.LOGGER]: container.resolve( + ContainerRegistrationKeys.LOGGER + ), } const sharedResourcesConfig = { @@ -73,7 +75,7 @@ export async function migrateMedusaApp( // Apply default options to legacy modules for (const moduleKey of Object.keys(configModules)) { - if (!ModulesDefinition[moduleKey].isLegacy) { + if (!ModulesDefinition[moduleKey]?.isLegacy) { continue } @@ -121,6 +123,9 @@ export const loadMedusaApp = async ( [ContainerRegistrationKeys.PG_CONNECTION]: container.resolve( ContainerRegistrationKeys.PG_CONNECTION ), + [ContainerRegistrationKeys.LOGGER]: container.resolve( + ContainerRegistrationKeys.LOGGER + ), } const sharedResourcesConfig = { @@ -137,7 +142,7 @@ export const loadMedusaApp = async ( // Apply default options to legacy modules for (const moduleKey of Object.keys(configModules)) { - if (!ModulesDefinition[moduleKey].isLegacy) { + if (!ModulesDefinition[moduleKey]?.isLegacy) { continue } @@ -202,9 +207,10 @@ export const loadMedusaApp = async ( asValue(medusaApp.query) ) - for (const [serviceKey, moduleService] of Object.entries(medusaApp.modules)) { + for (const moduleService of Object.values(medusaApp.modules)) { + const loadedModule = moduleService as LoadedModule container.register( - ModulesDefinition[serviceKey].registrationName, + loadedModule.__definition.registrationName, asValue(moduleService) ) } diff --git a/packages/modules-sdk/src/medusa-module.ts b/packages/modules-sdk/src/medusa-module.ts index 1d2cdd1e80..29cedd938a 100644 --- a/packages/modules-sdk/src/medusa-module.ts +++ b/packages/modules-sdk/src/medusa-module.ts @@ -18,6 +18,7 @@ import { simpleHash, stringifyCircular, } from "@medusajs/utils" +import { EOL } from "os" import { moduleLoader, registerMedusaLinkModule, @@ -312,6 +313,14 @@ export class MedusaModule { keyName ].__joinerConfig() + if (!joinerConfig.primaryKeys) { + logger.warn( + `Primary keys are not defined by the module ${keyName}. Setting default primary key to 'id'${EOL}` + ) + + joinerConfig.primaryKeys = ["id"] + } + services[keyName].__joinerConfig = joinerConfig MedusaModule.setJoinerConfig(keyName, joinerConfig) }