From a87d07655bd8a1da8b90feb739daddd09295f724 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Mon, 11 Sep 2023 10:49:23 +0200 Subject: [PATCH] fix(link-modules): Fix link module initialization (#4990) **What** Add a new configuration on the relationship to specify if the relation is consumed from an internal service (from medusa core). In that case do not check if the service is part of the loaded modules --- .changeset/stupid-terms-ring.md | 6 ++++++ packages/link-modules/src/definitions/index.ts | 1 + .../src/definitions/product-shipping-profile.ts | 3 ++- packages/link-modules/src/initialize/index.ts | 12 ++++++++---- packages/types/src/modules-sdk/index.ts | 1 + 5 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 .changeset/stupid-terms-ring.md diff --git a/.changeset/stupid-terms-ring.md b/.changeset/stupid-terms-ring.md new file mode 100644 index 0000000000..f3a6244d3b --- /dev/null +++ b/.changeset/stupid-terms-ring.md @@ -0,0 +1,6 @@ +--- +"@medusajs/link-modules": patch +"@medusajs/types": patch +--- + +fix(link-modules): Fix link module initialization diff --git a/packages/link-modules/src/definitions/index.ts b/packages/link-modules/src/definitions/index.ts index 26ce768728..0e2147e2c5 100644 --- a/packages/link-modules/src/definitions/index.ts +++ b/packages/link-modules/src/definitions/index.ts @@ -1,3 +1,4 @@ export * from "./inventory-level-stock-location" export * from "./product-variant-inventory-item" export * from "./product-variant-money-amount" +export * from "./product-shipping-profile" diff --git a/packages/link-modules/src/definitions/product-shipping-profile.ts b/packages/link-modules/src/definitions/product-shipping-profile.ts index 62ad744d31..963fa3d9b2 100644 --- a/packages/link-modules/src/definitions/product-shipping-profile.ts +++ b/packages/link-modules/src/definitions/product-shipping-profile.ts @@ -24,9 +24,10 @@ export const ProductShippingProfile: ModuleJoinerConfig = { }, { serviceName: "shippingProfileService", + isInternalService: true, primaryKey: "id", foreignKey: "profile_id", - alias: "shipping_profile", + alias: "profile", }, ], extends: [ diff --git a/packages/link-modules/src/initialize/index.ts b/packages/link-modules/src/initialize/index.ts index 11e1f74de3..75e73c5356 100644 --- a/packages/link-modules/src/initialize/index.ts +++ b/packages/link-modules/src/initialize/index.ts @@ -90,8 +90,10 @@ export const initialize = async ( continue } } else if ( - !modulesLoadedKeys.includes(primary.serviceName) || - !modulesLoadedKeys.includes(foreign.serviceName) + (!primary.isInternalService && + !modulesLoadedKeys.includes(primary.serviceName)) || + (!foreign.isInternalService && + !modulesLoadedKeys.includes(foreign.serviceName)) ) { continue } @@ -176,8 +178,10 @@ export async function runMigrations( allLinks.add(serviceKey) if ( - !modulesLoadedKeys.includes(primary.serviceName) || - !modulesLoadedKeys.includes(foreign.serviceName) + (!primary.isInternalService && + !modulesLoadedKeys.includes(primary.serviceName)) || + (!foreign.isInternalService && + !modulesLoadedKeys.includes(foreign.serviceName)) ) { continue } diff --git a/packages/types/src/modules-sdk/index.ts b/packages/types/src/modules-sdk/index.ts index b75cf0e6b4..21de0d01bb 100644 --- a/packages/types/src/modules-sdk/index.ts +++ b/packages/types/src/modules-sdk/index.ts @@ -168,6 +168,7 @@ export type ModuleJoinerConfig = Omit< } export declare type ModuleJoinerRelationship = JoinerRelationship & { + isInternalService?: boolean // If true, the relationship is an internal service from the medusa core TODO: Remove when there are no more "internal" services deleteCascade?: boolean // If true, the link joiner will cascade deleting the relationship }